Eigentlich einfaches DoIF verhält sich für mich unverständlich - gelöst

Begonnen von vbretsch, 01 November 2021, 13:28:30

Vorheriges Thema - Nächstes Thema

vbretsch

Liebe Fhem-Community,

ich habe folgendes DoIf:
([dy_Rollo_schalten:"^toggle$"] and [MQTT2_zigbee_Ikea_Rollo:pct]==0)(set MQTT2_zigbee_Ikea_Rollo pct 98)
DOELSE (set MQTT2_zigbee_Ikea_Rollo close )


Das auf einen Toggle Event aus einem Dummy die Position des Ikea-Rollos überprüfen soll, wenn dieser auf pct=0 steht den Rollo auf 98 Prozent hochfahren und wenn der Rollo nicht auf 0 steht diesen schließen.
Problem ist, dass er im geschlossenen Zustand anfängt hochzufahren, aber nur für 10cm. Danach fährt er wieder ganz runter.
Die andere Richtung funktioniert: Wenn er offen ist, fährt er ganz runter.

Wo liegt mein Denkfehler?

Grüße,
Volker

Damian

Zitat von: vbretsch am 01 November 2021, 13:28:30
Liebe Fhem-Community,

ich habe folgendes DoIf:
([dy_Rollo_schalten:"^toggle$"] and [MQTT2_zigbee_Ikea_Rollo:pct]==0)(set MQTT2_zigbee_Ikea_Rollo pct 98)
DOELSE (set MQTT2_zigbee_Ikea_Rollo close )


Das auf einen Toggle Event aus einem Dummy die Position des Ikea-Rollos überprüfen soll, wenn dieser auf pct=0 steht den Rollo auf 98 Prozent hochfahren und wenn der Rollo nicht auf 0 steht diesen schließen.
Problem ist, dass er im geschlossenen Zustand anfängt hochzufahren, aber nur für 10cm. Danach fährt er wieder ganz runter.
Die andere Richtung funktioniert: Wenn er offen ist, fährt er ganz runter.

Wo liegt mein Denkfehler?

Grüße,
Volker

Dein DOIF reagiert auch auf Events von [MQTT2_zigbee_Ikea_Rollo:pct], ich denke, du solltest den Trigger dort herausnehmen:  [?MQTT2_zigbee_Ikea_Rollo:pct]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

vbretsch

Wie meinst Du Trigger rausnehmen? Ich wollte damit abfragen, ob der Rollo zu ist, um ihn dann hochzufahren bzw umgekehrt.
Gibt es eine bessere Variante dieser Abfrage?

Damian

Zitat von: vbretsch am 01 November 2021, 13:37:24
Wie meinst Du Trigger rausnehmen? Ich wollte damit abfragen, ob der Rollo zu ist, um ihn dann hochzufahren bzw umgekehrt.
Gibt es eine bessere Variante dieser Abfrage?

[?MQTT2_zigbee_Ikea_Rollo:pct]==0

Mit dem Fragezeichen verhinderst du, dass dein Modul getriggert wird, wenn von MQTT2_zigbee_Ikea_Rollo mit Reading pct Events kommen.

Es ist in der Commandref ausführlich erklärt: https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

vbretsch

Großartig! Danke! Das war die Lösung. Ich versuche mal das in der Commandref nachzuvollziehen.