DOIF toggelt ständig / Warum?

Begonnen von gahle, 29 April 2019, 21:01:36

Vorheriges Thema - Nächstes Thema

gahle

Guten Abend,

ich habe da ein kleines Problem. Ich habe 2 Rpi's über FHEM2FHEM gekoppelt. Der Rpi1 schaltet eine Schwallwasserpumpe (das Relais über GPIO.19) und fragt einen GPIO als Input ab (GPIO.8 / Schalter dran).

Der Rpi2 ist mein "MainServer". Dort gibt es einen dummy "Schwalldusche", der entweder "on" oder "off" geschaltet werden kann. Das ganze landet im Logfile.

Auf Rpi1 gibts einen notify und wenn "Schwalldusche" auf "on" steht, wird der entsprechende GPIO mit Relais(GPIO.19) geschaltet.
Da ich aber nicht immer beim pool ein Handy habe, möchte ich entweder das Relais in Abhängigkeit des dummy "Schwalldusche" schalten, oder der Input von GPIO.08 wird auf High state = "on" geschaltet, einschalten oder ausschalten.

Als Lösung habe den den DOIF benutzt, aber das ganze funktioniert nicht richtig, der GPIO mit Relais wird ständig getoggelt und schaltet ein/aus.
Weiss jemand Rat?


define Schwalldusche2 DOIF ([Schwalldusche:"on"] or [GPIO.08:"on"]) (set GPIO.19 on) DOELSE (set GPIO.19 off)

Otto123

Hi,

was Du beschreibst kann ich im Kopf nicht nachbauen, da musst Du viel mehr Infos liefern.

Dein DOIF reagiert auf Events, aus meiner Sicht tritt der DOELSE Fall nie ein, aber sicher bin ich mir nicht.

Wenn Schwalldusche oder GPIO.08 den Event liefert  der on enthält wird GPIO.19 on geschaltet.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

gahle

Also,

ich möchte den GPIO.19 ein/-ausschalten in Abhängigkeit des States eines dummy (Schwalldusche "on"/"off") oder eines GPIO der als Input (GPIO.08) arbeitet.
Wenn einer von beiden den State "on" hat, so soll der GPIO.19 dauerhaft einschalten und wenn beide auf "off" sind, soll dieser GPIO.19 dauerhaft ausgeschaltet sein.

Also eine "oder"-Funktion. Mit der von mir genutzten Codezeile schalter der GPIO.19 zwar ein, wird aber kurz darauf wieder asugeschaltet.
Ich schätze, dass ich nicht auf Event reagieren muss, sondern auf einen State?

ich weiss aber nicht wie, habe nix passendes gefunden. alle Möglichkeiten mit DOIF, notify o.ä. toggeln...

Ich hoffe es so besser darstellen zu können-.

Vielleicht haste eine Idee, würde mir sehr helfen...






Otto123

#3
Zitat von: gahle am 29 April 2019, 23:05:51
Ich hoffe es so besser darstellen zu können-.
Nö eigentlich nicht. Weil ich Deiner Beschreibung entnehme, dass da noch andere Devices (notify FHEM2FHEM der andere Pi) eine Rolle spielen. Ohne zu wissen, was diese ganzen Geräte machen, kann das keiner beurteilen.

Aber ja - ich habe das gerade probiert, war mir wieder entfallen.  ::)
Dein DOELSE Fall tritt doch ein, da das DOIF auf alle Events triggert und nicht nur auf on. Damit löst jeder Trigger der beiden Geräte das DOIF aus und der DOELSE Fall tritt ein wenn der Event nicht "on" ist, egal wie der andere state steht.
Also versuche das DOIF so. So wird der andere state immer auch abgefragt.
defmod Schwalldusche2 DOIF ([Schwalldusche] eq "on" or [GPIO.08] eq "on") (set GPIO.19 on) DOELSE (set GPIO.19 off)
Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

gahle

Guten Morgen,

leider gleiches Verhalten, schalte ich den den GPIO.19 per Input läuft die Pumpe, schalte ich per "dummy" toggelt es wieder.
Es scheint, als würde die "Oder"-Verknüpfung nicht komplett berücksichtigt...
Mhhh. Mir fällt wenig ein...
:-\

CoolTux

Zeig mal bitte den Auszug aus dem Eventmonitor wenn er toggelt.
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

Frank_Huber

Und eventuell ein list des dummy.

Gesendet von meinem Doogee S60 mit Tapatalk


gahle

Guten Morgen,

hier der Auszug.

019-05-01 10:07:55 RPI_GPIO GPIO.08 Pinlevel: low
2019-05-01 10:07:55 RPI_GPIO GPIO.08 off
2019-05-01 10:07:55 RPI_GPIO GPIO.08 Pinlevel: low
2019-05-01 10:07:55 RPI_GPIO GPIO.08 Longpress: on
2019-05-01 10:07:55 RPI_GPIO GPIO.08 off
2019-05-01 10:07:55 RPI_GPIO GPIO.08 Pinlevel: low
2019-05-01 10:07:55 RPI_GPIO GPIO.08 Pinlevel: high
2019-05-01 10:07:55 RPI_GPIO GPIO.08 on
2019-05-01 10:07:55 RPI_GPIO GPIO.08 off
2019-05-01 10:07:56 RPI_GPIO GPIO.08 Longpress: on
2019-05-01 10:07:56 RPI_GPIO GPIO.08 Pinlevel: high
2019-05-01 10:07:56 RPI_GPIO GPIO.08 Pinlevel: high


Habe mal die Konfiguration des GPIO und die Beschaltung angehängt.

Gruss
gahle

amenomade

Zeig bitte ein "list Schwalldusche2" nachdem er getoggelt hat.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Du solltest schon im Eventmonitor alle beteiligten Geräte zeigen. Du meinst doch das GPIO.19 toggelt - oder?
Ich meine Du zeigst das GPIO.8 kurz auf on geht. Wenn während dieser Zeit Schwalldusche nicht auf on steht, dann wird GPIO.19 genauso kurz auf on gehen und gleich wieder aus.
In dem Fall schaltet das DOIF dann GPIO.19 analog zu GPIO.8

Ich habe immer noch nicht verstanden was Du machst / machen willst.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz