NEWS
Einfaches Rollanden zu Script zu Uhrzeit X
-
@djmarc75 Ok danke, ich versuche es mal
-
@djmarc75 sagte: hab ich diese Lösung:
So wird eine Änderung der Uhrzeit im Datenpunkt nur bei Skriptstart übernommen. Außerdem wird in der ausgewählten Stunde jede Minute getriggert.
Besser so: -
Ich dachte eigentlich, es wäre das einfachste der Welt.
Auch wenn es hier nicht ganz hin passt, aber ich bekomme den Button gerade in iQontrol nicht hin.
Also mein Datenpunkt ist ja wie folgt:{ "common": { "name": "Uhrzeit", "desc": "Manuell erzeugt", "role": "text", "type": "number", "read": true, "write": true, "def": 0 }, "type": "state", "native": {}, "_id": "0_userdata.0.Virtuelle_Geräte.Uhrzeit_Rolladen.Uhrzeit", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1671378385589 }
Dazu habe ich einen Knopf mit additional Contrtols
Wenn ich nun aber etwas drücke, passiert nichts, der Datenpunkt ändert sich nicht
-
@paul53 Kannst du mir das Script bitte etwas erklären? Ich möchte es bitte verstehen, kenne mich aber ansonsten mit Blockly nicht gut aus.
Mein Skript oben sollte ja auch gehen oder? Das verstehe ich zumindest so. Das Skript wird zu jeder eingestellten Cron Zeit ausgeführt und er prüft dann einfach den Datenpunkt Uhrzeit. Ist dieser vorhanden bzw. entsprechend der Uhrzeit, springt er zu "mache" Trigger ist jeweils der Cron um 7, 8, 9 Uhr, ohne den Datenpunkt Uhrzeit auf Änderungen zu prüfen. Was ja auch nicht nötig ist.
Das Skript von DJMarc nimmt also immer nur den Wert aus dem Datenpunkt, den er zum Zeitpunkt des Skript Startes hat? Habe ich das richtig verstanden?
Bei deinem Skript startet er mit der Funktion sp1 und schreibt dort den aktuellen Wert von Uhrzeit rein. Zudem aktualisiert der "Falls block" jede Änderung am Uhrzeit Datenpunkt und schreibt diesen in die "h" Variable.
Ware das hier nicht genauso?
-
@fuxxz2 sagte: Ware das hier nicht genauso?
Nein. Bei Änderung der Uhrzeit wird nur der laufende Zeitplan gestoppt aber kein neuer Zeitplan mit der geänderten Uhrzeit gestartet. Außerdem enthält die Variable
Stunde
bei Skriptstart undefined.@fuxxz2 sagte in Einfaches Rollanden zu Script zu Uhrzeit X:
Mein Skript oben sollte ja auch gehen oder?
Ja. Verbraucht aber einige Ressourcen.
@fuxxz2 sagte in Einfaches Rollanden zu Script zu Uhrzeit X:
Kannst du mir das Script bitte etwas erklären?
Der Zeitplan muss bei Skriptstart mit dem Wert aus dem Datenpunkt "Uhrzeit" gestartet werden. Wenn sich die Uhrzeit ändert, muss der laufende Zeitplan gestoppt und einer neuer Zeitplan mit der geänderten Uhrzeit gestartet werden.
Da Blockly nur die einmalige Verwendung einer Schedule-Variablen erlaubt, muss der Zeitplan in einer Funktion ausgeführt werden. -
Wie kann ich denn am besten vorgehen, wenn ich Zeiten wie 7:30 benötige?
-
@fuxxz2 sagte: wenn ich Zeiten wie 7:30 benötige?
-
@paul53
Also den Datenpunkt Uhrzeit dann in dem Format 8:30 füllen?
debug Output sagt er dann
2022-12-20 10:34:34.634 info script.js.Aktiv.automatik.Rolladen1: ['8','30']
-
-
@nordischerjung ah ok, dann kommt
javascript.0 2022-12-20 10:56:07.507 info script.js.Aktiv.automatik.Rolladen1: 30 javascript.0 2022-12-20 10:56:07.506 info script.js.Aktiv.automatik.Rolladen1: 7