Mit DOIF immer zwischen zwei Zuständen toggeln

Begonnen von MichaelO, 16 Februar 2016, 22:02:31

Vorheriges Thema - Nächstes Thema

MichaelO

Moin,

habe gerade ein kleines Problem mit der Formulierung eines DOIF, da steht wohl der Wald im Weg  ::)

Ich möchte per wiederholtem Doppelklick auf einen Taster ein DOIF abwechselnd zwischen zwei Zuständen toggeln. Der Doppelklick wird als Event erkannt, das funktioniert. Nun dachte ich, dass ich neben dem (ja immer gleichen Event) zusätzlich per Und-Verknüpfung auf ein eigenes Reading im DOIF abfrage - einmal mit on und einmal mit off.

Ist es on, schalte ich Dinge aus und setze das Reading auf off, ist es off, dann schalte ich Dinge an und das Reading dann auf on. Dazu habe ich im Anweisungsteil des DOIF formuliert
(setreading di_WG_LichtSzene2 toggleStatus on)

Leider existiert dieses Reading aber nach einer Initialisierung des Systems nicht, so dass es zu Fehlermeldungen kommt. Die Fragen nun:

1) Wie erzeuge ich im DOIF dieses Reading schon bei Initialisierung und belege es z.B. mit off?

2) Mache ich die Sache vielleicht zu kompliziert und es gibt eine viel einfacherer Lösung. Wenn ja, wie könnte die aussehen?

Wie schon betrieben, ist der Trigger immer identisch:

[DM_WG_LichtWand:"scene_18"]

Danke für die Hilfe
Michael

Tedious

Moin,

evtl verstehe ich die Frage falsch? Aber ich mache etwas ähnliches, ich missbrauche eine nicht genutzte Intertechno Fernbedienung als Zusatzschalter für einen Unterputz-Funkschalter einer Lampe (Homeeasy). Hier hatte cih das Problem dass die Schaltung nicht sauber funktioniert hat, es gab Probleme mit der Taktung und man musste mehrfach hin- und herschalten um das Licht an der Decke zu schalten. Lösung gab der Parameter Do Always:

define Marie_Zus_AnAus DOIF ([IT_00000FFF0F] eq "on") (set IT_11011010 on) DOELSEIF ([IT_00000FFF0F] eq "off") (set IT_11011010 off)
attr Marie_Zus_AnAus do always


Ggf. könnte das in deine Richtung gehen?
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

crusader

Entweder das neue DOIF Attribut 'notexist' verwenden oder statt der toggleStatus-Variable den DOIF-state selber verwenden.
Der nimmt die Werte 'initialized','cmd_1','cmd_2' an.

Schau mal in den 'Finite State Machine'-Thread im DOIF-Board !

CoolTux

Man paar Sekunden zu schnell. Wollte auch gerade das Antworten   ;D
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

MichaelO

Da war das mit den Bäumen und dem Wald... Den "toggleStatus" braucht man ja garnicht in einem Reading, weil er dem Status des DOIF-Moduls entspricht. Nenne...

Nur die Sache mit dem noexist hab ich noch nicht verstanden, da fehlen mir noch greifbare Beispiele. Wenn jemand kurz die Anwendung mit eigenen Worten erläutern könnte, wäre das zwar off-topic aber nett :-)

Gruß
Michael

MichaelO

Zitat von: Tedious am 17 Februar 2016, 09:57:14
...
define Marie_Zus_AnAus DOIF ([IT_00000FFF0F] eq "on") (set IT_11011010 on) DOELSEIF ([IT_00000FFF0F] eq "off") (set IT_11011010 off)
attr Marie_Zus_AnAus do always


Ggf. könnte das in deine Richtung gehen?

Das würde in meinem Fall nicht funktionieren, da der Doppelklick immer dasselbe Event liefert, während bei Dir der Zustand ja zwischen on und off wechselt. Aber die Lösung mit dem Status des DOIF-Moduls sollte klappen. Ich poste dann mein Ergebnis gerne.

Gruß
Michael