Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ausgabe Werten bei stündlichem Abfragen unklar

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ausgabe Werten bei stündlichem Abfragen unklar

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Peter c last edited by

      Habe ein Blockly geschrieben, dass in Abhängigkeit von einem Trigger (der sich jede Stunde ändert) eine Steckdose schalten soll und die zwischen Ein/Auschalten verbrauchte Leistung messen sollte.
      Nur die verbrauchte Leistung sollte bei der Änderung des Triggers in einen DP geschrieben werden.
      Es wird aber falls die Bedingung unter "falls" nicht mehr stimmt trotzdem ein DP "Start" geschrieben.
      Rote Linie sollte Power (Verbrauch sein)
      Strichlierte ist der steigende Verbrauch
      Blau ist Verbrauch Anfang????
      Pink ist der Trigger.

      Bildschirmfoto 2023-12-15 um 14.07.17.png

      Nun kommt aber nicht das raus was ich wollte. Es wird bei jedem Trigger die "Sonst Bedingung" ausgelöst und ich verstehe nicht warum, da sich "Variable Laden" ja gleich bleibt.
      Was läuft da falsch?

      Bildschirmfoto 2023-12-15 um 13.40.35.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="6#Wj|F%:%yH*qMf~R:,M">Laden</variable>
        </variables>
        <block type="on" id="yx*Z%?C-kV9kZ|PalqBS" x="-562" y="-287">
          <field name="OID">alias.0.Variable.Energiefluss.Tibber_Preis_Aktuel</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="timeouts_wait" id="FWGa/(Zxl++,[4uUXlrK">
              <field name="DELAY">2</field>
              <field name="UNIT">min</field>
              <next>
                <block type="variables_set" id="JB)i@~Nmnw42li%M;KJw">
                  <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field>
                  <value name="VALUE">
                    <block type="logic_compare" id=";6Gjp/TIMQtE?WuqFHtT">
                      <field name="OP">LT</field>
                      <value name="A">
                        <block type="on_source" id="sNqbL+fq^6^E^DQ:nA2N">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_arithmetic" id="$S.gQAuha!OK=p)Zo7tI">
                          <field name="OP">MULTIPLY</field>
                          <value name="A">
                            <shadow type="math_number" id="|g@P4)@R[{X7C:Ahjvck">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="get_value" id="Jed@.A?MMB_I-o(bqdW1">
                              <field name="ATTR">val</field>
                              <field name="OID">alias.0.Variable.Energiefluss.Tibber_Average_Preis_Today</field>
                            </block>
                          </value>
                          <value name="B">
                            <shadow type="math_number" id=");4{jN%Be5]rtIn#-TkM">
                              <field name="NUM">0.97</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="controls_if" id="bwD0)KqNOy*O6jB#ovF4">
                      <mutation else="1"></mutation>
                      <value name="IF0">
                        <block type="logic_operation" id="wkD0SDG99;{gu#rPuWzT" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="logic_compare" id="r[E.5+I=~N]_Wm0P(elC">
                              <field name="OP">NEQ</field>
                              <value name="A">
                                <block type="variables_get" id="jV#0`i=ZJiKNDf?y)xO2">
                                  <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="get_value" id="ok6P*}*`6@zDj^eYmkIU">
                                  <field name="ATTR">val</field>
                                  <field name="OID">alias.0.Variable.Soyo_inteligent_schalten.Soyo_Dect_schalten</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="AWo~XeceneG#rz7)QT9o">
                              <field name="OP">LTE</field>
                              <value name="A">
                                <block type="get_value" id="q;@RrG[L]cK;.8XfUO]x">
                                  <field name="ATTR">val</field>
                                  <field name="OID">alias.0.Variable.Energiefluss.Leistung_PV-Modul</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="|KRrW{.s/QX.BGYw1{Tn">
                                  <field name="NUM">100</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control" id="L[2p?@rnU6GFCYhWpx/9">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">alias.0.Variable.Soyo_inteligent_schalten.Soyo_Dect_schalten</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="variables_get" id="^KqUlbc!uM9Gu!`}5ji|">
                              <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="+t3%ZOFyrY932R2O::y*">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Start</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="get_value" id="7hisw^CpvBCU-,c=5)P6">
                                  <field name="ATTR">val</field>
                                  <field name="OID">fritzdect.0.DECT_116570243229.energy</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </statement>
                      <statement name="ELSE">
                        <block type="control" id="ax-RNF;~i7^qK:mvD:D/">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Ende</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="get_value" id="d#=qD%=qRuwE|/.@(F,b">
                              <field name="ATTR">val</field>
                              <field name="OID">fritzdect.0.DECT_116570243229.energy</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="9rGIM8)YArQt#0kH}LI*">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Power</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_arithmetic" id="i)%%x#|W#X[pN[b_r]K%">
                                  <field name="OP">MINUS</field>
                                  <value name="A">
                                    <shadow type="math_number" id="}y@snz@3.R!2mHn]QJs[">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="_!#!F,yGWa!0)gmjzX$-">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Ende</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="9`TlZ=Q9F`w/TKD1-.*6">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="x({#-a_ehw1jA,k_H11L">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Start</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <next>
                                <block type="debug" id="vVSWhM_msZcd7Qe6=}d.">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                    <shadow type="text" id="E}xukGr8GQ3AvIHU/{B%">
                                      <field name="TEXT">test</field>
                                    </shadow>
                                    <block type="get_value" id="(~(`Tt)z!6r.icGm;Hee">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Power</field>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      Homoran amg_666 Dr. Bakterius paul53 4 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Peter c last edited by

        @peter-c sagte in Ausgabe Werten bei stündlichem Abfragen unklar:

        da sich "Variable Laden" ja gleich bleibt.

        und der pv ertrag?

        P 1 Reply Last reply Reply Quote 0
        • amg_666
          amg_666 @Peter c last edited by

          @peter-c sagte in Ausgabe Werten bei stündlichem Abfragen unklar:

          Abhängigkeit von einem Trigger (der sich jede Stunde ändert)

          ich kenne tibber nicht, aber ändert sich der Preis zwingend? Falls nicht kanns auch mal länger als 1 Stunde dauern bis das Skript auslöst

          Wenn "Leistung PV-Modul"=100 ist läufst du immer in den sonst-Zweig

          Aber stimmt deine Logik überhaupt? Du löst aus, wenn der aktuelle Preis kleiner als Durchschnittspreis*0,97 ist, hast du anhand der Werte mal geprüft, ob das überhaupt eintritt?

          P 1 Reply Last reply Reply Quote 0
          • P
            Peter c @Homoran last edited by

            @homoran Der ist in der Nacht immer erfüllt. Dient nur dazu zu verhindern, dass sich das Skript bei alternativer Leistung einschaltet.

            1 Reply Last reply Reply Quote 0
            • P
              Peter c @amg_666 last edited by Peter c

              @amg_666 Ja das habe ich. Grüne Linie ist der Ausgang des Skriptes. Der Schalter ist geschaltet. Der Preis ändert sich wirklich jede Stunde. Pinke Linie.
              Die 0,97 soll sicherstellen, dass der Preis wirklich niedriger ist als der Durchschnittspreis.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Peter c last edited by Homoran

                @peter-c Dann häng mal paar debug-Bausteine rein und lass dir an den neuralgischen Punkten die Entscheidungswerte ausgeben

                Möglicherweise rennst du aber in die asynchron-Falle

                P paul53 2 Replies Last reply Reply Quote 0
                • Dr. Bakterius
                  Dr. Bakterius Most Active @Peter c last edited by Dr. Bakterius

                  @peter-c Ich nehme mal an, dass sich bei einer Preisänderung oder auch im Fortschritt des Tages auch der Durchschnittspreis ändert. Und dann entspricht der Durchschnittspreis nicht mehr der Variable 'Laden'.

                  Edit: Sorry, falsch verstanden

                  Um das zu überprüfen kannst du die Werte ja mal über den Debug-Baustein ausgeben.

                  Edit: Aber das gilt noch... 😊

                  1 Reply Last reply Reply Quote 0
                  • P
                    Peter c @Homoran last edited by

                    @homoran

                    Das mit dem asynchron gibt mir zu denken.
                    Es wurden laut History 3 Werte erfasst für die Startbedingung. (zwei zu viel!) Zwei waren noch dazu gleich.

                    Bildschirmfoto 2023-12-15 um 14.43.07.png

                    Aber es wurden 6 mal Ende Werte abgespeichert.

                    Bildschirmfoto 2023-12-15 um 14.44.21.png

                    Habe mal ein paar Bausteine eingefügt.
                    Sind das genug?

                    Bildschirmfoto 2023-12-15 um 14.40.11.png

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Homoran last edited by

                      @homoran sagte: Möglicherweise rennst du aber in die asynchron-Falle

                      Sogar sehr wahrscheinlich.
                      @Peter-c: Variable verwenden für "BatLaden_Ende"!

                      P 1 Reply Last reply Reply Quote 0
                      • P
                        Peter c @paul53 last edited by

                        @paul53 Hast Du das so gemeint?

                        Bildschirmfoto 2023-12-15 um 15.03.21.png

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Peter c last edited by paul53

                          @peter-c sagte: Hast Du das so gemeint?

                          Ja. Der Debug-Block unten kann noch einen Wert zeigen, der vor einer Stunde gültig war. Übergebe dort auch die Berechnung.

                          P 1 Reply Last reply Reply Quote 0
                          • P
                            Peter c @paul53 last edited by

                            @paul53 Warum ist das nicht der letzte Wert?

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Peter c last edited by

                              @peter-c sagte: Warum ist das nicht der letzte Wert?

                              Durch die asynchrone Ausführung von "steuere": Wenn der Datenpunktwert eingelesen wird, ist "steuere" noch nicht fertig.

                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Peter c @paul53 last edited by

                                @paul53

                                Ok also so:

                                Bildschirmfoto 2023-12-15 um 15.11.43.png

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Peter c last edited by

                                  @peter-c sagte: also so:

                                  Ja. An den obersten Debug-Block übergebe "Energy consumption" anstelle von "BatLaden_Start".

                                  P 2 Replies Last reply Reply Quote 0
                                  • P
                                    Peter c @paul53 last edited by

                                    @paul53

                                    Verstanden. Dann kann ich den DP BatLaden Ende löschen. Den gibts ja nicht als Ausgang.

                                    Bekomme ich nun nur noch 2 Werte: BatStart und Power.

                                    Bildschirmfoto 2023-12-15 um 15.17.03.png

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      Peter c @paul53 last edited by

                                      @paul53

                                      Hätte den Wert am Ende schon gerne als Wert. Hoffe das ist der letzte gültige Wert.

                                      Bildschirmfoto 2023-12-15 um 15.55.22.png

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Peter c last edited by

                                        @peter-c sagte: Hoffe das ist der letzte gültige Wert.

                                        Passt.

                                        P 2 Replies Last reply Reply Quote 0
                                        • P
                                          Peter c @paul53 last edited by

                                          @paul53 Danke

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            Peter c @paul53 last edited by

                                            @paul53 Habe das Skript jetzt einige Zeit am Laufen gehabt. Leider kommt nicht ganz das raus was ich wollte.
                                            Ziel war es ja jede Stunde (beim ändern des Triggers) einen Verbrauchswert zu bekommen.
                                            Anstelle dessen bekomme ich wilde Zacken.

                                            Bildschirmfoto 2023-12-18 um 13.14.28.png

                                            Rot ist Badladen_Power.
                                            Die Subtraktion nimmt falsche Werte.
                                            Auszug aus Log. Skript heißt Netzladen.

                                            2023-12-18 00:02:22.271 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 909932
                                            2023-12-18 00:02:22.321 - info: fritzdect.0 (10589) DECT ID: 116570243229 identified for command (state) : true
                                            2023-12-18 00:02:46.084 - info: web.0 (10634) ==> Connected system.user.admin from ::ffff:192.168.178.83
                                            2023-12-18 00:07:47.051 - info: web.0 (10634) <== Disconnect system.user.admin from ::ffff:192.168.178.83 vis.0
                                            2023-12-18 00:15:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 00:30:00.015 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 00:43:41.104 - error: bmw.0 (10574) update failed
                                            2023-12-18 00:43:41.107 - error: bmw.0 (10574) AxiosError: Request failed with status code 403
                                            2023-12-18 00:43:41.107 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:16:19."}
                                            2023-12-18 00:45:00.013 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 00:58:41.104 - error: bmw.0 (10574) update failed
                                            2023-12-18 00:58:41.105 - error: bmw.0 (10574) AxiosError: Request failed with status code 403
                                            2023-12-18 00:58:41.105 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:01:19."}
                                            2023-12-18 00:59:57.618 - warn: modbus.0 (10433) Error: undefined
                                            2023-12-18 00:59:57.619 - error: modbus.0 (10433) Request timed out.
                                            2023-12-18 00:59:57.620 - error: modbus.0 (10433) Client in error state.
                                            2023-12-18 00:59:57.620 - warn: modbus.0 (10433) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                                            2023-12-18 00:59:58.620 - info: modbus.0 (10433) Disconnected from slave 192.168.178.28
                                            2023-12-18 01:00:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 01:00:20.841 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean"
                                            2023-12-18 01:00:20.849 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean"
                                            2023-12-18 01:00:20.853 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean"
                                            2023-12-18 01:00:20.904 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean"
                                            2023-12-18 01:00:34.785 - info: shelly.0 (10448) [MQTT] Client Close: 192.168.178.100 (shellyplusplugs / shellyplusplugs-80646fe770c4 / shellyplusplugs#80646fe770c4#1) (false)
                                            2023-12-18 01:00:58.626 - info: modbus.0 (10433) Connected to slave 192.168.178.28
                                            2023-12-18 01:00:58.803 - info: shelly.0 (10448) [MQTT] Device with client id "shellyplusplugs-80646fe770c4" connected!
                                            2023-12-18 01:02:20.836 - info: javascript.0 (10388) script.js.Batterie_Netzladen: true
                                            2023-12-18 01:02:20.837 - info: javascript.0 (10388) script.js.Batterie_Netzladen: -689
                                            2023-12-18 01:15:00.030 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 01:30:00.034 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4
                                            2023-12-18 01:37:34.045 - info: host.iobroker Delete log file iobroker.2023-12-10.log.gz
                                            2023-12-18 01:45:00.013 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 2 | Reboots korrigiert: 0 | Unveränderte Werte: 3
                                            2023-12-18 01:48:41.219 - error: bmw.0 (10574) update failed
                                            2023-12-18 01:48:41.220 - error: bmw.0 (10574) AxiosError: Request failed with status code 403
                                            2023-12-18 01:48:41.220 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:11:19."}
                                            2023-12-18 02:00:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 2 | Reboots korrigiert: 0 | Unveränderte Werte: 3
                                            2023-12-18 02:00:20.713 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean"
                                            2023-12-18 02:00:20.716 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean"
                                            2023-12-18 02:00:20.724 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean"
                                            2023-12-18 02:00:20.735 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean"
                                            2023-12-18 02:02:20.707 - info: javascript.0 (10388) script.js.Batterie_Netzladen: true
                                            2023-12-18 02:02:20.707 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 1128
                                            2023-12-18 02:05:05.075 - info: cloud.0 (10674) Connection changed: disconnect
                                            2023-12-18 02:05:05.078 - info: cloud.0 (10674) Connection lost
                                            2023-12-18 02:05:05.079 - info: cloud.0 (10674) Restart adapter by disconnect
                                            2023-12-18 02:05:15.082 - warn: cloud.0 (10674) Terminated (-100): Without reason
                                            
                                            paul53 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            717
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            28
                                            777
                                            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