NEWS
Einfaches Rollanden zu Script zu Uhrzeit X
-
Hallo zusammen,
ich möchte gerne ein ganz einfaches Script im Blockly haben und mit diesem Die Rolladen, abhängig von einem Datenpunkt zu einer Uhrzeit X schließen.
Dazu habe ich nun einen Datenpunkt "Number" angelegt, der per VIS entweder den Zustand 7, 8 oder 9 hat. Die Zahlen stehen für die Uhrzeit, wann die Rollanden runter fahren sollen.
Folgendes Script habe ich nun gebastelt, geht das so oder ist das nicht "State of the Art" ?
Der Wert Uhrzeit, ist der Datenpunkt, der über die VIS per Button gesetzt wird. -
@fuxxz2 für den Moment hab ich diese Lösung:
Geht vll auch noch besser aber so löse ich bei mir solche variablen Zeittrigger.
-
@djmarc75 Das sieht aufgeräumter aus, stimmt.
Wenn die Lösung bei dir bereits läuft, versuche ich das mal.Welches Format hat denn der DP? Einfach Number? ODer benötigt dieser CRON Regel Baustein ein bestimmtes Format?
-
@fuxxz2 number ist schon richtig.
edit: bedenke aber das 24h-Prinzip ... 7=19, 8=20, usw.
-
@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