Ankündigung

Einklappen
Keine Ankündigung bisher.

IO (Digitaleingang) ANEL PWR-CTRL Hut: State OFF wird von openhab als ON erkannt

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

    IO (Digitaleingang) ANEL PWR-CTRL Hut: State OFF wird von openhab als ON erkannt

    Hallo Zusammen,

    ich bin Einsteiger in openhab, aber nicht in Automatisierungsthemen. Ich finde die Software spannend und das Forum hier sehr hilfreich. Zu meiner Frage habe ich leider keinen passenden Thread in der Datenbank gefunden.

    Ich habe ein seltsames Verhalten bei einem Netzwerkrelais von ANEL in Verbindung mit openhab.

    Zunächst mal wird die Verbindung richtig aufgebaut. Ich habe im ANEL das Benutzermanagement abgeschaltet, um eine Fehlerquelle zu eliminieren. Die Relaiszustände werden von openhab richtig erkannt. D.h., wenn das Relais in der Webkonfig von ANEL auf OFF steht, dann aktualisiert openhab die Relais auch zu OFF. Schalte ich sie dort ein, dann wechseln sie auch auf ON und ich kann sie auch mit rules etc. ansprechen. Also alles wunderbar.

    Ich habe aber drei Eingänge, an die demnächst Relaisausgänge von WebCams angehangen werden sollen, um als Bewegungsmelder zu dienen. Die IO sind alle als Input konfiguriert. Eine direkte Schaltung im ANEL auf irgendein Relais gibt es nicht. Das soll von obenhab abhängig von Tageszeit etc. erledigt werden. Die IO's werden bei einem Update auch berücksichtigt, aber wenn sie offen sind (also eigentlich OFF), dann steht der STATE in openhab auf ON. In der Webkonfig von ANEL werden sie jedoch als OFF angezeigt.

    Ich habe bereits versucht die IO über das Webkonfig zu invertieren. Dann zeigen die IO's in der Webconfig ON, wenn sie offen sind, aber in openhab ändert das nichts.
    Also habe ich die Invertierung wieder rausgenommen.

    Klemme ich jetzt eine Brücke auf IO1 und GND (Pullup Widerstand ist eingeschaltet), dann wechselt der Status in der Webconfig auf ON, aber in openhab wird der STATE zu OFF aktualisiert. Das ist nun ein gänzlich anderes Verhalten als in der Doku zum Binding beschrieben.

    Ich meine es funktioniert, wenn ich die IO's eben mit changed state nach OFF überwache, aber irgendwas ist doch da faul.

    Hatte schonmal jemand ein ähnliches Verhalten?


    Vielen Dank und viel Grüße

    Chris



    #2
    Wie hast Du die Items definiert?

    Kommentar


      #3
      Hi udo1toni,

      So sieht der Abschnitt aus der openhab.cfg aus:

      # IP or network address (optional but recommended, defaults to 'net-control')
      anel:anel5.host=192.168.10.13
      # UDP receive port (optional, defaults to 77)
      anel:anel5.udpReceivePort=77
      # UDP send port (optional, defaults to 75)
      anel:anel5.udpSendPort=75
      # User name (optional, defaults to 'user7')
      #anel:anel5.user=
      # Password (optional, defaults to 'anel')
      #anel:anel5.password=
      # Global refresh interval in ms (optional, defaults to 60000 = 1min, disable with '0')
      anel:refresh=20000
      # Cache the state for n minutes so only changes are posted (optional, defaults to 0 = disabled)
      # Example: if period is 60, once per hour all states are posted to the event bus;
      # changes are always and immediately posted to the event bus.
      # The recommended value is 60 minutes.
      anel:cachePeriod=1


      Cache State auf 1 und refresh auf 20000 habe ich gemacht, damit es sich beim Testen häufiger aktualisiert.

      Hier die zugehörigen items:

      String anel5_name "Anel 5 Netzwerkname" {anel="anel5:NAME"}
      Number anel5_temperatur "Anel 5 Temperatur [%s]" {anel="anel5:TEMPERATURE"}

      Switch anel5_input1 "Aussen: Bewegung Terrasse [MAP(anel_input.map):%s]" (all,movement,anel,aussen_terrasse) {anel="anel5:IO1" autoupdate="true"}
      Switch anel5_input2 "Aussen: Bewegung Garten [MAP(anel_input.map):%s]" (all,movement,anel,aussen_terrasse) {anel="anel5:IO2" autoupdate="true"}
      Switch anel5_input3 "Aussen: Bewegung Seite [MAP(anel_input.map):%s]" (all,movement,anel,aussen_terrasse) {anel="anel5:IO3" autoupdate="true"}

      Switch anel5_relais1 "Aussen: Terrasse Licht Wand" (all,lighting,anel,aussen_terrasse) {anel="anel5:F1" autoupdate="true"}
      Switch anel5_relais2 "Aussen: Terrasse Licht Spots" (all,lighting,anel,aussen_terrasse) {anel="anel5:F2" autoupdate="true"}
      Switch anel5_relais3 "Aussen: Terrasse Licht Spots Tisch" (all,lighting,anel,aussen_terrasse) {anel="anel5:F3" autoupdate="true"}
      Switch anel5_relais4 "Aussen: Terrasse Licht Strahler Garten" (all,lighting,anel,aussen_terrasse) {anel="anel5:F4" autoupdate="true"}
      Switch anel5_relais5 "Aussen: Terrasse Licht Strahler Seite" (all,lighting,anel,aussen_terrasse) {anel="anel5:F5" autoupdate="true"}


      ...und hier was rauskommt wenn ich "openhab items anel*" in die Konsole eingebe:

      openhab items anel*
      anel (Type=GroupItem, Members=8, State=Undefined)
      anel5_name (Type=StringItem, State=ANEL5 )
      anel5_temperatur (Type=NumberItem, State=26.2)
      anel5_input1 (Type=SwitchItem, State=ON)
      anel5_input2 (Type=SwitchItem, State=ON)
      anel5_input3 (Type=SwitchItem, State=ON)
      anel5_relais1 (Type=SwitchItem, State=ON)
      anel5_relais2 (Type=SwitchItem, State=OFF)
      anel5_relais3 (Type=SwitchItem, State=OFF)
      anel5_relais4 (Type=SwitchItem, State=OFF)
      anel5_relais5 (Type=SwitchItem, State=OFF


      Wie man sieht sind die Eingänge auf ON. Die Inputs sind aber offen.

      Wenn das Binding ein Update macht sieht es nicht anders aus:

      19:27:41.569 [INFO ] [runtime.busevents :26 ] - anel5_relais1 state updated to OFF
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_relais2 state updated to OFF
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_relais3 state updated to OFF
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_relais4 state updated to OFF
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_relais5 state updated to OFF
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_input1 state updated to ON
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_input2 state updated to ON
      19:27:41.584 [INFO ] [runtime.busevents :26 ] - anel5_input3 state updated to ON
      19:27:41.600 [INFO ] [runtime.busevents :26 ] - anel5_temperatur state updated to 0.0
      19:27:41.600 [INFO ] [runtime.busevents :26 ] - anel5_name state updated to ANEL5


      In der ANEL Oberfläche ist der Status aber so:

      anel_übersicht.jpg


      Die Konfiguration der ANEL Eingänge sieht so aus:

      anel_konfig.jpg


      Wenn ich jetzt eine Brücke in IO-1 und GND mache, dann zeigt ANEL das hier:


      anel_input1_closed.jpg

      ...aber openhab zeigt das hier:

      anel (Type=GroupItem, Members=8, State=Undefined)
      anel5_name (Type=StringItem, State=ANEL5 )
      anel5_temperatur (Type=NumberItem, State=23.3)
      anel5_input1 (Type=SwitchItem, State=OFF)
      anel5_input2 (Type=SwitchItem, State=ON)
      anel5_input3 (Type=SwitchItem, State=ON)
      anel5_relais1 (Type=SwitchItem, State=OFF)
      anel5_relais2 (Type=SwitchItem, State=OFF)
      anel5_relais3 (Type=SwitchItem, State=OFF)
      anel5_relais4 (Type=SwitchItem, State=OFF)
      anel5_relais5 (Type=SwitchItem, State=OFF)


      Da ist doch was faul oder?


      Hast Du eine Idee wieso das so ist. Wie gesagt, wenn ich OFF als Trigger nehme, dann laufen die rules tadellos :-/


      Viele Grüße

      Chris





      Kommentar


        #4
        Bei der Binding-Definition, z.B. {anel="anel5:F1" autoupdate="true"} , gehört ein Komma vor das autoupdate. Abgesehen davon ist autoupdate="true" der default, das kannst und solltest Du weg lassen. autoupdate ist per Definition ein eingebautes Binding, welches immer an jedes Item gebunden ist. Damit wird einfach der Status des Items von openHAB gesetzt, ohne dass explizit ein postUpdate() oder ein update von einem anderen Binding eintrat.
        Wenn ein offener Eingang high Potential hat, ist es eigentlich logisch, dass dann offen=+5V=ON und geschlossen=0V=OFF bedeuten. Wenn Du den Eingang im Anel invertierst, müsste es ja dann eigentlich stimmen, aber vielleicht greift das Binding die Information vor dieser Invertierung ab.

        Wenn Du Dir das Bild im Wiki anschaust: http://2.bp.blogspot.com/-XbiK9Fe1Ek...demo-setup.png kannst Du erkennen, dass die Beispielrule oben links exakt auf OFF triggert. Entweder oder jedenfalls gehe ich bei näherer Betrachtung davon aus, dass das Verhalten korrekt ist, wenn es auch erst mal unlogisch erscheint, und der Autor des Wikieintrags hat einfach einen Fehler gemacht .

        Kommentar


          #5
          Hi,
          ja Du hast Recht, jetzt sehe ich das im Beispiel auch. OK, dann muss das wohl so sein, auch wenn ich das nicht wirklich logisch finde.

          Das mit dem Autoupdate habe ich raus genommen.


          Danke für Deine Hilfe.

          Viele Grüße

          Chris

          Kommentar

          Lädt...
          X