[Gelöst] DOIF Funktioniert nicht - aber warum?!

Begonnen von Maltamax, 16 Juni 2017, 19:45:33

Vorheriges Thema - Nächstes Thema

Maltamax

Hallo zusammen,

ich möchte mithilfe eines Tasters, der an den GPIO eines Rasperry Pi Zero hängt, ein Relais schalten welches an einem weiteren GPIO hängt. Das Relais lässt sich wunderbar schalten sowohl per Weboberfläche als auch per Homebridge. Leider will das DOIF nicht schalten.

Drückt man den Taster (BUTTON_R1 wird high bzw state on) und Relais1 ist off soll FHEM Relais1 einschalten andernfalls soll er das Relais1 ausschalten.

Laut Syntax passt das alles und auch im Eventmonitor funktioniert das schalten von BUTTON_R1 korrekt. Das DOIF greift nur nicht.

Kann mir jemand helfen? Ich verzweifel noch daran. Aus den anderen Forenbeiträgen über Taster von Rolläden wurde ich nicht schlau.

Danke euch

define R1_CMD DOIF ([BUTTON_R1:"on"] and [Relais1:"off"]) (set Relais1 on) DOELSE (set Relais1 off)


2017-06-16 19:32:08 RPI_GPIO BUTTON_R1 Pinlevel: high
2017-06-16 19:32:08 RPI_GPIO BUTTON_R1 on
2017-06-16 19:32:09 RPI_GPIO BUTTON_R1 Longpress: on
2017-06-16 19:32:27 RPI_GPIO BUTTON_R1 Dblclick: off
2017-06-16 19:32:27 RPI_GPIO BUTTON_R1 Pinlevel: low
2017-06-16 19:32:27 RPI_GPIO BUTTON_R1 off
2017-06-16 19:32:27 RPI_GPIO BUTTON_R1 Longpress: off

CoolTux

Nimm mal die Anführungszeichen beim Relai Off raus bitte.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Maltamax

Zitat von: CoolTux am 16 Juni 2017, 19:51:59
Nimm mal die Anführungszeichen beim Relai Off raus bitte.

Habe ich gemacht. Jetzt funktioniert das ausschalten wenn das Relais eingeschaltet ist aber einschalten geht nicht ... entfernen der Anführungszeichen bei on bringt leider nichts.

CoolTux

Und nun noch ein Fragezeichen davor

[?Relais1:off]
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Maltamax

Zitat von: CoolTux am 16 Juni 2017, 20:24:02
Und nun noch ein Fragezeichen davor

[?Relais1:off]

So?
([BUTTON_R1:"on"] and [?Relais1:off]) (set Relais1 on) DOELSE (set Relais1 off)

Jetzt funktioniert auch kein ausschalten mehr wenn Relais1 on ist.

CoolTux

Wie ist denn der Status von Relai1. Gib mal bitte ein list

Im Grunde besagt der Code wenn das Event Button_R1:on kommt schaue nach ob Relai1 off ist und wenn ja mache set Relais1 on ansonsten set Relai1 off
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Maltamax

Zitat von: CoolTux am 16 Juni 2017, 20:35:16
Wie ist denn der Status von Relai1. Gib mal bitte ein list

Im Grunde besagt der Code wenn das Event Button_R1:on kommt schaue nach ob Relai1 off ist und wenn ja mache set Relais1 on ansonsten set Relai1 off

Genau das soll der Code machen. Denn Relais1 kann bereits aktiv sein durch die schaltung vom Handy/Tablet aus. Deswegen die Überprüfung vorher.

RPI_GPIO:
  BUTTON_R1            (off)
  BUTTON_R2            (off)
  BUTTON_R3            (on)
  BUTTON_R4            (on)
  BUTTON_R5            (on)
  BUTTON_R6            (on)
  BUTTON_R7            (on)
  BUTTON_R8            (on)
  Relais1              (off)
  Relais2              (off)
  Relais3              (off)
  Relais4              (off)
  Relais5              (off)
  Relais6              (off)
  Relais7              (off)
  Relais8              (off)

CoolTux

Ein list von den einzelnen Device meinte ich eigentlich.
Also von Relai1 und dem Button
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Maltamax

Zitat von: CoolTux am 16 Juni 2017, 20:44:55
Ein list von den einzelnen Device meinte ich eigentlich.
Also von Relai1 und dem Button
Internals:
   DEF        3
   EXCEPT_FD  12
   GPIO_Basedir /sys/class/gpio
   NAME       BUTTON_R1
   NR         46
   RPI_pin    3
   STATE      off
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/local/bin/gpio
   lasttrg    1497637753.24674
   Readings:
     2017-06-13 22:08:17   Counter         4
     2017-06-16 20:29:13   Dblclick        off
     2017-06-16 20:29:13   Longpress       off
     2017-06-16 20:29:13   Pinlevel        low
     2017-06-16 19:58:34   on              0
     2017-06-16 20:29:13   state           off
   Fhem:
     interfaces switch
Attributes:
   active_low yes
   debounce_in_ms 50
   direction  input
   interrupt  both
   pud_resistor up
   room       Unsorted


und das Relais1
Internals:
   DEF        18
   GPIO_Basedir /sys/class/gpio
   NAME       Relais1
   NR         20
   RPI_pin    18
   STATE      off
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/local/bin/gpio
   Readings:
     2017-06-13 22:46:15   Pinlevel        low
     2017-06-16 19:57:09   off             0
     2017-06-16 20:29:15   state           off
   Fhem:
     interfaces switch
Attributes:
   direction  output
   webCmd     on:off


CoolTux


([BUTTON_R1:"on"] and [?Relais1] eq "off") (set Relais1 on) DOELSE (set Relais1 off)


Bitte einmal so
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Maltamax

Zitat von: CoolTux am 16 Juni 2017, 20:56:01

([BUTTON_R1:"on"] and [?Relais1] eq "off") (set Relais1 on) DOELSE (set Relais1 off)


Bitte einmal so

Okay jetzt wird's kurios. Ich habe den debounce auf 250ms hochgesetzt. Das Relais1 schaltet jetzt ein, direkt wieder aus und wieder ein. Dann bleibt Relais1 so lange on bis ich in FHEM F5/Aktualisieren von BUTTON_R1 drücke. Dann schaltet sich das Relais1 wieder aus...

Bevor ich das debounce hochgestellt hatte, ließ sich das Relais1 nicht schalten. Es ging immer direkt nach dem los lassen des Tasters wieder aus.

Ausschalten lässt sich das Relais1 auch nur solange wie ich den Taster drücke. Danach springt es wieder an ... HILFE :D

Maltamax

Ok. Liegt an der Schaltung. Da fehlt noch ein 1k Ohm Widerstand. Danke für deine Hilfe :)

KernSani

Das nächste Mal dann bitte den Post nicht schließen, sondern nur [Gelöst] vorne dran schreiben, dann haben andere User die Möglichkeit Folgefragen zu stellen (siehe auch hier: https://forum.fhem.de/index.php/topic,71806.0.html)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...