[DOIF] reagiert nicht obwohl cmd... angezeigt wird

Begonnen von Krise, 02 Januar 2021, 15:18:16

Vorheriges Thema - Nächstes Thema

Krise

Hallo ich habe ein kleines Verständnisproblem mit der Funktionalität von DOIF:

ich habe folgendes Versucht:

([MQTT2_zigbee_motion2:occupancy] eq "true" and [MQTT2_zigbee_motion2:illuminance]<10 and [Pana55CX:state] eq "dormant") (set PZ_Lampen an) (set PZ_Lampen bright 100) DOELSEIF ([MQTT2_zigbee_motion2:occupancy] eq "true" and [MQTT2_zigbee_motion2:illuminance]<10 and [Pana55CX:state] eq "on") (set PZ_Lampen an) (set PZ_Lampen bright 100)


das funktionierte kurzfristig, dann komischer Weise nicht mehr. Dann habe ich das ganze über einen Dummy geschickt.



([MQTT2_zigbee_motion2:occupancy] eq "true" and [MQTT2_zigbee_motion2:illuminance]<10 and [Pana55CX:state] eq "dormant") (set Licht_Party_Dummy an) (set Schalter1 undefined) DOELSEIF ([MQTT2_zigbee_motion2:occupancy] eq "true" and [MQTT2_zigbee_motion2:illuminance]<10 and [Pana55CX:state] eq "on") (set Licht_Party_Dummy Durchgang) (set Schalter1 undefined) DOELSEIF ([MQTT2_zigbee_motion2:occupancy] eq "false") (set Licht_Party_Dummy reset) (set Schalter1 undefined)



das DIOF habe ich auf die Dummywerte angepasst --> dann habe ich festgestellt, dass die Werte (Status vom Dummy und cmd vom DOIF) sich richtig geändert haben, aber der Schaltvorgang blieb aus. Dann habe ich mit checkall und event-on-state-reading versucht etwas zu erreichen, mit mäßigem Erfolgt. Jetzt habe ich aus dem dreiteiligen DOIF 3 einzelne gemacht und schon Funktioniert es.
Lt. Wiki und diversen Forumsartikeln habe ich eigentlich alles richtig gemacht.
Die geschalteten Geräte sind 4 Yeelight wifi-Lampen, die ich zu einer "structure" zusammen gebastelt habe. Ich hatte zwischenzeitlich schon die einzelnen Lampen angesteuert, weil ich dachte, dass es daran liegen könnte.
Kann sich bzw. mir das einer erklären?!

Grüße
Christian

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Krise

#2
Zitat von: Damian am 02 Januar 2021, 17:01:57
Das Attribut do always ist bekannt?

https://fhem.de/commandref_DE.html#DOIF_do_always

Hallo,

kannte ich bisher nicht. War in dem Absatz da drüber abgestorben, weil ich erst einen Syntax/Zeichenfehler vermutet habe. Ich habe aber die Funktionalität über DOIF und Dummy hergestellt.. glaube ich ;). Was ich halt merkwürdig fand, wenn ich den Dummy über FHEMWEB geklickt habe, hat es funktioniert, wenn die Änderung über Sensor/DOIF ging passierte nichts, obwohl unter cmd der richtige Zweig aktiv war also cmd1 für an cmd2 für 25% usw. Das habe ich nicht kappiert. Worüber ich in deinem Link gestolpert bin... ich habe kein DOELSE am Ende, könnte es daran liegen? Kann man den Ausdruck dahinter leer lassen (quasi ein do nothing).

Grüße
Christian

Edit: Ich glaub jetzt hat's geklingelt... Ich habe auf den Status [MQTT2_zigbee_motion2:occupancy] eq "true" gezielt und nicht auf das Event [MQTT2_zigbee_motion2:occupancy:"true"] deswegen schaltete es zufällig bis gar nicht... also entweder auf "event" triggern oder do-always nutzen. (Ich hoffe, ich habe das so jetzt richtig wiedergegeben...)