Ankündigung

Einklappen
Keine Ankündigung bisher.

DMX Ansteuerung über KNX/OpenHAB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    DMX Ansteuerung über KNX/OpenHAB

    Tach Gemeinde,
    ich hab z.Z. openHAB mit KNX und Homematic am laufen. OpenHAB (Vers. 1.6.1) läuft auf einem Raspberry PI.

    Wegen Renovierung eines Raums (ein Bad) möchte ich dort nun RGBW-LED-Stripes einsetzen.
    Jetzt wäre es überaus cool, mit einem Taster (KNX) eine Grundbeleuchtung im Bad einschalten zu können.
    D.h. einen definierten Dimm-Wert (z.B. 50%) an die RGBW-LEDs zu senden...
    Noch eine Nummer cooler wäre natürlich, über KNX dann auch noch dimmen zu können.

    Ich dachte mir mal so, dass man openHAB quasi als Interface KNX/DMX nutzen könnte und somit kein separates KNX-DMX Gateway benötigt.
    D.h. KNX schickt über das KNX/LAN-Gateway zu openHAB und openHAB dann z.B. auf einen DMX4ALL ArtNet-DMX-Universe DR 4.1.
    Übertragung dann logischer Weise über ArtNet.
    Das entsprechende DMX ArtNet-Binding für openHAB gibt es ja bereits.

    Leider bin ich jetzt nicht wirklich der Meister des Programmierens :-(
    Wie bekomme ich in openHAB den KNX-Wert auf DMX? Vermute mal über ein Scribt?
    Stehe da im Moment total auf dem Schlauch und hab keinerlei Ansatzpunkt.

    Kann mir da jemand auf die Sprünge helfen ???

    Thx
    Stevie

    #2
    Hi Stevie,

    zunächst mal habe ich weder KNX noch DMX, aber da OpenHab eine Abstraktion der Hardware ist, kann ich hier auch theoretisch antworten.

    Ich denke es gibt zwei Möglichkeiten dieses Problem zu lösen:

    Variante 1:
    Man kann zu einem Item mehrere Bindings hinterlegen. In deinem Fall würde das bedeuten du hättest ein Item und würdest sowohl das KNX Binding als auch das DMX Binding hinterlegen. Hier mal beispielhaft mit dem Samsung und mqtt Binding gezeigt.
    Code:
    Rollershutter    TV    "TV"    <tvicon>    (GRP_Erdgeschoss)        { samsungtv="UP:TV:KEY_CHUP, DOWN:TV:TV_CHDOWN", mqtt="<[localmqtt:/test:command:default]" }
    Vorraussetzungen:
    • KNX sendet neuen Sollwert per Command und nicht als Statusupdate
    • Sollwert ist 1:1 dem was das DMX Binding erwartet

    Variante 2:
    Wie du schon richtig erkannt hast, kann man sich auch der Rules von OpenHab bedienen. Das hat dann den Vorteil, dass der Sollwert nicht wie in Variante 1:1 durchgereicht wird, sondern man kann diesen innerhalb der Rule verändern. Hierzu werden nun zwei Items verwendet.
    Code:
     rule "KnxToDmx"
        when
            Item KNX_ITEM received command
        then
            value = receivedCommand as DecimalType
            value = value * 100 //nur als Beispiel, dass sich der Wert auch ändern lässt
            sendCommand(DMX_ITEM,value)
        end
    Wie gesagt ich konnte beide Varianten nicht direkt mit deinem Setup testen, aber eventuell hilft es ja dennoch.

    Gruß Marc

    Kommentar


      #3
      Hallo Marc,
      vielen Dank für deinen schnellen Denkanstoss.
      Die Variante über die "rule" scheint wirklich die bessere Variante zu sein.

      Ich warte die Tage noch auf die Hardware und werde das dann gleich mal testen und berichten ...

      Gruß
      Stevie

      Kommentar


        #4
        Servus,
        so, nachdem ich auch die Harware hier habe, scheiter es schon mal daran, das DMX-Binding zum laufen zu kriegen.

        "org.openhab.binding.dmx-1.6.1.jar" und "org.openhab.binding.dmx.artnet-1.6.1.jar" sind im Ordner addons. Soll ja eigentlich genügen?!
        Die openhab.cfg hab ich auch angepasst:
        Code:
        ################################# DMX Binding #########################################
        dmx:connection=192.168.0.71
        Über eine ArtNet-App klappt die Steuerung auch ... nur über OpenHAB nich :-(

        Hab die demo-items zum testen mal herangenommen und die Kanäle 1-4 hinzu gefügt. Sieht dann so aus.
        Code:
        Color  RGBLight                    "RGB Light"                <slider>  {dmx="CHANNEL[1,2,3,4:1000]"}
        Hat jemand einen Hinweis, wie man die ArtNet-Connection überprüfen kann?
        Im Batch (start.bat) sehe ich zu DMX irgendwie gar nichts, also noch nicht mal, ob das Binding gestartet ist.

        Gruß
        Stevie

        Kommentar


          #5
          Du könntest openHAB mal im Debug-Modus starten (start_debug.bat), vielleicht lässt sich das Problem dann etwas näher eingrenzen.

          Kommentar


            #6
            OK, Hab ich getan. Konnte aber nicht wirklich einen Error erkennen. Habs mal angehängt. Vielleicht kann ja jemand noch was daraus erkennen.
            Am interessantesten ist wohl der letzte Absatz ...

            Gruß
            Stevie

            Angehängte Dateien

            Kommentar


              #7
              Habs hin bekommen *freu
              Also über das ArtNet Binding gehts jetzt ... halt schon doof, wenn man die falsche IP einträgt.

              Next step ist dann knx -> DMX ... aber das dann nicht mehr heute ;-)

              Kommentar


                #8
                Hey, ich habe eine Frage zu Art-Net
                Ich habe mir eine Szene vorgestellt.
                Per Rule wird das Netzteil eingeschaltet, dann dauert es ein paar sekunden und das Artnet Interface ist online.
                Danach sollen die Helligkeitswerte gesetzt werden.
                Das klappt nur, wenn ich danach manuell den Slider, oder einen anderen auf dem selben DMX Universum verändere.

                Jemand eine Idee?

                Ich muss nicht 24/7 das Netzteil anlassen


                Kommentar


                  #9
                  Servus,
                  eine Möglichkeit wäre z.B. mal zu stoppen, wie lange dein ArtNet-Interface zum booten braucht.
                  In der rule kannst du ja dann eine Zeitverzögerung einbauen und dann nach Ablauf der Zeit einen definierten DMX-Wert senden.
                  Hier kannst du sogar dann Farb- und Dimmwert bestimmen.

                  So haben wir das auch früher in der Medientechnik bei den Projektoren gemacht, um denen
                  nach dem hochfahren einen Befehl für die Input-Auswahl zu schicken.

                  Gruß
                  Stevie

                  Kommentar


                    #10
                    Hmm, also ich habe nun gemessen 4 Sekunden reichen eigentlich.
                    Selbst mit 10 Sekunden funktioniert es nicht.
                    Code:
                        sendCommand(Licht, ON)
                        sendCommand(ambient, 100)
                        if (Artnet != null){ Artnet.cancel()}
                        Artnet = createTimer(now.plusSeconds(10)) [|sendCommand(rgb_wohnen, "250.0,100.0,100.0")]

                    Kommentar


                      #11
                      Ich würde folgendes mal probieren:

                      Code:
                      [FONT=arial]sendCommand(Licht, ON)[/FONT]
                      [FONT=arial]sendCommand(embient, 100)[/FONT]
                      [FONT=arial]if (Artnet !=null)[/FONT]
                      [FONT=arial]   Artnet.cancel()[/FONT]
                      [FONT=arial]Artnet = createTimer(now.plusSeconds(10)) [|sendCommand(rgb_wohnen, ON[FADE|500:250,100,100:-1)][/FONT]
                      Aber keine Ahnung ob das funktioniert. Würde aber der dmx-command structure entsprechen.

                      Gruß
                      Stevie
                      Zuletzt geändert von HDStevie; 02.04.2015, 10:02.

                      Kommentar


                        #12
                        Hi Stevie
                        Ich weis nicht ob es schon zu spät ist da du deine Hardware ja schon hast. Aber falls nicht würde ich dir noch eine Alternative vorschlagen:

                        Ich nutze selbst einige RGB Streifen, die ich per Dali statt DMX ansteuere. Das Dali->knx Gateway war günstiger als das DMX4ALL ArtNet-DMX-Universe DR 4.1 und du kannst schon einige Logik darüber abfrühstücken. Die Anbindung OH-> knx läuft bei dir ja schon,

                        Kommentar


                          #13
                          Hallo Tulamidan,
                          ja, habe die Hardware schon. DMX4ALL hat jetzt sogar die Firmware nochmal angepasst, weil ich direkt am Universe DR 4..1 noch einen DMX-Controller anschließen möchte , der auf die Outputs wirken soll. Ist für den Fall gedacht, dass man mal kein Smartphone oder Tablet einstecken hat ;-).
                          Hab die Firmware heute erst bekommen und werde heute Abend mal schauen, ob das funktioniert.
                          Ich möchte halt von knx, ArtNet und einem manuellen DMX-Controller (der ist für UP-Einbau) steuern können.

                          Hab aber im Augenblick auch noch Probleme bei der Umsetzung in OpenHAB. Grundsätzlich funktioniert es, aber ... hierzu gibt es noch einen Thread von mir hier.

                          Gruß
                          Stevie

                          Kommentar


                            #14
                            Hallo zusammen,
                            hab jetzt so einige Dinge zum laufen gebracht. Schalten (ON/OFF) ist kein Problem von einem knx Sensor zu DMX.
                            Aber was ich ums verrecken nicht hin bekomme, ist das dimmen von knx aus.

                            Hab hierzu die Gira Tastensoren 3 im Einsatz.
                            Das Dimmen nur als relatives Dimmen 1 Byte (existiert ja auch keine Aktor dazu).
                            Kurzes drücken auf den Sensor für ein/aus geht also. Bei langem halten der Taste wird der RGBW-Strip um einen Tick heller bzw. dunkler. Das kann
                            ich dann auch wiederholen, bis die max. Helligkeit erreicht ist bzw. die LEDs aus sind.
                            Aber langes gedrückt halten, so dass die Helligkeit stetig anwächst bzw. die LEDs immer dunkler werden, geht nicht :-(
                            Scheint so, als würde immer nur ein INCREASE bzw. DECREASE von knx gesendet ... oder von openHAB empfangen.

                            Hier mal das item:
                            Code:
                            Color  RGBWLightall   "alle"  <slider>    {knx="1.001:0/0/51, 1/0/51", dmx="CHANNEL[1/16:200]"}
                            Hat jemand eine Idee, woran das liegen könnte?

                            Kommentar


                              #15
                              Das ist ganz einfach, Du musst im TS3 zyklisches Senden aktivieren. Standard-Verhalten ist, dass zu Beginn des Dimmvorgangs ein INCREASE oder DECREASE und zum Ende des Dimmvorgangs ein DIMMSTOP gesendet wird. Wie schnell die Telegramme kommen müssen, musst Du eventuell ausprobieren - zu langsam führt zu "Ruckeln", zu schnell könnte "zu weit" dimmen.

                              Kommentar

                              Lädt...
                              X