[Gelöst] FHEM korrumpiert einschalten eines Dimmers.

Begonnen von Syon, 27 August 2017, 09:17:16

Vorheriges Thema - Nächstes Thema

Syon

Hallo, ich habe ein weiteres Problem bekommen.

Ich schalte mit:
# Keller Kind li Licht AUS wenn keine Präsenz

define Keller_Kind_li_stromspar notify Keller_Kind_li_pr { fhem ("set K_Kind_li_Licht1 value 0");; fhem ("set K_Kind_li_Licht2$
attr Keller_Kind_li_stromspar group Logik
attr Keller_Kind_li_stromspar room Sonder/Logik


Das Licht automatisch ohne Präsenz aus.

Allerdings laufe ich dabei in ein Problem.
Der Präsenzmelder schaltet das Licht ein und kurz darauf schaltet FHEM es wieder aus. Die Präsenzmeldung (Ein) vom Präsenzmelder kommt immer NACH dem Schaltbefehl des selbigen. FHEM ist dann wohl nicht schnell genug und erkennt, dass das Licht eingeschaltet ist, aber der Präsenzmelder keine Präsenz festgestellt hat (Aus). Daraufhin schaltet er das Licht wieder aus.
Das Ganze geschieht in unter einer Sekunde.
(1.1.5 ist FHEM)
# Zeit Dienst Flags Prio Quell-Adresse Quell-Name Ziel-Adresse Ziel-Name Rout Typ DPT Info
246 27.08.2017 09:11:09,117 vom Bus Niedrig 1.1.14 SCN-P360D3.01 Präsenzmelder 3S 1/3/1 Keller Kind li Licht1 6 GroupValueWrite   5.001 Prozent (0..100%) $CC | 80 %
247 27.08.2017 09:11:09,144 vom Bus Niedrig 1.1.14 SCN-P360D3.01 Präsenzmelder 3S 5/1/1 Keller Kind li 6 GroupValueWrite   1.001 Schalten $01 | Ein
248 27.08.2017 09:11:09,159 vom Bus Niedrig 1.1.5 - 1/3/1 Keller Kind li Licht1 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
249 27.08.2017 09:11:09,170 vom Bus Niedrig 1.1.5 - 1/3/2 Keller Kind li Licht2 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
250 27.08.2017 09:11:09,181 vom Bus Niedrig 1.1.5 - 1/3/1 Keller Kind li Licht1 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
251 27.08.2017 09:11:09,192 vom Bus Niedrig 1.1.5 - 1/3/2 Keller Kind li Licht2 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
252 27.08.2017 09:11:09,204 vom Bus Niedrig 1.1.5 - 1/3/1 Keller Kind li Licht1 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
253 27.08.2017 09:11:09,214 vom Bus Niedrig 1.1.5 - 1/3/2 Keller Kind li Licht2 5 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %
254 27.08.2017 09:11:09,301 vom Bus Niedrig 1.1.10 AKD-0401.01 Dimmaktor-1 4-fach, 8TE, 230VAC, 250W 1/4/1 Keller Kind li Licht1 6 GroupValueWrite   1.001 Schalten $01 | Ein
255 27.08.2017 09:11:09,343 vom Bus Niedrig 1.1.10 AKD-0401.01 Dimmaktor-1 4-fach, 8TE, 230VAC, 250W 1/5/1 Keller Kind li Licht1 6 GroupValueWrite   5.001 Prozent (0..100%) $CD | 80 %
256 27.08.2017 09:11:09,617 vom Bus Niedrig 1.1.10 AKD-0401.01 Dimmaktor-1 4-fach, 8TE, 230VAC, 250W 1/4/1 Keller Kind li Licht1 6 GroupValueWrite   1.001 Schalten $00 | Aus
257 27.08.2017 09:11:09,644 vom Bus Niedrig 1.1.10 AKD-0401.01 Dimmaktor-1 4-fach, 8TE, 230VAC, 250W 1/5/1 Keller Kind li Licht1 6 GroupValueWrite   5.001 Prozent (0..100%) $00 | 0 %


Wie kann ich dem begegnen?
Mein einziger Versuch hat leider auch nicht geklappt.
define Keller_Kind_li_stromspar notify Keller_Kind_li_pr sleep 2 { fhem ("set K_Kind_li_Licht1 value 0");; fhem ("set K_Kind_li_Licht2$

Syon

Gibt es eine Möglichkeit die Abfrage für genau dieses Problem etwas nach hinten zu schieben, sodass FHEM erst nach beiden Befehlen abfragt?

darkness

Hey,

ich habe zwar kein KNX  aber ne Idee.

Versuch doch mal einen Watchdog. In etwas "Schalte das Licht aus wenn 5 Sekunden nach dem Einschalten keine Bewegung erkannt wurde".


Syon

Super Idee..
Ich habe das jetzt mal so implementiert und werde schauen obs klappt.
Danke.

define Keller_Kind_li_stromspar watchdog Keller_Kind_li_pr:on.* 00:15:00 Keller_Kind_li_pr:off.* { fhem ("set K_Kind_li_Licht1$
attr Keller_Kind_li_stromspar autoRestart 1

Syon

Das hat auch so leider nicht funktioniert....

define Keller_Kind_li_stromspar watchdog Keller_Kind_li_pr:on 00:00:05 Keller_Kind_li_pr:off { fhem ("set K_Kind_li_Licht1 value 0");; fhem ("set K_Kind_li_Licht2 value 0") }
attr Keller_Kind_li_stromspar autoRestart 1

darkness

So müsste es klappen.

define Keller_Kind_li_stromspar watchdog LICHT AN 00:00:30 PRESENZMELDER AN * { fhem ("set K_Kind_li_Licht1$

RegEx 1 triggert den WD solange, bis Bedingung 2 eintrifft.


Du hast jetzt wenn licht an und nicht innerhalb von 15 Minuten ausgeschaltet wird, schalte das licht aus :)

Syon

Also müsste das doch dann so gehen:
define Keller_Kind_li_stromspar watchdog Keller_Kind_li_pr_praesenz:off 00:00:05 Keller_Kind_li_pr_praesenz:on { fhem ("set K_Kind_li_Licht1 value 0");; fhem ("set K_Kind_li_Licht2 value 0") }


"LICHT AN" habe ich ja so nicht und "PRESENZMELDER" wird ja "Keller_Kind_li_pr_praesenz" sein.

Hmm ich hab da wohl ein Brett vorm Kopf....

Syon

Ich habe die Lösung gefunden:

define Keller_Kind_li_stromspar watchdog Keller_Kind_li_pr_praesenz:off 00:05:00 SAME { fhem ("set K_Kind_li_Licht1 value 0");; fhem ("set K_Kind_li_Licht2 value 0") }


Das scheint zu laufen.
Vielen Dank für die Hilfe.