Hallo Forum,
vielleicht habt ihr die zündende Idee, warum mein DOIF nicht funktioniert.
Ist-Zustand: Shelly2.5 hinter Tasterschalter (Gira) im Wechselbetrieb. Mit Gira auslösen funktioniert perfekt, ebenso mit Motionsensor. Nun wollte ich dahingehend automatisieren, dass das die Bedingung "zuwenig Licht" dabei ist:
mein DOIF sieht so aus:
(([st.Anwesenheit] eq "absent") or ([s.gutenacht] eq "on"))
(set li.vz.entry off)
DOELSEIF (([li.vz.entry:relay_0] eq "off") and ([mo.vz.eingang.lux:lux] < 90) and ([mo.vz.eingang2:state] eq "motion"))
(set li.vz.entry on)
DOELSEIF ([mo.vz.eingang2:state] eq "nomotion")
(set li.vz.entry off)
DOELSE (set li.vz.entry off)
Der Waittimer ist wie folgt eingestellt:
0:0:30 - soll bewirken, dass bei NoMotion das Licht nicht sofort ausgeht, da ja der Aqara eine gewisse Verzögerung (60 bzw. 90 sec) hat.
als weitere Attribute sind (zwecks Debugging) eingestellt:
Event-on-update: state
event-on-change: state
Wenn das Teil so aktiv ist, passiert folgendes:
Sobald es duster wird und motion detected wird, beginnt das DOIF ca. 5-8 mal zwischen CMD2 und CMD4 hin- und her zuspringen (sprich: das Licht flashed an und aus), und erst wenn man sich vom Sensor wegbewegt, bleibt es "manchmal" an. Der WAF-Faktor ist somit im Eimer :( und meine süßen Motion-Detektoren sollen schon "verschwinden".
Eigentlich habe ich ja in der Commandref gelernt, dass DOIF sich selbst schützt, d.h. Änderungen von Stati während Ausführung keinen Einfluss haben.
Any ideas?
lg Shamal
Pauschal würde ich sagen, dass die Klammern grundsätzlich nicht passen:
Ist:(([st.Anwesenheit] eq "absent") or ([s.gutenacht] eq "on"))
Soll: ([st.Anwesenheit] eq "absent" or [s.gutenacht] eq "on")
Hi,
jeder Event der Beteiligten Geräte triggert Dein DOIF und die Bedingungen werden abgearbeitet.
Ich weiß nicht was passiert, aber mach den Eventmonitor auf, da siehst Du es.
Ich denke Du darfst nicht alle Events zum triggern nehmen, Du kannst einige Bedingungen auf Abfrage umstellen (?)
Du sagst es geht sonst? Dann stell die Lichtabfrage um: [?mo.vz.eingang.lux:lux]
Gruß Otto
Hallo Otto,
Im Eventlog sehe ich nur, dass das doif zwischen CMD_4 und CMD2 ca. 6-7x hin und her springt und sich dann mal auf "CMD_2" "einigt".
EDIT: Also, gerade ausprobiert, das Ergebnis ist spannenderweise exakt "dasselbe"
Aus dem Eventlog, mit Verbose 5:
2020-04-23 18:20:31 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:31 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:31 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:31 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:31 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:32 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:32 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:33 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:34 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:34 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:34 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:34 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:35 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:36 DOIF di.licht.vz.panel cmd_4
2020-04-23 18:20:36 DOIF di.licht.vz.panel cmd_2
2020-04-23 18:20:37 DOIF di.licht.vz.panel cmd_4
Das geht noch ca. 20x so, bis er entweder auf cmd_2 od. cmd_4 "hängen" bleibt.
Ich habe jetzt dem Shelly (ich verwende das shelly.pm Modul) jetzt auch eine fixe IP-Adresse gegeben, nachdem es hin und wieder ein Timeout gemeldet hat. Reboot ebenfalls. Ergebnis ist immer noch dasselbe.
Das Shelly ist übrigens im Relay-Mode, die div. Switch-Einstellungen (Button-Type - momentary,edge, toggle) habe ich auch schon durchprobiert. Ohne Erfolg.
Manuell über Schalter und Web, sowie über die Oberfläche lässt es sich einwandfrei ansprechen und schalten.
Ich habe keine Idee mehr...
lg
Shamal
lg Shamal
Also wenn das DOIF ohne and ([mo.vz.eingang.lux:lux] < 90) funktioniert und mit and ([?mo.vz.eingang.lux:lux] < 90) auch nicht funktioniert weiß ich an Hand der Datenlage auch nicht weiter.
Du darfst Dir im Eventmonitor nicht bloß das DOIF anschauen, Du solltest alle betreffenden Geräte anschauen.
regExp für den Eventmonitor vielleicht so?
st.Anwesenheit.*|s.gutenacht.*|li.vz.entry.*|mo.vz.eingang.lux.*|mo.vz.eingang2.*
Gruß Otto
Hallo Shamal,
was passiert mit "li.vz.entry:relay_0", wenn der Schalter eingeschaltet wir? Wechselt er dann auch von off auf on?
Dann würde cmd2 nicht mehr greifen und er wechselt nach cmd4...li.vz.entry off... wenn dann li.vz.entry:relay_0 auch auf off wechselt greift wieder cmd2.
[?li.vz.entry:relay_0] eq "off"
Daher der dauernde Wechsel.
Vielleicht liegt es ja daran.
Viele Grüße
Reinhard
Hallo zusammen,
ich hab es jetzt (scheinbar) geschafft. Der Aqara meldet sich im FHEM mit 2 Sensoren (Licht, Bewegung). Beide liefern nett div. Readings mit, allerdings werden die scheinbar nach einer gewissen Zeit nicht mehr upgedated. Das betrifft scheinbar den LightSensor. Er liefert zwar auch die Readings mit - z.B. motion - aber eben ohne Update. Somit muss man den Lightsensor und den Bewegungsmelder "getrennt" (aus Sicht der FHEM-Devices) erstellen und auch abfragen.
Warum er bei beiden Sensoren (ZHAPresence und ZHALightsensor) getrennt angelegt und abgefragt werden, scheint es zu funktionieren.
Warum allerdings die Readings mitkommen, aber "irgendwann" (relativ bald) nicht mehr upgedated werden, kann wohl nur der Andre beantworten :), dafür reichen meine Programmier und Zigbee Kenntnisse (noch) nicht.
Weiters habe ich den Sensor jetzt auf 5 sec Intervall eingestellt - gemäß diesem Thread (https://forum.fhem.de/index.php?topic=104123.0#ratethis) und folgendes DOIF erstellt:
(([st.Anwesenheit] eq "absent") or ([s.gutenacht] eq "on"))
(set li.vz.entry off)
DOELSEIF (([?mo.vz.entry:lux] < 80) and
([mo.vz.entry2:state] eq "motion"))
(set li.vz.entry on)
DOELSE (set li.vz.entry off)
Die Attribute:
uiTable:
Attributes:
DbLogExclude .*
devStateIcon cmd_1:black_Steckdose.off cmd_2:black_Steckdose.on cmd_3:black_Steckdose.off
do resetwait
event-on-change-reading state,motion
event-on-update-reading state,motion,lux
Scheint bis jetzt gut zu funktionieren, schauen wir mal, ob die 5 Sekunden Einstellung einen Reboot "überlebt". Wenn nicht, muss ich mir halt ein DOIF bauen, dass nach dem Reboot die Config-Werte wieder schreibt.
Setze es jetzt mal auf gelöst.
Danke für eure Unterstützung,
lg Shamal