NEWS
Uhrzeiten in bestimmten Zeitraum auswerten
-
Hi zusammen,
wie kann ich am besten mit Blockly die Zeiten aus den drei Datenpunkten mit einem Zeitraum vergleichen z.b. liegen die Zeiten der Datenpunkte zwischen 0 - 6 Uhr und werte aus, ob jeweils alle drei Stunden dazwischen liegen oder nur zwei oder nur eine Stunde.
-
@diamand2k22 Am Ende wird das mit einfachen String-Vergleichen klappen (Lexikographische Ordnung). Wenn auch nicht sehr schön.
Wert >= '00:00:00' && Wert <= '06:00.00'
Dafür muss nur das Format immer gleich sein - z.B. wie in deinem Beispiel
HH:MM:SS
sein. Sonst klappt das nicht. Lässt Du z.B. im Wert die führende Null weg (z.B.3:00:00
, geht das nicht mehr.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="KP[4n0khi-n@uHIkO?S7">val</variable> </variables> <block type="variables_set" id="**LayA[8w/6]nm!Z=;t-" x="63" y="238"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> <value name="VALUE"> <block type="text" id="4$O}877#;/Ar_WQ6xcyb"> <field name="TEXT">03:00:00</field> </block> </value> <next> <block type="controls_if" id="|*MK,q3,b/C9$c2HUB1."> <value name="IF0"> <block type="logic_operation" id="N?[~+%F22[:4xY{^s]@8"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="9.Sr*I!-{E=FQi=M*c3W"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="6swT/o@d5D7@TIRdH}?:"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> </block> </value> <value name="B"> <block type="text" id="oqFJ@V@WG[qg^9wGie$]"> <field name="TEXT">00:00:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Y9q{rohPlSi`dG!QB,:]"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="08QrRueD#!32)y35eSCS"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> </block> </value> <value name="B"> <block type="text" id="!8d.G?$dx_7FDFCG9p7+"> <field name="TEXT">06:00:00</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="=BGU6Yo/EASxxI{agp;X"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="w0v88=3WU!C7Hvfdv?Hd"> <field name="TEXT">passt</field> </shadow> </value> </block> </statement> </block> </next> </block> </xml>
-
danke für deine Antwort, und wie könnte ich jetzt noch auswerten, wie viele Stunden von den drei dazwischen liegen und den wert 0,1,2,3 dann in eine Variabel schreiben?
-
@diamand2k22 sagte in Uhrzeiten in bestimmten Zeitraum auswerten:
wie könnte ich jetzt noch auswerten, wie viele Stunden von den drei dazwischen
Ich verstehe die Aufgabenstellung nicht so richtig, aber an die Stunde kommst Du wie folgt. Wenn es genauer sein soll (mit Minuten und Sekunden) wird es natürlich entsprechend komplexer.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="KP[4n0khi-n@uHIkO?S7">val</variable> <variable id="RYH^WPGjunHnnw@8iopC">parts</variable> </variables> <block type="variables_set" id="**LayA[8w/6]nm!Z=;t-" x="63" y="238"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> <value name="VALUE"> <block type="text" id="4$O}877#;/Ar_WQ6xcyb"> <field name="TEXT">03:00:00</field> </block> </value> <next> <block type="controls_if" id="|*MK,q3,b/C9$c2HUB1."> <value name="IF0"> <block type="logic_operation" id="N?[~+%F22[:4xY{^s]@8"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="9.Sr*I!-{E=FQi=M*c3W"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="6swT/o@d5D7@TIRdH}?:"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> </block> </value> <value name="B"> <block type="text" id="oqFJ@V@WG[qg^9wGie$]"> <field name="TEXT">00:00:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Y9q{rohPlSi`dG!QB,:]"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="08QrRueD#!32)y35eSCS"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> </block> </value> <value name="B"> <block type="text" id="!8d.G?$dx_7FDFCG9p7+"> <field name="TEXT">06:00:00</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="T2]=U;B_Oi[#e`UiWQCi"> <field name="VAR" id="RYH^WPGjunHnnw@8iopC">parts</field> <value name="VALUE"> <block type="lists_split" id="M_qHt+LGvTH/Tf9_6:9g"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="0K8~(AfxHo$VZJk0!B=z"> <field name="VAR" id="KP[4n0khi-n@uHIkO?S7">val</field> </block> </value> <value name="DELIM"> <shadow type="text" id="UeVi*q_8L)}.7Ek7Kh5;"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="debug" id="O*vL-~,~w535t+%vn{v2"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="f)^lbH_2C,[*;2{+D~vA"> <field name="TEXT">test</field> </shadow> <block type="convert_tonumber" id="+GDM9g^2LYVWrnR@WAFY"> <value name="VALUE"> <block type="lists_getIndex" id="r3jRYG6p~?tTm6kYkr}_"> <mutation statement="false" at="false"></mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="ZqA*:niVAFtsR/ntEAcA"> <field name="VAR" id="RYH^WPGjunHnnw@8iopC">parts</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@diamand2k22 Ach Du meinst einfach nur die Anzahl der Datenpunkte? Ja mit dem
$
-Selektor die Datenpunkte wählen, über die Liste gehen und für jeden Wert die o.g. Prüfung durchführen und wenn wahr dann +1 -
ja genau, könntest du mir das noch in das Blockly oben einbauen, das wäre top!
Danke dir vielmals! -
@diamand2k22 sagte in Uhrzeiten in bestimmten Zeitraum auswerten:
ja genau, könntest du mir das noch in das Blockly oben einbauen, das wäre top!
Wie lauten denn die IDs und wann genau soll die Anzahl aktualisiert werden?! So wäre das Grundgerüst:
bzw. mit Trigger wenn sich einer der Werte ändert
-
ah super, danke dir, das ist genau das, was ich brauche!
die ID's sind:
'0_userdata.0.Datenpunkte.Tibber_Test.Tiefstzeit.0'
'0_userdata.0.Datenpunkte.Tibber_Test.Tiefstzeit.1'
'0_userdata.0.Datenpunkte.Tibber_Test.Tiefstzeit.2'als Trigger würde ich einfach den Selektor nehmen wie in deinem Beispiel!