NEWS
Blockly Script nutzt falsche Uhrzeit
-
Hallo Liebe Leute,
ich bin kurz vor dem verzweifeln.
Kurz zum Setting: iobroker auf einem raspberry.Ich habe mir ein Blockly-Script geschrieben, dass um Uhrzeit X eine Steckdose schalten soll.
Jetzt ist es aber so, dass die Uhrzeit des Scripts augenscheinlich eine Stunde nach geht.Heißt: Eingestellt ist "schalte um 18 Uhr an". Um 18 Uhr passiert dann aber nix sondern sie schaltet erst um 19 Uhr.
Erste Vermutung natürlich: falsche Zeitzone. Aber: Zeitzone im Raspberry stimmt, im "Javascript" Adapter bei den Astroeinstellungen im iobroker habe ich Längen und Breitengrade hinterlegt und auch in den iobroker Systemeinstellungen sind die Längen und Breitengrade hinterlegt. Die Uhrzeit stimmt auch in den Logs. "date" direkt am Raspberry gibt auch korrekte Daten aus.
Wenn ich mir im Javascript Adapter in ioBroker die aktuelle Uhrzeit ausgeben lasse druckt er mir auch die richtige Uhrzeit aus!Nur bei der Ausführung des Skripts nimmt er scheinbar eine Uhrzeit von irgendwo anders. Aber ich finde einfach nicht wo ich die Uhrzeit sonst noch umstellen soll!
Kann mir bitte jemand sagen wo ich noch nicht nachgesehen habe?
-
-
@thomas-braun nene die stimmt schon:
Do 26. Jan 19:04:41 CET 2023
Do 26. Jan 18:04:41 UTC 2023Ich hab eher das gefühl, er nimmt die UTC Zeit und nicht die lokale.
-
-
@thomas-braun Da stimmt es komischerweise auch:
sudo -u iobroker date
Do 26. Jan 19:08:56 CET 2023 -
@bananause schön wäre es auch das Blockly zu sehen.
-
@djmarc75 Klar, hier ist es:
Als Quelltext:
schedule('{"time":{"start":"19:22","end":"23:59","mode":"hours","interval":1},"period":{"days":1}}', async function () { setState("deconz.0.Lights.5.on"/*undefined on*/, true); });
Das Script funktioniert auch...schaltet die Steckdose. Allerdings nicht um 19:22 sondern erst um 20:22...
-
@bananause nicht den Quelltext sondern auch das Blockly als Text exportierten und hier mal reinstellen.
Soll das Skript ab 19:22 Uhr jede Stunde die Dose schalten ?
Intervall schaltet das Erste mal erst nach dem Start des Skripts...ergo erst 20:22 Uhr.... -
@bananause mach mal lieber so:
-
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="*@@}64?2iwAFP(+(aY?x" x="38" y="38"> <field name="SCHEDULE">{"time":{"start":"19:35","end":"23:59","mode":"hours","interval":1},"period":{"days":1}}</field> <statement name="STATEMENT"> <block type="control" id="P0Ia-K!3_sIq@9::-j09"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.5.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="MW_S=(pnluMY5^i@Jly$"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </xml>
Meintest du so?
Ich hab das über den Wizard konfiguriert. Eigentlich soll das Skript nur einmal täglich an schalten.
-
@bananause sagte in Blockly Script nutzt falsche Uhrzeit:
<xml xmlns="https://developers.google.com/blockly/xml">
so wird das nix - besser so:
<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="oqjmd$gNC-]CB0AAvIYA" x="187.99999999999977" y="-37.000000000000114"> <field name="SCHEDULE">{"time":{"exactTime":true,"start":"19:45"},"period":{"days":1}}</field> <statement name="STATEMENT"> <block type="control" id="!)INoJ!R%cQy,}^{{+2{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="5qC7y~ox!APgFjr)M|iU"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block>
-
Oh man, da saß der Fehler mal wieder 50 cm vor dem Bildschirm. Wie so oft. Peinlich.
Du hast recht, ich habe den Wizard falsch bedient. Mit deinem Script und der Einstellung "Bestimmte Zeit" im Wizard funktioniert es auch richtig.
Ist mein erstes Blockly Script...naja, jeder fängt ja mal an.
Danke für die schnelle Hilfe! Ohne die wäre ich trotzdem nicht drauf gekommen.