Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly soll Modbus-Datenpunkt ändern

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly soll Modbus-Datenpunkt ändern

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

      Guten Abend,
      Ich möchte mit Blockly den Modbus-Datenpunkt meiner Wallbox "modbus.0.holdingRegisters.40262_MaximalCurrentCommand" von 0 auf 60 ändern.
      Habe bis jetzt nur mit Blockly gespielt und mir Videos dazu angesehen.

      Ich möchte:
      Wenn "0_userdata.0.JKBMS_120.sensor.capacity_remaining" größer gleich 90
      oder "0_userdata.0.JKBMS_120.sensor.state_of_charge" größer gleich 50
      dann "modbus.0.holdingRegisters.40262_MaximalCurrentCommand" = 60 setzen

      Angefangen habe ich so:
      blockly.png

      egal welches Blockly-Modul ich in "mache" einsetze, es wird nicht der modbus-Datenpunkt
      eingesetzt, immer nur das "100=10A".

      blockly_datenpunkt_wert_setzen.png

      Wie kann ich das realisieren oder geht das so garnicht.
      Bin für jede Hilfe dankbar.

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

        @daddy 2 Dinge.

        1. Du willst in eine ObjektID einen WERT schreiben?

        -> Diesen Block nutzen
        cacf7fcc-501a-484b-a331-d38b5d93956c-image.png
        2. Bei Adaptern sollte man nicht aktualisieren nutzen, sondern steuere.

        D 1 Reply Last reply Reply Quote 0
        • D
          daddy @MCU last edited by

          @mcu Danke für deine Antwort.
          Ja ich möchte in eine ObjektID einen Wert ändern.
          blockly_2.png
          Mit steuere wird auch nur 100=10A eingetragen und da komme ich nicht weiter.
          Ich habe die Auswahl der ObjektID, also "modbus.0.holdingRegisters.40262_MaximalCurrentCommand" erwartet.

          Manuell kann ich von 60 bis 160 jeden Wert eingeben und die Wallbox lädt dann mit min. 6A bis max. 16A. Ich dachte mir, dass kann man doch bestimmt auch automatisieren.
          Im ersten Post habe ich mich vertippt. Bei der oder Bedingung muss auch 90 stehen.

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @daddy last edited by MCU

            @daddy
            52025f4f-9c78-465f-acb9-43739c66369c-image.png
            muss da rein
            b74700af-2f19-4ff8-9b7f-672eb978d007-image.png

            Den Rest löschen
            2be95544-f9e7-4ae1-85bd-d32f93996041-image.png

            Das geht auch nicht
            4d2ed60a-aa2d-4c49-b194-8bba370ac9e4-image.png

            Da muss nur eine Objekt ID hinein.
            Da du 2 Änderungen untersuchen möchtest musst du eine ObjektID zusätzlich setzen.

            3e392986-6f42-4b9f-b4de-a9477b4a5046-image.png

            Hier mal als Export

            <xml xmlns="https://developers.google.com/blockly/xml">
             <block type="on_ext" id="$C}wX/YBzMF,zjw)mXM-" x="113" y="-37">
               <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
               <field name="CONDITION">ne</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="iF]{r%?B7^YIx!M*@hDk">
                   <field name="oid">default</field>
                 </shadow>
               </value>
               <value name="OID1">
                 <shadow type="field_oid" id="{YNM+hK8}|Jfi{{|.a@a">
                   <field name="oid">default</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="controls_if" id="M;C~/0V#Sa]lBa.778EQ">
                   <value name="IF0">
                     <block type="logic_operation" id="_:zweHrS]?q!x%AT^yWZ">
                       <field name="OP">OR</field>
                       <value name="A">
                         <block type="logic_compare" id="8wa(2N/Qn-{cyPjJPmyF">
                           <field name="OP">GT</field>
                           <value name="A">
                             <block type="get_value" id="m-k]Hv7d[V8=zUTMOFoM">
                               <field name="ATTR">val</field>
                               <field name="OID">ID auswählen</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="r0o+dxhVLq.1o|Tn,`gQ">
                               <field name="NUM">90</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="B">
                         <block type="logic_compare" id="(E@^5I6aVBMkmNAXd.`D">
                           <field name="OP">GT</field>
                           <value name="A">
                             <block type="get_value" id="6]%mf$~:$}K~W?_v88FR">
                               <field name="ATTR">val</field>
                               <field name="OID">ID auswählen</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id="?kx`vxwD/|o))v+rLyU8">
                               <field name="NUM">90</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="control" id="b]!HG/gkak94uL.Ru[/8">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">Object ID</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="math_number" id="6W#1}a7U`XFoQQ@l%,Nl">
                           <field name="NUM">60</field>
                         </block>
                       </value>
                     </block>
                   </statement>
                 </block>
               </statement>
             </block>
             <block type="comment" id="8Vi`XMVsyFA$cxtL!gJ$" x="438" y="-37">
               <field name="COMMENT">capacity_remaining</field>
               <next>
                 <block type="comment" id="-I_DbQ}40cH`RxA+6Zg|">
                   <field name="COMMENT">state_of_charge</field>
                 </block>
               </next>
             </block>
            </xml>
            

            c312fade-9252-4983-aec4-285e8a5c2ca1-image.png

            Kann man hiermit importieren
            563e3436-aaa5-4737-8776-00e9686dde1b-image.png

            -> Export vom Blockly anklicken
            -> Inhalt markieren + STRG+C
            -> neues Blockly in Skripte erstellen
            -> auf Import Button klicken
            -> STRG+V und Import klicken
            -> Speichern

            D 1 Reply Last reply Reply Quote 0
            • D
              daddy @MCU last edited by

              @mcu Danke für die Hilfe.
              Habe exportiert, importiert und bearbeitet.
              Habe die Werte weiter runter gesetzt, damit die Bedingungen zutreffen.
              Funktioniert aber nicht und so sieht das jetzt bei mir aus.
              blockly_MCU.png
              Ich verstehe nicht, wie Blockly mit "steuere 100 = 10A" wissen soll, welchen Wert in welchen Datenpunkt geändert werden soll.

              M 1 Reply Last reply Reply Quote 0
              • M
                MCU @daddy last edited by MCU

                @daddy 100=10A ist der Name vom DP.
                84a27407-44db-4885-ae22-f6f1f74a6ff6-image.png

                Was funktioniert nicht?
                Setz da mal ein debug rein, um zu sehen, ob er überhaupt was macht.
                32ac3e26-2f16-4b93-a209-dab61d0c90c5-image.png
                Ändern sich die Werte (capacity_remaining und state_of_charge) denn jetzt überhaupt?

                Sind die DPs überhaupt vom Type "number"?
                0199f44a-0396-4dce-b107-8c0bc74d4d4c-image.png

                5dc6535a-08cf-4666-884a-17166600209c-image.png

                D 1 Reply Last reply Reply Quote 0
                • D
                  daddy @MCU last edited by

                  @mcu Habe debug an und komplette Protokollierung. Es wird kein Fehler angezeigt.
                  Es erscheint auch nirgends "Habe eine Änderung" oder "Wert wird geändert".
                  Die Werte von capacity_remaining und state_of_charge ändern sich nicht laufend, da ich keine großen Verbraucher habe. Die DPs sind number.
                  typ1.png typ2.png
                  Ich werde mal den Wasserkocher anstellen, vielleicht ändert sich ein Wert.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MCU @daddy last edited by MCU

                    @daddy Ohne Änderung von einem dieser Werte, wird auch nichts passieren.
                    Sind das nur ganzzahlige Werte, dann kann es schon etwas dauern?

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      daddy @MCU last edited by

                      @mcu Der Wasserkocher hat geholfen. Die beiden Debugtexte wurden ausgegeben und der Modbus-Datenpunkt wurde auf 6A geändert.
                      Da werde ich mir wohl andere Bedingungen ausdenken müssen.
                      Nochmals danke für deine Hilfe.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @daddy last edited by

                        @daddy Ok. Gerne.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        379
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        2
                        10
                        414
                        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