NEWS
Uhrzeit aus Wert extrahieren und anderen Wert setzen
-
Servus zusammen, stehe vor folgendem Problem :
Ich lese mit dem webcal Adapter aus einem Kalender Ereignisse aus.
Wenn nun ein bestimmtes Ereignis ansteht will ich 15 Minuten vorher ein Script starten.
Der Wert im Feld "next" des webcal-Adapters in den Objekten stellt den Zeitpunkt des Ereignisses aber wie folgt dar :
2024-11-29T07:30:00.000ZProblem 1: Wie bekomme ich die Uhrzeit da raus und schalte damit etwas
Problem 2 : Die Uhrzeit ist in Unix-Zeit gesetzt, sprich die richtige Uhrzeit ist 1 Stunde später, in diesem Fall 8.30.Ich bräuchte hier nun ein Blockly das diesen Wert überwacht und mir 15 Minuten vorher einen Wert eines anderen Objekts auf "true" setzt......
Mir fehlt hier völlig der Ansatz wie ich das bewerkstellige....
Danke für Eure HilfeSunny
-
@sunny9999 sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
Der Wert im Feld "next" des webcal-Adapters in den Objekten stellt den Zeitpunkt des Ereignisses aber wie folgt dar :
2024-11-29T07:30:00.000Zund wie sehen die Objektdaten davon aus?
@sunny9999 sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
Die Uhrzeit ist in Unix-Zeit gesetzt,
nee, in UTC/Zulu-Zeit
-
@homoran
Danke, klar, Zulu Zeit...
naja, im Grunde soll es so laufen :
Dieser Wert "2024-11-29T07:30:00.000Z" stellt ja die Zeit als 7.30 Uhr dar, in unserer Zeit ist das 08.30 Uhr.
Wenn es nun 8.15 ist soll das Script diesen Wert 0_userdata.0.Veranstaltung.Zeitsteuerung.Besichtigung auf "true" setzen
Denn Rest bekomme ich hin.....
Danke für Deine Hilfe
Sunny -
@sunny9999 sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
Dieser Wert "2024-11-29T07:30:00.000Z" stellt ja die Zeit als 7.30 Uhr dar,
nochmal!
Das ist die Darstellung! äIn welcher Form liegt der Wert denn in der Rohverdion vor?
Unixtime wäre da optimal.Deswegen bat ich
@homoran sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
wie sehen die Objektdaten davon aus?
-
const 15MinBefor = sub15Minutes(hier deine zeit); function sub15Minutes(dateString) { const date = new Date(dateString); date.setTime(date.getTime() - 15 * 60 * 1000); return date.toISOString(); }
wie es in Blockly geht kein plan
-
@homoran
Der Wert den ich geschrieben habe steht so in dem Feld in den Objekten drin, als String formatiert..........wüsste nicht wie der Wert sonst vorliegen kann ........ -
@sunny9999 sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
@homoran
Der Wert den ich geschrieben habe steht so in dem Feld in den Objekten drin, als String formatiert..........wüsste nicht wie der Wert sonst vorliegen kann ........Der Admin kann in den Objekten eine Formatierung von Daten vornehmen, auch wenn sie z.B. als Unix Timestamp vorlägen.
Um das sicher sagen zu können muss man in den Objektdaten nachsehen.
Falls du nicht wrisst wie das geht:
- Expertenmodus an
- auf den Bleistift rechts außen beim Datenpunkt klicken
- Reiter Objektdaten öffnen
- Den Inhalt hier in code-tags posten.
-
@sunny9999 Ans8nsten mach es so in der Art:
ich vergesse immer wieder, dass dabei die Zeitzone automatisch berücksichtigt wird.
Deswegen nur 15 Minuten Abzug statt 45 Minuten draufrechnen. -
@sunny9999 sagte: Wie bekomme ich die Uhrzeit da raus
-
@homoran
Super, vielen Dank so schreibt er mir die gewünschte Zeit in meinen Datenpunkt....
Wie triggere ich jetzt anhand dieses Datenpunktes , wenn genau diese Uhrzeit und Datum ist etwas aus bzw. setze einen anderen Datenpunkt auf "true" ?
Danke nochmals....ohne das Forum wäre ich aufgeschmissen.........
Grüße
Sunny -
@sunny9999 oh,
Du willst also aus der Uhrzeit einen Trigger (Cron) erstellen!??das ist hier zwar schon mehrfach im Forum behandelt worden, hab ich aber nicht "mal eben" im Kreuz!
@paul53 sicher schon, oder den Link dazu -
@sunny9999 sagte: wenn genau diese Uhrzeit und Datum ist etwas aus bzw. setze einen anderen Datenpunkt auf "true" ?
Mit Sekunden-Trigger:
-
@paul53
Geht das nicht auch hiermit?
-
@codierknecht sagte: Geht das nicht auch hiermit?
Dann muss man die errechnete Startzeit in einen eigenen Datenpunkt schreiben.
@sunny9999 sagte in Uhrzeit aus Wert extrahieren und anderen Wert setzen:
genau diese Uhrzeit und Datum ist
Es soll auch das Datum berücksichtigt werden.
-
@homoran sagte: einen Trigger (Cron) erstellen!??
Das sollte so funktionieren:
javascript.1 13:45:48.965 info script.js.blockly.Test6_Blockly: 0 15 8 29 11 *
-
@paul53
So vielen Dank für die vielen Richtungen und Wege hier.....
ich hab es jetzt mal so probiert, Werte werden wohl auch richtig ermittelt ABER :
Es löst beim eintreten der Zeit nicht aus............
Wo liegt der Bug ? Vermute das es mit Abweichungen der Uhrzeiten in der Darstellung beim vergleichen liegt.......<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="p@4$}#n7!-_N?XV*?L[4">O_Zeit</variable> <variable id="U0iez:VwkbNpu4}bNS1Q">U_Zeit</variable> <variable id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</variable> <variable id="30zcPmZ:lIn$1kGRgOsn">Ausloesezeit</variable> </variables> <block type="on" id=".y1E1z*Ks{B^UwZ2,%Zj" x="-2163" y="-1462"> <field name="OID">webcal.0.events.Besichtigung.next</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="schedule" id="4)L_*BNX76rrwWKc.itZ"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="VoG)axz5u@AGTk^*SGu_"> <field name="VAR" id="p@4$}#n7!-_N?XV*?L[4">O_Zeit</field> <value name="VALUE"> <block type="get_value" id="N)ovb6m_ab/X1%.dIDod"> <field name="ATTR">val</field> <field name="OID">webcal.0.events.Besichtigung.next</field> </block> </value> <next> <block type="variables_set" id="3dBdA,t5_YqM#;SxHm%("> <field name="VAR" id="U0iez:VwkbNpu4}bNS1Q">U_Zeit</field> <value name="VALUE"> <block type="convert_from_date" id="Smg~*j:e*Gs(./k}dra-"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="variables_get" id="AnM0BY(h{@bTH_sX[/F/"> <field name="VAR" id="p@4$}#n7!-_N?XV*?L[4">O_Zeit</field> </block> </value> </block> </value> <next> <block type="variables_set" id="/)M:^q`R@9pKoYMCnb1r"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> <value name="VALUE"> <block type="math_arithmetic" id="tK94KP[FB+)h?Xx)xvU_"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="!fO+GZZu|k3CQj$pCn?0"> <field name="NUM">1</field> </shadow> <block type="convert_from_date" id="2HNOKVr:Ad0LN5A#xbW]"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="get_value" id=";W`i^qOT2Bevbc!@6A)+"> <field name="ATTR">val</field> <field name="OID">webcal.0.events.Besichtigung.next</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LokJ=L#6}.-v;ofj+~~("> <field name="NUM">900000</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="5)zWWZi65GmPf6i1b9CE" disabled="true"> <field name="VAR" id="30zcPmZ:lIn$1kGRgOsn">Ausloesezeit</field> <next> <block type="debug" id=";9K{bQfsd^N}Ve-k0%YW"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="hR/,%k|wxBCk#vYD(*[U"> <field name="TEXT">test</field> </shadow> <block type="convert_from_date" id="KvId.^kYu3@:[|7~n6]y"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT.MM.JJJJ SS:mm</field> <value name="VALUE"> <block type="variables_get" id="fWU}Z*/,/=iI$EXhPYM`"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> </block> </value> </block> </value> <next> <block type="debug" id="MjAuzQ/wHQRhxGMs6){?"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="hR/,%k|wxBCk#vYD(*[U"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="A`-ZEQ%%D%8:;{jVTHk`"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> </block> </value> <next> <block type="update" id="Aa(@m#@Gj=U*X%,h8b4="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.example_state.Akkuwerte_Devices</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_from_date" id="HZvtN8vj5kJ[|d2)_dek"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT.MM.JJJJ SS:mm:ss</field> <value name="VALUE"> <block type="variables_get" id="3(V+UKg$gEV`dw29deB,"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="22w5;N@g|FsQej;_Q9Di"> <value name="IF0"> <block type="logic_compare" id="6*KQ}pu!sGpnE8Ca[H=g"> <field name="OP">EQ</field> <value name="A"> <block type="time_get" id="jjso1cH~pq.:fO?StY/,"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">JJJJ.MM.TT SS:mm:ss</field> </block> </value> <value name="B"> <block type="convert_from_date" id="spx7]UP;f?#M0R_-[V*."> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT.MM.JJJJ SS:mm:ss</field> <value name="VALUE"> <block type="variables_get" id="{ZeJ2XkVDO!1ZV5OOz)j"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="thUO3`Wj(h!7q.Nj`@rM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Veranstaltung.Zeitsteuerung.Besichtigung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ZqvI|gwnm[{~:c;*f7k$"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="Jk=?M7ig6.,^}nkm!g1E"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="hR/,%k|wxBCk#vYD(*[U"> <field name="TEXT">test</field> </shadow> <block type="convert_from_date" id=")J=GCk.pX`,T~a.9gNuO"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT.MM.JJJJ SS:mm</field> <value name="VALUE"> <block type="variables_get" id="d`;LY}q|+jo,WEWMbw/K"> <field name="VAR" id="oG.MsHMV2@,H|/SKQJT@">UmgerechneteZeit</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Danke nochmal für Eure Hilfestellungen
Grüße
Sunny -
@sunny9999 sagte: Wo liegt der Bug ?
Es sind mehrere:
- Trigger im Trigger funktioniert nicht (siehe blaues Warnsymbol)
- Es muss alles innerhalb des Zeitplanes erfolgen
- Die zu vergleichenden Formate müssen identisch sein
- Wenn man einen Minuten-Trigger verwendet, sollte man keine Sekunden in den Vergleich einbeziehen
Korrektur: