Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Uhrzeiten in bestimmten Zeitraum auswerten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Uhrzeiten in bestimmten Zeitraum auswerten

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Diamand2k22 last edited by

      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.

      aac127c0-8159-4e8d-9df0-d19ab9bed6fe-image.png

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Diamand2k22 last edited by haus-automatisierung

        @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.

        Screenshot 2024-01-09 at 22.03.35.png

        <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>
        
        D 1 Reply Last reply Reply Quote 0
        • D
          Diamand2k22 @haus-automatisierung last edited by

          @haus-automatisierung

          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?

          haus-automatisierung 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Diamand2k22 last edited by

            @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.

            Screenshot 2024-01-09 at 22.07.05.png

            <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>
            
            1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @Diamand2k22 last edited by

              @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

              D 1 Reply Last reply Reply Quote 0
              • D
                Diamand2k22 @haus-automatisierung last edited by

                @haus-automatisierung

                ja genau, könntest du mir das noch in das Blockly oben einbauen, das wäre top!
                Danke dir vielmals!

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @Diamand2k22 last edited by haus-automatisierung

                  @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:

                  Screenshot 2024-01-09 at 22.14.48.png

                  bzw. mit Trigger wenn sich einer der Werte ändert

                  Screenshot 2024-01-09 at 22.18.23.png

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Diamand2k22 @haus-automatisierung last edited by

                    @haus-automatisierung

                    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!

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    820
                    Online

                    32.0k
                    Users

                    80.4k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    273
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo