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.
    • geschild
      geschild @Meckii last edited by

      @meckii Könntest du das auch als Blockly posten ?

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • 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