gelöst: Die un-ausschaltbare Lampe

Begonnen von Dynalon, 03 Juli 2021, 16:31:53

Vorheriges Thema - Nächstes Thema

Dynalon

Hallo,

ich weiß nicht, ob ich einfach nur einen dummen Fehler gemacht habe, oder das, was ich möchte viel komplizierter ist, als ich gerade denke.
Was ich will: Wenn meine Fernbedienung auf Taste 1 (State 1002) gedrückt wird und Lampe 1 aus ist, sollen Lampe 1 und 2 angehen.

Soweit, so (eigentlich) einfach. Hier mein DOIF:
([Tradfri_Fernbedienung1:state] == 1002 and [HUEDevice11:state] eq "off") (set HUEDevice11 on, set HUEDevice12 on)

Im Prinzip habe ich ähnliches schon öfters gemacht, um bei Knopfdruck einer Fernbedienung etwas auszulösen. Nach dem Drücken bleibt die Fernbedienung natürlich auf dem entsprechenden Status. Normal funktioniert das auch, dass nur in dem Moment ausgelöst wird, wenn die entsprechende Taste gedrückt wird.

Doch hier startet die Schleife nicht nur, wenn ich eine Taste drücke, sondern auch immer, wenn ich (manuell per FHEM) die Lampe ausschalte. Dann geht sie nach einer Sekunde gleich wieder an. Wie kann ich das ändern, dass der Befehl nur dann ausgeführt wird, wenn ich die entsprechende Taste drücke und nicht, wenn der State von vorher noch auf diesem Wert steht, aber gar kein neues Signal eingeht?
Einfach gesagt, würde es schon helfen wenn dieses Doif nur dann aktiv wird, wenn ein Signal der Fernbedienung eingeht. Dann soll geschaut werden, ist die Lampe an? Wenn nein, dann beide Lampen an und keine Handlung mehr in dem Doif, bis wieder einer eine Taste drückt. Alternativ könnte ich auch nach jedem Tastendruck den State automatisch wieder ändern lassen, so dass die Fernbedienung immer nur für einen Schaltvorgang den State 1002 zeigt und dann zum Beispiel per set innerhalb des DOIFs auf 1000 gesetzt wird. Geht sowas?

Bitte keine Vorschläge mit Toggle oder Notifys. Ich will dieses DOIF später noch um weitere Funktionen und Bedingungen erweitern, daher wollte ich genau diesen Weg wählen.

Vielen Dank schonmal!

Hier der Vollständigkeit halber die Readings meiner Fernbedienung:
Internals:
   DEF        sensor 2  IODev=ConBeeBridge
   FUUID      602951c7-f33f-dc36-21f3-54700655b6339b32
   FVERSION   31_HUEDevice.pm:0.239120/2021-03-08
   ID         S2
   INTERVAL   
   IODev      ConBeeBridge
   NAME       Tradfri_Fernbedienung1
   NR         23
   STATE      5002
   TYPE       HUEDevice
   lastupdated 2021-07-03 11:09:40
   lastupdated_local 2021-07-03 13:09:40
   manufacturername IKEA of Sweden
   modelid    TRADFRI remote control
   name       TRÅDFRI Fernbedienung
   on         1
   reachable  1
   swversion  2.3.014
   type       ZHASwitch
   uniqueid   58:8e:81:ff:fe:29:ca:1d-01-1000
   READINGS:
     2021-07-03 14:46:51   battery         47
     2021-07-03 14:46:51   batteryPercent  47
     2021-03-17 20:42:21   lastseen        2021-03-17T19:42Z
     2021-07-03 14:46:51   reachable       1
     2021-07-03 13:09:40   state           5002
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
     json:
       ep         1
       etag       c53fab6a54a8f8ce0b83f6f9590252da
       lastseen   2021-07-03T12:51Z
       manufacturername IKEA of Sweden
       mode       3
       modelid    TRADFRI remote control
       name       TRÅDFRI Fernbedienung
       swversion  2.3.014
       type       ZHASwitch
       uniqueid   58:8e:81:ff:fe:29:ca:1d-01-1000
       config:
         alert      none
         battery    47
         group      1
       state:
         buttonevent 5002
         lastupdated 2021-07-03T11:09:40.036
     setList:
Attributes:
   IODev      ConBeeBridge
   alarmSettings alarm0,|Tradfri_Fernbedienung1:state:1002||off
   icon       it_remote
   model      TRADFRI remote control

juergen012

 Lampe 1 aus ist, sollen Lampe 1 und 2 angehen ??

Lampe1 an oder aus???
Fhem unter Proxmox

Otto123

#2
Hi,

du musst die Statusabfrage [Tradfri_Fernbedienung1:state] == 1002 in einen Eventrigger ändern: [Tradfri_Fernbedienung1:"1002"]
https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events

Oder / Und die triggerung [HUEDevice11:state] eq "off" durch den zweiten Ausdruck in eine Abfrage ändern [?HUEDevice11:state] eq "off"
https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger

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

Dynalon

Hallo juergen012,
Ja, es handelt sich hier um 2 Lampen, die für gewöhnlich (mit diesem Schalter) simultan geschaltet werden sollen und gleich reagieren sollen (also beide an oder beide aus), auch wenn vorher nur eine von Ihnen (z.B. per Browser) allein angeschaltet war.
Ich hätte auch die Fälle
- Wenn 1 an und 2 aus
- Wenn 1 an und 2 an
- Wenn 1 aus und 2 an
- wenn 1 aus und 2 aus
einzeln abhandeln können, aber im Prinzip ist es egal, wenn beide Lampen etwas unterschiedliches zeigen. Denn dann kann eh nur eine gechaltet werden. Also überprüfe ich nur eine der beiden Lampen. Wenn 1 an ist und der Schalter gedrückt wird, sollen beide ausgehen. Wenn 1 aus ist und der Schalter gedrückt wird, sollen beide an gehen, jeweils egal, was vorher mit Lampe 2 gewesen ist.





Hallo Otto123,
vielen Dank. Habe zwar in der Commandref gesucht, nur leider aus Unwissenheit (wenn man nicht das richtige Schlagwort kennt) an der falschen Stelle.
Jetzt läuft alles und das DOIF wächst mit seinen Fähigkeiten!