Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Addition in Blockly ist ein Takt verpätet

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Addition in Blockly ist ein Takt verpätet

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @geschild last edited by haus-automatisierung

      Ich habs gerade mal importiert. Hier der Screenshot

      Screenshot 2023-11-23 at 16.20.30.png

      Der Grund ist, dass die HTTP-Requests asynchron laufen und der restliche Code in der Zeit weiter läuft. Du müsstest die Request Blöcke also schachteln und am Ende (nach dem zweiten) dann addieren. Die Pausen dazwischen sind viel kurz. Selbst wenn sie länger wären, basiert das ja alles auf Zufall (ob der Request in der Zeit antwortet).

      Oder halt direkt den Shelly-Adapter dafür nutzen und sich die Ganze Arbeit sparen 🙂

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

        Das wäre mein Vorschlag. Nach wie vor unschön das über den HTTP-Aufruf zu machen und nicht über den Shelly-Adapter / MQTT.

        Screenshot 2023-11-23 at 16.27.16.png

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable id="5~z~#Wiey6Wm+:k-(y;)">powerDach</variable>
            <variable id="?t`soW~ls~_ZNU7NtEJ/">powerWand</variable>
            <variable id="pHhGY(Q7*~o%Dd37|tWd">result</variable>
          </variables>
          <block type="schedule" id="k8}]c#R$J#k4)~j3iE/]" x="38" y="-112">
            <field name="SCHEDULE">*/5 * * * * *</field>
            <statement name="STATEMENT">
              <block type="request" id="rk2/ba#iAcz{o.1Q/7a$">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                <field name="WITH_STATEMENT">TRUE</field>
                <field name="LOG">log</field>
                <value name="URL">
                  <shadow type="text" id="pO18(QsS98Vfw5L]vEhf">
                    <field name="TEXT">http://</field>
                  </shadow>
                  <block type="text" id="}?YTa6cQ^5}}%:]9+Jq4">
                    <field name="TEXT">http://192.168.42.82/emeter/0/em_data</field>
                  </block>
                </value>
                <statement name="STATEMENT">
                  <block type="variables_set" id="nN0NOsiK3NItgy`[i?h:">
                    <field name="VAR" id="5~z~#Wiey6Wm+:k-(y;)">powerDach</field>
                    <value name="VALUE">
                      <block type="get_attr" id="W;B#3}b+`UbFL|^$j4pB">
                        <value name="PATH">
                          <shadow type="text" id="b!YJsu*sjfmsO8-5P5-a">
                            <field name="TEXT">power</field>
                          </shadow>
                        </value>
                        <value name="OBJECT">
                          <block type="convert_json2object" id="emW/+YWf|iqNRZ8r4IZr">
                            <value name="VALUE">
                              <block type="variables_get" id="bsJ8~?bfvi5w}Tm|Y6/Q">
                                <field name="VAR" id="pHhGY(Q7*~o%Dd37|tWd">result</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="request" id="EJiI.Mt]-t@/!+x.EVO]">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                        <field name="WITH_STATEMENT">TRUE</field>
                        <field name="LOG"></field>
                        <value name="URL">
                          <shadow type="text" id="pO18(QsS98Vfw5L]vEhf">
                            <field name="TEXT">http://</field>
                          </shadow>
                          <block type="text" id="R=eVdGpEtS2l0$5lSvtU">
                            <field name="TEXT">http://192.168.42.82/emeter/1/em_data</field>
                          </block>
                        </value>
                        <statement name="STATEMENT">
                          <block type="variables_set" id="Z6sVuRB@UNS=5#w=7IX;">
                            <field name="VAR" id="?t`soW~ls~_ZNU7NtEJ/">powerWand</field>
                            <value name="VALUE">
                              <block type="get_attr" id="y/o-vXfo@{$L$kvE~sN]">
                                <value name="PATH">
                                  <shadow type="text" id="{LCKb-*Fj%3.F!?I/0z=">
                                    <field name="TEXT">power</field>
                                  </shadow>
                                </value>
                                <value name="OBJECT">
                                  <block type="convert_json2object" id="cgwUFo(vLF[~F[7t3##E">
                                    <value name="VALUE">
                                      <block type="variables_get" id="ydNn}:!UQtd6de.j5Ns;">
                                        <field name="VAR" id="pHhGY(Q7*~o%Dd37|tWd">result</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="create_ex" id="qN0qvmtbx3~Ews`Zjv~s">
                                <field name="NAME">Geislingen.Solar.Dach</field>
                                <field name="TYPE">number</field>
                                <field name="READABLE">TRUE</field>
                                <field name="WRITEABLE">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_number" id="DA;REE-cDiZGFJWFqJ}Q">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                                <statement name="STATEMENT">
                                  <block type="update" id="+/O`77Zs[D]`1PXebcv+">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">javascript.0.Geislingen.Solar.Dach</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="CrY;Lp^hcpYdojEKOQzD">
                                        <field name="VAR" id="5~z~#Wiey6Wm+:k-(y;)">powerDach</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                                <next>
                                  <block type="create_ex" id="A)W1wsT6SPZW3lv-l4P%">
                                    <field name="NAME">Geislingen.Solar.Wand</field>
                                    <field name="TYPE">number</field>
                                    <field name="READABLE">TRUE</field>
                                    <field name="WRITEABLE">FALSE</field>
                                    <value name="VALUE">
                                      <block type="math_number" id="s@:ZK()u1VJnh#+/Eo~;">
                                        <field name="NUM">0</field>
                                      </block>
                                    </value>
                                    <statement name="STATEMENT">
                                      <block type="update" id="G{ymt}c@ru:p%9IAFkd4">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">javascript.0.Geislingen.Solar.Wand</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="variables_get" id="RMn.aVm(y05[|02h-dq;">
                                            <field name="VAR" id="?t`soW~ls~_ZNU7NtEJ/">powerWand</field>
                                          </block>
                                        </value>
                                      </block>
                                    </statement>
                                    <next>
                                      <block type="create_ex" id="-YA!ln})F0;*,VaK*N#8">
                                        <field name="NAME">Geislingen.Solar.gesamt</field>
                                        <field name="TYPE">number</field>
                                        <field name="READABLE">TRUE</field>
                                        <field name="WRITEABLE">FALSE</field>
                                        <value name="VALUE">
                                          <block type="math_number" id=",i/x4Z6a5S1T#B0!W64F">
                                            <field name="NUM">0</field>
                                          </block>
                                        </value>
                                        <statement name="STATEMENT">
                                          <block type="update" id="A~Ab*1ZA[B,$CL,K-kDS">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">javascript.0.Geislingen.Solar.gesamt</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="math_arithmetic" id=":iPP{?/N96a3rD@FYLZ7" inline="false">
                                                <field name="OP">ADD</field>
                                                <value name="A">
                                                  <shadow type="math_number" id="XF0@Xf|:)@!W9EI^a|jO">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="variables_get" id=")btF}XTf/=(Krzb_#yHW">
                                                    <field name="VAR" id="5~z~#Wiey6Wm+:k-(y;)">powerDach</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <shadow type="math_number" id="lXM:`u0kd.-A3`r!OU4J">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="variables_get" id="VAarkCZ;_q,;OHg/_zn!">
                                                    <field name="VAR" id="?t`soW~ls~_ZNU7NtEJ/">powerWand</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        
        M 1 Reply Last reply Reply Quote 0
        • M
          Meckii @haus-automatisierung last edited by

          @haus-automatisierung
          Vielen Dank.
          Du magst recht haben dass das so nicht sehr schön ist, aber ich möchte ja was dabei lernen und wollte mich so in Blockly reinarbeiten...

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

            @meckii Naja das kannst Du ja auch mit den Datenpunkten des Shelly-Adapters. Das Problem ist hier ja auch das Polling. Du "verpasst" ja viele Werte und nervst die Geräte per HTTP. Und kannst die Geräte auch nicht mit einem Passwort schützen. Also insgesamt viele Nachteile.

            M 1 Reply Last reply Reply Quote 0
            • M
              Meckii @haus-automatisierung last edited by Meckii

              @haus-automatisierung
              Die Frage ist ob man bei einem Balkonkraftwerk wirklich jenden Messwert braucht 🙂
              Ich hätte den Cron später auf 5min oder so gestellt...

              Dennoch vielen Dank 🙂

              1 Reply Last reply Reply Quote 0
              • M
                Meckii last edited by

                Habe jetzt mit dem Shelly Adapter experimentiert.
                Der hat ein Problem - oder ich bin zu doof.

                Die Shellys laufen nicht hier bei mir zu Hause sondern in einem anderen Subnet welches über VPN (zwei Fritzboxen) gekoppelt ist.
                Das angeben der IP hat leider nicht funktioniert...

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

                  @meckii sagte in Addition in Blockly ist ein Takt verpätet:

                  Der hat ein Problem - oder ich bin zu doof.

                  Dann wäre die Frage, was Du alles konfiguriert hast und welche Infos Dir in der Dokumentation des Adapters fehlen. Dort probiere ich ja eigentlich jeden Fall genau zu erklären und welche Infos wofür sind.

                  Mit "der Adapter hat ein Problem" kann ich nichts anfangen. 🙂

                  Homoran 1 Reply Last reply Reply Quote 1
                  • Homoran
                    Homoran Global Moderator Administrators @haus-automatisierung last edited by

                    @haus-automatisierung ich nutze keine Shellys.
                    Aver war da nicht was, dass (je nach Konfiguration??) es nicht über verschiedene Subnetze geht?

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

                      @homoran sagte in Addition in Blockly ist ein Takt verpätet:

                      Aver war da nicht was, dass (je nach Konfiguration??) es nicht über verschiedene Subnetze geht?

                      Das ist sehr allgemein gefragt. Kommt drauf an, was man vor hat. Wenn das Routing konfiguriert ist, klappt das natürlich auch. Meistens ist mDNS ein Problem (für CoAP und multicast - sollte man eh nicht nutzen).

                      Aber wenn man MQTT nutzt, dann gibt es ja kein Auto-Discovery oder Multicast.

                      Im Thread klappt ja schon der Zugriff von ioBroker zu den Shellies per HTTP. Die Frage ist, ob es auch andersrum klappt: Also dass die Shellies eine MQTT-Verbindung (Port 1882 ist Standard) zum ioBroker im anderen Netz aufbauen dürfen.

                      1 Reply Last reply Reply Quote 1
                      • M
                        Meckii last edited by

                        MQTT kann ich leider nicht nutzen, da mein Vater die Sellyapp (cloud) beibehalten möchte.
                        Daher der Versuch über CoAP...
                        Vielleicht hab ich Morgen nochmals Zeit da ein bisschen dran rumzuprobieren...

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

                          @meckii sagte in Addition in Blockly ist ein Takt verpätet:

                          Daher der Versuch über CoAP...

                          Wenn auf dem Shelly unicast konfiguriert ist, sollte das aber klappen?

                          1 Reply Last reply Reply Quote 0
                          • M
                            Meckii last edited by Meckii

                            Ok. Shelly-Adapter läuft und bekommt die Daten per unicast.
                            Leider funktioniert mein Script welches die Addition der zwei Leistungen ausführt nicht.

                            <xml xmlns="https://developers.google.com/blockly/xml">
                              <block type="on_ext" id="9obsf4j}+ALRCYj:v`c/" x="-87" y="-363">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                <field name="CONDITION">ne</field>
                                <field name="ACK_CONDITION"></field>
                                <value name="OID0">
                                  <shadow type="field_oid" id="7e5~BJi;f-iX;[`VnrY6">
                                    <field name="oid">default</field>
                                  </shadow>
                                  <block type="logic_operation" id="{LJ$h2Gd6wix3:h}x,`f">
                                    <field name="OP">OR</field>
                                    <value name="A">
                                      <block type="get_object" id="=9teI6aWLh4}0TGbHAl,">
                                        <field name="OID">shelly.0.SHEM#12345678EAB9#1.Emeter0.Power</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="get_object" id="V6/drw_7odA%65gvXNC*">
                                        <field name="OID">shelly.0.SHEM#12345678EAB9#1.Emeter1.Power</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="STATEMENT">
                                  <block type="create" id="iEx}%$]rU!v!?!Q09:r9">
                                    <field name="NAME">Solar.gesamt</field>
                                    <value name="VALUE">
                                      <block type="math_number" id="O5_F]Wk}$nsVd?O{t5qK">
                                        <field name="NUM">0</field>
                                      </block>
                                    </value>
                                    <value name="COMMON">
                                      <block type="text" id="0Bxa?7/i#HAO?)(*BI=|">
                                        <field name="TEXT">{"type": "number", "unit": "W"}</field>
                                      </block>
                                    </value>
                                    <statement name="STATEMENT">
                                      <block type="update" id="A~Ab*1ZA[B,$CL,K-kDS">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">javascript.0.Solar.gesamt</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id=":iPP{?/N96a3rD@FYLZ7">
                                            <field name="OP">ADD</field>
                                            <value name="A">
                                              <shadow type="math_number" id="XF0@Xf|:)@!W9EI^a|jO">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id="~~[==`uxt.EW0RQ#y|.^">
                                                <field name="ATTR">val</field>
                                                <field name="OID">shelly.0.SHEM#12345678EAB9#1.Emeter0.Power</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="lXM:`u0kd.-A3`r!OU4J">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id=",PE~URIbDSC{Jh4J{hy5">
                                                <field name="ATTR">val</field>
                                                <field name="OID">shelly.0.SHEM#12345678EAB9#1.Emeter1.Power</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </statement>
                                  </block>
                                </statement>
                              </block>
                            </xml>![Screenshot 2023-11-26 112931.png](/assets/uploads/files/1700994592072-screenshot-2023-11-26-112931.png) 
                            

                            Screenshot 2023-11-26 112931.png

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

                              @meckii Das liegt nicht am Adapter, sondern an deinem falschen Script. Wenn Du mehrere Objekt-IDs überwachen willst musst Du links auf das Zahnrad klicken und diese dann untereinander angeben. Und bitte auf die Objekt ID registrieren, nicht auf ein komplettes Objekt.

                              Grunlagen anschauen. Der Oder-Block gehört da auf keinen Fall hin 🙂

                              Screenshot 2023-11-26 at 15.10.24.png

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                Meckii @haus-automatisierung last edited by

                                @haus-automatisierung
                                Jetzt Funktioniert es 🙂
                                Vielen lieben Dank!

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                1.0k
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

                                4
                                16
                                589
                                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