FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: M_I_B am 14 Juni 2016, 23:45:56

Titel: Im DOIF Zustandswechsel und nicht IstZustand erkennen?
Beitrag von: M_I_B am 14 Juni 2016, 23:45:56
... ich hab da mal wieder ein Problem, was ich nicht gelöst bekomme  ::)

Ich habe mir heute mal eine Presenz- Erkennung via Ping gebastelt, die auch funktioniert. Daran angehängt die Steuerung je eines Aktors pro Person als optische Anzeige zum Testen. Auch ok.
Nun wollte ich versuchen, bei Wiederkehr einer Person und Dunkelheit die Aussenbeleuchtung einzuschalten (on-for-timer). Daran bin ich gescheitert ... Ich komme einfach nicht dahinter, wie ich an Stelle eines Zustandes (z.B. ON oder OFF) einen Zustandswechsel (ON > OFF resp. OFF > ON) erkennen und auswerten kann :'(
Ich habe da schon mit mehreren Dummys rumprobiert, aber das funktioniert irgendwie auch nicht wirklich...

Hier mal der Code an der Stelle, wo ich aufgegeben habe. Macht so nicht wirklich Sinn und soll nur darstellen, was es werden soll...
define JemandDa dummy
attr JemandDa devStateIcon on:status_available@orange off:status_away_1@gray
attr JemandDa room System
define JemandBack dummy
attr JemandBack devStateIcon on:control_arrow_up@orange off:control_arrow_down@gray
attr JemandBack room System

define AlleAusserHaus DOIF ([PresMB] eq "absent" and [PresBB] eq "absent" and [PresCB] eq "absent") (set JemandDa off,set JemandBack off) \
DOELSEIF ([PresMB] eq "present" or [PresBB] eq "present" or [PresCB] eq "present") (set JemandDa on) \
DOELSEIF ([JemandDa] eq "on" and [JemandBack] ne "off" and [brightness.av:state] < 100) (set HM4SW1_1 on-for-timer 300,set HM4SW1_2 on-for-timer 500,set JemandBack off) \
DOELSE
attr AlleAusserHaus do always
attr AlleAusserHaus room System


Frage ist also, wie ich einen Zustandswechsel erkennen kann?
Titel: Antw:Im DOIF Zustandswechsel und nicht IstZustand erkennen?
Beitrag von: Ellert am 15 Juni 2016, 05:12:03
Zur komfortablen Darstellung von An-,Abwesendheiten gibt es die Module RESIDENTS und ROOMMATE. Darauf könntest Du ein DOIF zur Lichtsteuerung ansetzen.

Oder in Deinem DOIF etwas mit dem Attribut selftrigger experimentieren, das sonst der Trigger von
Zitatset JemandDa on
auf
Zitat[JemandDa] eq "on"
unterbunden wird, s. https://forum.fhem.de/index.php/topic,41859.msg341029.html#msg341029 und http://fhem.de/commandref_DE.html#DOIF_selftrigger
Titel: Antw:Im DOIF Zustandswechsel und nicht IstZustand erkennen?
Beitrag von: M_I_B am 15 Juni 2016, 10:09:37
... ok, vielen Dank für die Hinweise. Ich werde mich mal mit allen drei Vorschlägen beschäftigen und mal versuchen, mich schlau zu lesen. Dazu kommen dann sicherlich weitere Fallstricke auf mich zu, die ich dann in diesem Thread "auslegen" werde ;)
(... ich habe gestern Nacht mal wieder zu elektronisch gedacht ... IRQ rising/falling... )