Hi,
Ich habe folgendes eingerichtet damit eine Steckdose die beim starten von FHEM ggf. angeschaltet ist nach 6 Stunden ausgeschaltet wird:
define n_global_INITIALIZED notify global:INITIALIZED IF ([Steckdose1] eq "on")(define Steckdose1AutoAus at +06:00:00 set Steckdose1 off )
Eigentlich mache ich das über einen Watchdog, aber das funktioniert ja nicht wenn die Steckdose beim FHEM start schon angeschaltet ist.
define wd_Steckdose1 watchdog Steckdose1:on 08:00:00 Steckdose1:off set Steckdose1 off;; trigger wd_Steckdose1 .
Jetzt zu meinem eigentlichen "Problem":
Schalte ich die Steckdose in den 6 Stunden nach FHEM start händisch aus läuft das at ja trotzdem noch weiter. Sollte ich dann z.B. 5 Minuten bevor das at ausgeführt wird die Steckdose wieder einschalten wird sie vom at danach ausgeschaltet... Also hatte ich mir überlegt ob man nicht beim ausschalten der Steckdose mit FHEM prüfen kann ob es ein at mit dem Namen Steckdose1AutoAus gibt und das dann einfach löscht?
Vielen Dank schonmal und viele Grüße
Kann man machen, z.B. mit devspec auf den Namen. Aber es geht noch einfacher:
Lösche das at device doch einfach unabhängig davon, ob es existiert oder nicht - die dabei auftretende Fehlermeldung kannst Du getrost ignorieren, sie ist ja "gewollt".
Hi,
Du kannst doch anstatt at auch den watchdog in den gewünschten Zustand bringen?
Zitattrigger <watchdogname> . aktiviert den Trigger wenn dessen Status defined ist und setzt ihn in den Status defined wenn sein status triggered oder aktiviert (Next:...) ist.
Der Watchdog musst immer mit diesem Befehl reaktiviert werden wenn er getriggert wurde.
Hab ich noch nicht gemacht, wäre aber einfach zu probieren.
Gruß Otto
Oder beim (bzw. bei jedem) Einschalten das at per defmod wieder auf 6h stellen...
Schlimmstenfalls wird 6h nach dem letzten Einschalten halt ausgeschaltet, obwohl schon aus...
Bzw. kann das ja im at geprüft werden und dann eben nicht noch mal ausgeschaltet werden...
Mache ich beim Badlüfter so, damit auf jeden Fall nach 1h aus ist...
Ansonsten soll er je nach Feuchtigkeit ausgehen...
Gruß, Joachim
Wie wäre es mit "on-till" oder "on-for-timer"? Wenn das zu schaltende Gerät das nicht direkt unterstützt ggf. mit einem readingsProxy dazwischen?
Oder einen Homematic Schaltaktor verwenden, denn der gibt auch eine Rückmeldung an FHEM, wenn er manuell bedient wurde.
Hallo zusammen,
vielen Dank für eure vielen Tipps. Ich habs jetzt per defmod gemacht
Zitat von: MadMax-FHEM am 22 Dezember 2017, 11:23:59
Oder beim (bzw. bei jedem) Einschalten das at per defmod wieder auf 6h stellen...
Falls nochmal jemand suchen sollte hier der Vollständigkeit halber:
define n_global_INITIALIZED notify global:INITIALIZED IF ([Steckdose1] eq "on")(defmod Steckdose1AutoAus at +06:00:00 set DF_SD_1 off;; attr Steckdose1AutoAus room Raum1 )
define notify_Steckdose1 notify DF_SD_1 { if ($EVENT eq "on") { fhem "defmod Steckdose1AutoAus at +06:00:00 set DF_SD_1 off;;;; attr Steckdose1AutoAus room Raum1" } elsif ($EVENT eq "off") { fhem "delete Steckdose1AutoAus" } }
attr notify_Steckdose1 room Raum1
Das einzige was mich noch etwas stört: Wenn die Steckdose beim FHEM start an ist, dann wird als Raum aber "Raum 1 )" als Raum erstellt, ich hatte da zuerst kein Leerzeichen und dachte es läge daran, aber das hat keinen Unterschied gemacht (bzw schon, vorher war es "Raum1)" jetzt ist es "Raum 1 )")
Den Watchdog habe ich komplett deaktiviert, ich gehe jetzt über das notify generell den at-Weg.
Hmmm, ich bin mir nicht sicher bzw. so weit hab ich noch nicht experimentiert...
Aber ich würde erwarten, dass wenn ich einschalte und ich einen (relativen) Timer/at anlege, dass dieser nach einem Neustart von fhem weiterläuft...
(vielleicht probiere ich das [irgendwann] mal aus)
D.h. den defmod mit global:INITIALIZED brauchst du dann ja nicht, oder?
Bzw. wenn fhem nun 1min vor Ablauf des Timers neu startet setzt du ja wieder auf die vollen 6h...
Das delete des Timers/at brauchst du eigentlich nicht, oder?
Bzw. kann es zu Einträgen im Log führen (define first)...
Da es sich um einen einmaligen (da relativ) Timer/at handelt, verschwindet der eh nach den 6h...
...gut ohne delete würde er noch mal ausschalten, who cares ;)
Dann ist auch die Abfrage auf "on" bzw. "off" im Notify unnötig bzw. kann das ("on") dann gleich mit ins RegEx des Notify...
Mein "Notaus-Notify" ist einfach:
define nTurnOffLuefterBadSec notify Schaltaktor_Bad_Luefter:on defmod atTurnOffLuefterBad at +01:00:00 set Schaltaktor_Bad_Luefter off
Das mit dem Raum, hmm.
Evtl. ist das define noch nicht "aktuell" (durch) und das attr room kann daher nicht so richtig ausgeführt werden...
Steht was im Log?
Macht ein Raum überhaupt Sinn?
Der Timer/at ist ja nur vorhanden, wenn das Licht eingeschaltet wurde und dann auch nur für 6h.
Den Rest vom Tag (und wenn nicht ein geschalten wurde) ist er ja gar nicht da...
Gruß, Joachim
Ich bin von dem Homepilot Modul auf das Duofernstick Modul umgestiegen - mit dem alten Modul war das ganze gebastel notwendig, da beim starten der Watchdog nicht von alleine angetriggert worden war. Ich habe festgestellt, dass der Watchdog mit dem neuen Modul ohne Probleme funktioniert und von alleine getriggert wird wenn FHEM startet. Also das ganze at-gebimmel wieder weg und den Watchdog aktiviert - alles funktioniert so wie es soll :)
Hätte ich das vor dem ganzen gebastel mal getestet ob das mit dem neuen Modul funktioniert... ::)
Vielen Dank aber für die Hinweise