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.

-
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:SSsein. 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> -
@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:SSsein. 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?
-
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> -
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 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 -
@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 +1ja genau, könntest du mir das noch in das Blockly oben einbauen, das wäre top!
Danke dir vielmals! -
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

-
@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!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login