NEWS
Lampe immer nach 6 Stunden ausschalten
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
Der Starttrigger ist im ersten Bild zu sehen
leider unvollständig und abgeschnitten, sonst hätte ich nicht gefragt.
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
sich der Startzeitpunkt verschieben kann
und dann schreibst du jedesmal das Blockly neu?
-
@asgothian sagte in Lampe immer nach 6 Stunden ausschalten:
Einfach innerhalb des Zeitplans einen "ausführen Timeout" Block der 6 stunden später aktiv wird..
dann darf aber keine Störung auftreten, da sonst der Timeou nie ausgeführt wird.
Bei 6h habe ich das deshalb nicht empfohlen.
2 Trigger sind da ausfallsicherer -
@homoran Das denke ich auch, allerdings scheitere ich, wie ich schon schrieb, daran den neues Ausschaltzeitpunkt als Triggerzeit für das Ausschalten zu definieren...
Und nein ich schreibe dann nicht das ganze Blocky neu. Ich möchte nur zentral einen Wert ändern und nicht 2.
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
Ich möchte nur zentral einen Wert ändern
da ich deinen komplexen Zeitplan immer noch nicht kenne versuche ich es mal anders.
Bei einem CRON wie
30 7 * * *
ist es doch kein Problem, wenn man den auf45 7 * * *
stellt auch mal eben den Ausschaltzeitpunkt auf45 13 * * *
zu stellen.Aber ja, man soll auch solche CRON variabel erstellen können. ich hab es noch nie gebraucht und dementsprechend auch noch nicht gemacht.
-
@homoran Womit ich wieder am Anfang wäre...
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
@homoran Womit ich wieder am Anfang wäre...
nöö, nur solange du bei deinem unbekannten komplexen Zeitplan bleiben willst.
-
@homoran Ich seh da momentan nichts komplexes statt zwei Zeiten (an und aus) möchte ich Startzeit und Dauer definieren.
Von daher ist der Ansatz von @asgothian schon der naheliegende gewesen.
Allerdings stimme ich Dir auch zu, das bei einer Störung es dazu kommen kann, das die Lampe z.B nicht nach 6 Stunden ausgeschaltet wird. Deshalb bin ich schon noch an einer Lösung mit 2 Triggern interessiert.Vielleicht hat hier ja jemand anderes schonmal das Problem gehabt, den Fall Start und Dauer vorzugeben finde ich nun nicht so ungewöhnlich.
-
Ist die Frage was du mit Störung meinst, Stromausfall so das das Blockly aus ist?
Du könntest die Lampen über eine Zigbee Steckdose schalten und in den Einstellungen der Steckdose das Verhalten nach Stromausfall auf off setzen dann wäre gewährleistet das die Lampen, sollte eine "Störung" aufgetreten aus ist.
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
Ich seh da momentan nichts komplexes
und ich seh gar nichts, nach
peri...
ist abgeschnittendeswegen wäre die Verwendung von
@homoran sagte in Lampe immer nach 6 Stunden ausschalten:
einem CRON wie 30 7 * * *
Vielleicht hilfreich
-
@iceman8080 sagte: Lösung mit 2 Triggern
Mit Einschaltzeit als "hh:mm" in einem Datenpunkt, aber nicht über Mitternacht:
-
@duffy Gute Idee, im Grund ist die Lampe auch ein Zigbee Zwischenstecker.
Mit 'Störung' dachte ich eher daran, das bei wiederholendem Aufruf des Blockly (z.B. wenn die Startzeit angepasst wird während der Timer schon läuft) es zu mehreren Timern kommt die gestartet sind.
-
@paul53 Cool, das sieht zwar auf dem ersten Blick kompliziert aus, ist aber glaube ich das was ich gesucht habe. Danke das werde ich mal umsetzen.
-
@homoran sagte in Lampe immer nach 6 Stunden ausschalten:
@asgothian sagte in Lampe immer nach 6 Stunden ausschalten:
Einfach innerhalb des Zeitplans einen "ausführen Timeout" Block der 6 stunden später aktiv wird..
dann darf aber keine Störung auftreten, da sonst der Timeou nie ausgeführt wird.
Bei 6h habe ich das deshalb nicht empfohlen.
2 Trigger sind da ausfallsichererDas stimmt zwar, aber ich habe bisher keine Probleme auch mit so langen Timeouts. Die Einfache Lösung ist bei Skriptstart die Lampe abzuschalten.
Die Komplexe Lösung ist:
In diesem Fall wird gespeichert wann die Lampe wieder aus gehen soll. Beim Start des Skriptes muss dann nur geschaut werden ob die Zeit um ist, und ggf. ein Timeout mit der entsprechenden Restzeit loslaufen.
Ist die Zeit schon vorbei sollte die Lampe (sofern sie noch an ist) noch ausgeschaltet werden.Das geht auch über Mitternacht.
A.
Nachtrag: die 216000000 die auf die aktuelle Zeit aufaddiert werden sind 6h in ms ausgedrückt.Nachtrag 2: das lässt sich auch schön mit dem Skript von @paul53 kombinieren - die Einschaltzeit mit einem einstellbaren cron so wie bei Ihm, das Ausschalten per Timeout mit Skript-Neustart-Sicherung wie bei mir
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
ist aber glaube ich das was ich gesucht habe.
ja, aber mit einem Cron.
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
das sieht zwar auf dem ersten Blick kompliziert aus
Deswegen kann ich das nicht
-
@iceman8080 sagte in Lampe immer nach 6 Stunden ausschalten:
@duffy Gute Idee, im Grund ist die Lampe auch ein Zigbee Zwischenstecker.
Mit 'Störung' dachte ich eher daran, das bei wiederholendem Aufruf des Blockly (z.B. wenn die Startzeit angepasst wird während der Timer schon läuft) es zu mehreren Timern kommt die gestartet sind.
Kann es nicht. Bei jedem "Neustart" des Blockly's sollten alle Trigger beendet werden. Schwierig ist es nur wenn der Code an sich noch hinter einem GUI Element angehängt wird und dann mehrfach aktivier wird - das ist aber keine Störung sondern eine Fehlbedienung
-
Hier mal ein Vorschlag mit welchem man auch über die Tagesgrenze hinaus Schalten kann.
Dazu werden 2 eigene Datenpunkte vom Typ Zahl benötigt (im Beispiel:
StundeStartzeit und Dauer)Ebenso 3 Variablen im Skript erstellen - startTS, start und stop
Es sei angemerkt dass nur volle Stunden berücksichtigt werden und keine Minuten, also im DP Startzeit eine Zahl zwischen 0 und 23 - im DP Dauer dann eine Zahl zwischen 1 und 23:
-
@djmarc75 sagte: keine Minuten
In der Start- und Stoppstunde wird jede Minute getriggert.
EDIT: Meine Ergänzung für über Mitternacht wäre so:
-
@paul53 sagte in Lampe immer nach 6 Stunden ausschalten:
In der Start- und Stoppstunde wird jede Minute getriggert.
Danke, eben bemerkt:
edit: geht natürlich auch ohne Textblock - einfach 0 im Cron unter Minuten eintragen
-
@djmarc75, @paul53, @Asgothian , @duffy, @Homoran Vielen Dank für Eueren Input!