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.
-
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.
-
@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.
-
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
-
@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:
@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?

-
@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
Stundebei 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. -
@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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

