NEWS
Blockly Schalten zu bestimmten Zeiten
-
@PatrickFro
mit Zeiten rechnen hab ich mit Blockly noch nicht probiert, sollte aber auch kein unlösbares Problem sein.
Du könntest ein fach beim Einschalten die aktuelle Zeit in Minuten in eine Variable oder DP schreiben (DP ist zum Testen besser, weil man den erstens definieren kann und zweitens gleich sieht was drin steht). Dazu dann die 20 Minuten aus Deinem DP addieren und wenn die aktuelle Zeit in Minuten dem Ergebnis entspricht eben ausschalten.
Da ist @paul53 eigentlich Dein Ansprechpartner, wenn es um elegante Lösungen komplexer Blocklys geht. -
Das ist nun mein Ansatz mit der Umrechnung der aktuellen Zeit in Minuten, leider funktioniert er nicht. Der Datenpunkt erhält keine Befüllung des Wertes. Hat jemand eine Idee?
Danke!
-
bei berechnungen von uhrzeiten ist es für mich immer am einfachsten mit der linuxzeit direkt zu arbeiten
dieser wert ist in millisekunden (z.b. 1563186827171)
damit arbeitet es sich leicht beim vergleichen addierst du 20 minuten ( => 20 x 60 x1000)ms hinzu, kannst du einfach mit größer oder kleiner abfragen, ob die zeit abgelaufen ist
-
Danke für den Ansatz!
Ich bin leider noch recht neu bei Blocky, daher brauche ich noch eine kleine Hilfe.
Wenn ich diesen Weg nutze, wie schreibe ich die Startzeit in einen DP? Ich brauche leider 112 Startzeiten, daher ist dies etwas unübersichtlich für mich.
Könnte ich nicht auch
zum ermitteln der Startzeit des Scriptes nutzen? Nur habe ich hier auch nicht geschafft, es in einen DP zu schreiben...
-
so speichert man die linuxzeit in das gewünschte format (da ist eine konvertierung mit drin !
-rechnen mit der reinen linuxzeit
-lesbare daten bekommst du mit der konvertierung
-
herrlich, die Startzeit habe ich nun endlich im Datenpunkt. Vielen Dank soweit.
Was ich noch nicht schaffe, ist die Ausführung des Ausschaltens.
Ich sehe ja, dass es nicht genau wie dein oberes ist, nur kann ich das gar nicht zusammenbauen. Nutzt Du hierfür Variablen? Wenn ja, wie nutze ich diese / wie kann ich diesen einen Datenpunkt zuordnen?
-
mach doch bitte mal ein bild mit den inhalt der datenpunkte - sonst habe ich es echt etwas schwer - ich weiß ja nicht, was da drin steht
-
Sorry, hast recht...
In diesem Fall soll die Schaltung aus nach einer Minute geschehen.
-
es scheint schon so zu sein , dass du variable nutzen solltest - variablen sind wie datenpunkte (nur nicht gespeichert) in den objekten (nur zur laufzeit des scriptes) - d.h. beim stoppen des scriopts, iobroker oder des rechners sind die daten weg
also im moment hast du einen string (zeichenkette) mit dem datum und der uhrzeit - dazu möchtst du eine zahl addieren - das geht nicht - 19.7.2019 16:55 plus 60000 = ?
-
erst mal eine frage - wielange soll den die leuchtdauer höchstens sein - kann es vorkommen, dass du den server neustartest während eine solche leuchtdauer anhält
-
der datenpunktist jetz schön anzusehen für dich - aber fü die berechnung nicht zugebrauchen
um sicherzugehen , dass as script eine serverauszeit übelebt müssen wir auch die linuxzeit sichern für die berechnung
das geht so:
ein neuer daten punkt für die linuxzeit (parallel zu deiner datumsansicht):mit diesem wert können wir dann immer rechnen - selbst wenn du zwischendurch den rechner neustartest !!
-
Hm, ok. Dann sind Variablen also virtuelle Datenpunkte, die sozusagen im Zwischenspeicher bleiben (solange kein Neustart passiert).
Ich verstehe es nun etwas besser, bin damit aber erstmal überfordert.
Ich danke Dir für die Erklärungen, werde aber wohl zu Beginn einfach die jeweilige Lampe mit einem Timer versehen, dass jede 20 Minuten nach dem Angehen wieder ausgeht.Nimms mir nicht übel, aber ich kann Excel und VBA, sonst keine Programmiersprache
-
ich nehm dir nix übel - die ganze zeitsache habe ich am anfang auch erstmal ausgelasen und mit einfacheren dingen begonnen