Bitte weiter unten beginnen zu lesen, hier dachte ich noch, es läge an der Programmlogik!
-----------------------------------------------------------------------------------------------------------------------
Guten Abend zusammen,
meine Flurlichtautomatik funktioniert sehr praktisch: schaltet bei Dämmerung (durch Helligkeitssensor im PIRA3-Außenbewegungsmelder) die Steckdose ST2 ein, um 23 Uhr aus, an bestimmten Wochentagen um 06:50 ein (wenn es dunkel genug ist) und abends ebenfalls bei Dunkelheit an. So weit, so gut.
Da das Licht aber auch in der Nacht durch einen Bewegungsmelder PIRI1 bei Bedarf für 10 Minuten eingeschaltet werden soll (on-for-timer), gibt es den 2. Trigger weiter unten.
Problem nun: wenn im ausgeschalteten Zustand der on-for-timer-Befehl aus dem "Flurlicht_Timer" kommt, stimmt der Status von ST2 nicht mehr, das zeitgesteuerte "Flurlicht" meint, die Lampe sei noch an und schaltet morgens das Licht nicht mehr ein und abends in der Dunkelheit auch nicht an.
Meine Vermutung: on-for-timer stellt den Status von ST2 nicht auf "off", obwohl die Lampe nach 10 Minuten aus ist. Wie muss ich den Status korrekt abfragen?
define Flurlicht notify PIRA3.*brightness.* { \
my $schwelle;;\
if (ReadingsVal("ST2","timedOn","---") ne "running"){\
if ($hour < 12) {$schwelle = 35} else {$schwelle = 135}\
if (ReadingsVal("PIRA3","brightness","---") <= $schwelle) { \
if ($hms lt "23:00:00" && ( ($wday ~~ [1..4] && $hms ge "06:50:00") || $hms ge "12:00:00" )) { \
fhem ("set Tageslicht dunkel;;");; \
if (Value ("ST2") ne "on") { fhem ("set ST2 on;;");; } \
} \
else { \
fhem ("set Tageslicht dunkel;;");; \
if (Value ("ST2") ne "off") { fhem ("set ST2 off;;");; } } } \
else { \
fhem ("set Tageslicht hell;;");; \
if (Value ("ST2") ne "off") { fhem ("set ST2 off;;");; } } \
}}
Bei Bedarf das Licht für 10 Minuten einschalten:
define Flurlicht_Timer notify PIRI1:motion* {if (Value("Tageslicht") eq "dunkel" && Value ("ST2") ne "on")\
{ fhem ("set ST2 on-for-timer 600");; }\
}
Vielen Dank!
ist es eine fs20 steckdose? hast du follow-on-for-tmer gesetzt?
gruss
andre
Zitat von: justme1968 am 01 Dezember 2014, 20:02:59
ist es eine fs20 steckdose?
Nein, Homematic HM-LC-SW1-PL2
Zitat von: justme1968 am 01 Dezember 2014, 20:02:59
hast du follow-on-for-tmer gesetzt?
Nein, das könnte es sein, probiere ich aus, DANKE erstmal!
Hallo,
Vermutung widerlegt.
Ich habe aber auch KEIN follow-on-for-timer gesetzt.
Device: HM-LC-SW1-PL2
Name: Reserve1
Befehl in FHEM: set Reserve1 on-for-timer 10
Nach 10 Sekunden steht das Device auf state off und STATE Aus durch eventMap.
Grüße
Danke für den Test an Puschel,
Attribut "follow-on-for-timer" geht bei Homematic-Steckdosen nicht.
Werde weitersuchen.
homematic sendet beim ausschalten den status von ganze alleine zurück. ST2 sollte also immer den richtigen status haben.
ich denke du hast irgendwo noch ein logik problem.
schau dir mal im event monitor die genaue abfolge an und bau die ein paar log ausgaben in das notify.
gruss
andre
Mach ich, das krieg ich schon hin.
Danke an Euch!!!!!
Zitat von: justme1968 am 01 Dezember 2014, 20:16:48
homematic sendet beim ausschalten den status von ganze alleine zurück. ST2 sollte also immer den richtigen status haben.
gruss
andre
Das hatte ich auch gedacht!
Habe jetzt die komplette Logik ausgebaut und nur noch in der WebUI und der Kommandozeile gesucht:
Meine Homematic-Funksteckdose ("ST2") sendet nicht immer beim Ausschalten den Status zurück:
Fall 1, bei dem alles o.k. ist:
Lampe ist aus:
recentStateType ack 2014-12-06 15:02:48
state off 2014-12-06 15:02:55
timedOn off 2014-12-06 15:02:55
Lampe für 1 Minute einschalten:
set ST2 on-for-timer 60
recentStateType ack 2014-12-06 15:03:40
state on 2014-12-06 15:03:40
timedOn running 2014-12-06 15:03:40
Nach 1 Minute geht die Lampe planmäßig aus, das sieht man auch in den Readings:
recentStateType ack 2014-12-06 15:03:40
state off 2014-12-06 15:04:42
timedOn off 2014-12-06 15:04:42
Soweit alles o.k.
-------------------------
Fall 2 (Fehlerfall:)
Jetzt wird ST2 manuell über das Web-UI vorher in den on-Zustand gesetzt (Lampe leuchtet auch)
recentStateType ack 2014-12-06 15:05:25
state on 2014-12-06 15:05:25
timedOn off 2014-12-06 15:05:25
Jetzt wieder ein on-for-timer absetzen:
set ST2 on-for-timer 60 (in der Kommandozeile)
Die Lampe ist bereits an und bleibt auch an:
recentStateType ack 2014-12-06 15:06:45
state on 2014-12-06 15:06:45
timedOn running 2014-12-06 15:06:45
Nach 1 Minute geht die Lampe wie erwartet aus, ABER der interne Zustand meint immer noch, sie wäre an:
recentStateType ack 2014-12-06 15:06:45
state
on 2014-12-06 15:06:45
timedOn
running 2014-12-06 15:06:45
Davon erholen sich die Readings nicht mehr, sie zeigen den falschen Zustand an.
Erst nach einem manuellen Status-Request in der Web-UI stimmt der Status in den Readings:
recentStateType info 2014-12-06 15:16:51
state
off 2014-12-06 15:16:51
timedOn
off 2014-12-06 15:16:51
Was habe ich da falsch gemacht?
das solltest du im homematic bereich posten damit marin es sich anschauen kann.
gruss
andre
Hallo,
bitte den Betreff überarbeiten und für martin etwas "aussagekräftiger" machen z.B. das verwendete Gerät eintragen.
Danke.
Grüße
Könnte jemand das bitte mit einer Homematic-Schaltsteckdose (HM-LC-SW1-PL2) nachstellen, ob das bei ihm den gleichen Effekt hat?
Vielen Dank!
Zitat von: FFHEM am 06 Dezember 2014, 15:35:26
Fall 2 (Fehlerfall:)
Jetzt wird ST2 manuell über das Web-UI vorher in den on-Zustand gesetzt (Lampe leuchtet auch)
recentStateType ack 2014-12-06 15:05:25
state on 2014-12-06 15:05:25
timedOn off 2014-12-06 15:05:25
Jetzt wieder ein on-for-timer absetzen:
set ST2 on-for-timer 60 (in der Kommandozeile)
Die Lampe ist bereits an und bleibt auch an:
recentStateType ack 2014-12-06 15:06:45
state on 2014-12-06 15:06:45
timedOn running 2014-12-06 15:06:45
Nach 1 Minute geht die Lampe wie erwartet aus, ABER der interne Zustand meint immer noch, sie wäre an:
recentStateType ack 2014-12-06 15:06:45
state on 2014-12-06 15:06:45
timedOn running 2014-12-06 15:06:45
Davon erholen sich die Readings nicht mehr, sie zeigen den falschen Zustand an.
Erst nach einem manuellen Status-Request in der Web-UI stimmt der Status in den Readings:
recentStateType info 2014-12-06 15:16:51
state off 2014-12-06 15:16:51
timedOn off 2014-12-06 15:16:51
sniff doch bitte mit, was der cul empfängt, bzw dein Device sendet
nicht immer das Geschäft auf andere abwälzen
Anleitung zum sniffen
http://forum.fhem.de/index.php/topic,16563.0.html (http://forum.fhem.de/index.php/topic,16563.0.html)
Danke hary,
das werde ich machen, ich kannte das Sniffen noch gar nicht!