Mahlzeit,
ich verzweifle grad an einem Notify das ich benutzen möchte um verschiedene Lampen abends zu einer bestimmten Zeit angehen zu lassen wenn ich das TV ausschalte.
Ich möchte zwischen 22:00 und 05:00 einige Lampen in der Wohnung für eine bestimmte Zeit angehen lassen wenn ich den Fernseher ausmache (per Presence Modul überwacht). Das man also im Bad, Flur, Schlafzimmer schon mal das Licht an hat wenn man den TV Abend beendet und ins Bett gehen will.
Ich habe mir die Notify eigentlich so vorgestellt
define SamsungTVaus_notify notify TVanwesenheit IF ($hms gt "22:00" and $hms lt "05:00" and [TVanwesenheit:state] eq "absent") (set Lampexy on)
TVanwesenheit ist der TV und Lampexy sollen erst mal die Lampen sein (genaue Definition und Zeiten kann man ja noch einsetzen bei den Lampen). Irgendetwas scheine ich aber falsch zu machen da sich nichts tut.
Meine nächste Befürchtung ist die, das jedes mal wenn es 22:00 Uhr ist und mein TV ausgeschaltet ist die Lampen angehen. Gibt es eine Möglichkeit einer abfrage das das Notify nur greift wenn der Fernseher vorher an war?
Irgendwie scheine ich grad auf dem Schlauch zu stehen.
Grüße
Earkle
Mahlzeit,
ZitatIch habe mir die Notify eigentlich so vorgestellt
Code: [Auswählen]
define SamsungTVaus_notify notify TVanwesenheit IF ($hms gt "22:00" and $hms lt "05:00" and [TVanwesenheit:state] eq "absent") (set Lampexy on)
bei der regex im notify fehlt vermutlich einiges. Schau mal bitte im Eventmonitor welches Event genau kommt (ganze Zeile) wird wenn der TV ausgeschaltet wird. Davon hängts dann ab wie es weiter geht.
vg
Jörg
Da die Info über den Status des TV vom Presence Modul kommt (Eventmonitor=Presence TVAnwesenheit absent) gibt es keine weiteren werte vom TV (wird ja nur alle 30 Sekunden angepingt ob er da ist).
Ich habe jetzt einen ganz anderen Weg geplant und zwar über dieses Notify
define SamsungTVaus_notify notify TVanwesenheit:absent set LichtXY on;;define TVTimer at +00:10:00 set LichtXY off
welches ich über einen at Befehl zu den entsprechenden Zeiten (22:00- 5:00) aktiv Schalte.
Jetzt kommt aber das Problem das ich von meinem Presence Modul alle 30 Sekunden die Meldung "Presence TVAnwesenheit absent" bekomme und das Notify alle 30 Sek. ausgelöst wird. Gibt es da noch eine Möglichkeit das ganze nur auszulösen wenn der Status vorher "Presence TVAnwesenheit present" war?
gruß
andreas
eventOnChange ist Dein freundliches Attribut vom Presence
eventOnChange war die richtige Idee. Jetzt funktioniert es so wie ich es wollte.
Nachdem ich jetzt auch noch die Automatische Updatefunktion des TV ausgeschaltet habe geht auch nicht mehr mitten in der Nacht das Licht im Schlafzimmer an.
Grüße
Andreas
@Earkle: Kannst du deinen fertigen Code (der funktioniert wie du es beschrieben hast), kurz posten?
Danke!!
Ich habe für eine ähnliche Aufgabe presence in Verbindung mit watchdog verwendet und bin zufrieden mit dem Ergebnis.
schöne Grüße
Jo
Hier meine Lösung
Zuerst die Anwesenheit des TV´s überprüfen
define TV_Samsung PRESENCE lan-ping 192.168.2.25
attr TV_Samsung event-on-change-reading state
das Notify um die Lampen an und aus zu machen (GPIO 25 ist die Relaiskarte für die Beleuchtung im Wohnzimmer)
define SamsungTVaus_notify notify TV_Samsung:absent set SteckdoseLampeKueche on;;set GPIO25 on;;define SteckdoseLampeKuecheTimer at +0:06:00 set SteckdoseLampeKueche off;;define GPIO25Timer at +0:04:00 set GPIO25 off
und hier die Timer um das Notify (oben) zu den gewünschten Zeiten zu aktivieren und deaktivieren.
define SamsungTVausnotify_ein at *20:30:00 attr SamsungTVaus_notify disable 0
define SamsungTVausnotify_aus at *23:00:00 attr SamsungTVaus_notify disable 1
Wenn der Fernseher zwischen 20:30 und 23:00 ausgeschaltet wird gehen die Lampen an und nach definierten Zeiten wieder aus.
Gruß
Andreas
@Jojo11
Kannst Du deinen Code zum Vergleich auch posten?
Vorab vielen Dank!
Gruß StefanP
So dürfte es aber auch funktionieren
define TV_Samsung PRESENCE lan-ping 192.168.2.25
attr TV_Samsung event-on-change-reading state
attr TV_Samsung ping_count 2
define FileLog_TV_Samsung FileLog ./log/lgtv-%Y-%m.log TV_Samsung
define TV_Samsung_notify notify TV_Samsung:absent IF ($hms gt "20:30" or $hms lt "23:00") (set lampe on on-for-timer 300)
attr TV_Samsung_notify room wohnzimmer
Hallo,
das
ZitatIF ($hms gt "20:30" or $hms lt "23:00")
trifft aber auf jede Uhrzeit zu.
Mit einem
and
dazwischen wird geprüft ob es zwischen 20:30 Uhr und 23:00 Uhr ist.
Grüße
Ja hast recht da die Uhrzeit hier zwischen 20Uhr und 23Uhr liegt wenn es aber 19:00 bis 3::00 Uhr sein soll wird das 'or' genommen. Bei mir funktioniert es jedenfalls nur so
Ja hast recht da die Uhrzeit hier zwischen 20Uhr und 23Uhr liegt wenn es aber 19:00 bis 3::00 Uhr sein soll wird das 'or' genommen. Bei mir funktioniert es jedenfalls nur so
Hallo,
das ist richtig.
Wenn der zu prüfende Zeitraum über! den Tageswechsel geht musst du mit or prüfen.
Grüße