Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Auslesen von Zeichenkette mit Blockly

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Auslesen von Zeichenkette mit Blockly

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

      Hallo zusammen,

      ich habe heute einen neuen Sensor von Shelly in mein System eingebunden.
      Einer von den neuen Bluetooth Dingern.

      Nun zu meinem Problem.
      Ich hab den den Sensor jetzt so weit, dass er mir eine Zeichenkette in einer Variable ausspuckt.
      Wie "zerlege ich nun einzelne Werte aus der VAR mit Blockly ?

      Eine Funktion wäre zum Beispiel

      Wenn DP geändert wird
      Falls Macadresse = XYZ (hier brauche ich HILFE)
      Falls state = Close (hier brauche ich HILFE)
      steuere ObjektID mit false

      Die VAR sieht so aus:

      {
        "encryption": false,
        "BTHome_version": 2,
        "pid": 132,
        "battery": 100,
        "lux": 126,
        "state": "close",
        "tilt": 0,
        "addr": "60:XXXXXXX",
        "rssi": -80
      

      @mickym vielleicht hast du nochmal kurz Zeit ? Denke diesmal brauch ich nicht so lang ums zu checken 😄

      Homoran Codierknecht mickym 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Dellishelly last edited by Homoran

        @dellishelly sagte in Auslesen von Zeichenkette mit Blockly:

        Wie "zerlege ich nun einzelne Werte aus der VAR mit Blockly ?

        soll das der Skript Ausschnitt sein?
        der ist doch nicht vollständig, oder ?

        ansonsten ist der Block "Attribut addr von VAR" dein Freund

        D 1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Dellishelly last edited by

          @dellishelly
          Das ist doch lediglich ein Objekt. Einfach die Eigenschaft lesen.

          1b96d58e-d5fa-48e0-b4de-61956f540c90-image.png

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Dellishelly last edited by mickym

            @dellishelly Das sind JSON Objekte - so wie wir sie vorher erstellt haben. Falls Du aus dem Objekt einzelne Werte brauchst, dann empfehle ich Dir einen Alias zu erstellen. Dann hast Du Werte zum Beispiel für ein VIS immer zur Verfügung:

            Hier eine Anleitung für die Lösung mit einem Alias:
            https://forum.iobroker.net/post/980575

            Andererseits kannst Du auch direkt mit Blockly auf die Werte zugreifen was Dir lieber ist.

            Wenn Du also überprüfen möchtest ob der state close ist:

            62106a34-8630-4890-9b4b-d39191087c39-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
             <block type="on_ext" id="oR-Ri-KpM`_]/V/@aioc" x="-1037" y="38">
               <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="s4=pdKjJwy34aI^n8E_i">
                   <field name="oid">0_userdata.0.Test.JSON</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="controls_if" id="Y-[G`jD5P.P]G?M|x=YQ">
                   <value name="IF0">
                     <block type="logic_compare" id="]ego6bV{IFO|V)nlk26G">
                       <field name="OP">EQ</field>
                       <value name="A">
                         <block type="get_attr" id="4X;W1|Y9NlE)5P)I4@Tz">
                           <value name="PATH">
                             <shadow type="text" id="zJftLRJ-@VtX#4wES,`o">
                               <field name="TEXT">state</field>
                             </shadow>
                           </value>
                           <value name="OBJECT">
                             <block type="on_source" id="l%cyXC:2XjC?N%HbV]v=">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="B">
                         <block type="text" id="%*N}6)V#8YLscT;*Z%FS">
                           <field name="TEXT">close</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="debug" id="xK(%ROLZ0v7nXu:KXd^)">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text" id="avVWnz8PWq/X]RReZySm">
                           <field name="TEXT">state ist close</field>
                         </shadow>
                       </value>
                     </block>
                   </statement>
                 </block>
               </statement>
             </block>
            </xml>
            

            Steuern kannst Du glaub selbst.

            Für die MAC- Adresse ist das Attribut dann halt addr.

            WICHTIG: Man sieht das man einzelne Werte in Datenpunkten eigentlich nicht braucht, da der Zugriff auf die Eigenschaften eines JSON Objektes super einfach ist. Lediglich wenn man in VIS direkt einen Wert anzeigen will, macht es meines Erachtens Sinn.

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

              @homoran

              nein das ist der Inhalt des Datenpunktes

              Codierknecht Homoran 2 Replies Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Dellishelly last edited by Codierknecht

                @dellishelly
                Entweder mit Blockly wie gezeigt, oder - wie @mickym vorschlägt - einen Alias anlegen der Dir den gewünschten Wert aus dem Objekt holt.

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

                  @dellishelly sagte in Auslesen von Zeichenkette mit Blockly:

                  @homoran

                  nein das ist der Inhalt des Datenpunktes

                  aber dich nicht vollständig!
                  und der Datenpunkt enthält die VAR?

                  kommt dann aufs selbe raus

                  1 Reply Last reply Reply Quote 0
                  • D
                    Dellishelly @mickym last edited by

                    @mickym

                    Super Attribut von Objekt war der Schlüssel der mir fehlte !!

                    Bau mir das mal eben zusammen und gucke obs klappt

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

                      @dellishelly

                      hier bereits ausgefüllt
                      @homoran sagte in Auslesen von Zeichenkette mit Blockly:

                      ansonsten ist der Block "Attribut addr von VAR" dein Freund

                      1 Reply Last reply Reply Quote 0
                      • D
                        Dellishelly last edited by

                        Hi zusammen

                        @mickym

                        Ich hab keine Ahnung mehr woran es liegt.
                        Ich denke ich hab das Blockly soweit richtig, aber das Skript checkt schlichtweg keine Aktualisierung oder Änderung der JSON.

                        Hat hier wer noch ne Idee woran das liegen könnte ? Nehme ich den falschen Block ?

                        Im Log passiert rein garnichts. weder im JS noch im Admin

                        9616e3d8-45c7-4bc1-b1f1-179f02d5b398-image.png
                        861679f4-fa7e-498d-be70-bed459a0e725-image.png

                        mickym Homoran Ralla66 paul53 4 Replies Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Dellishelly last edited by mickym

                          @dellishelly Ich habe keine Ahnung - wenn das Script läuft, sollte es in meinen Augen funktionieren. Da ich ja bekannterweise kein Blockly-Speziallist bin und selbst ja eine andere Logikmaschine verwenden, sollten die Blockly-Profis da drauf schauen. Aus meiner Sicht sollte es funktionieren.
                          @paul53 oder @Homoran

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

                            @dellishelly sagte in Auslesen von Zeichenkette mit Blockly:

                            keine Aktualisierung oder Änderung der JSON.

                            welche JSON?
                            Wo liegt die?

                            im Trigger dürfen nur IDs sein

                            1 Reply Last reply Reply Quote 0
                            • Ralla66
                              Ralla66 Most Active @Dellishelly last edited by

                              @dellishelly sagte in Auslesen von Zeichenkette mit Blockly:

                              keine Aktualisierung oder Änderung der JSON

                              wer Triggert denn das Json send im Shelly fürs aktualisieren ?
                              Probiers mit nem Cron alle x Sekunden, wenn das nicht geht hole das Json
                              per Request ( Get ) ab.

                              mickym Ralla66 2 Replies Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Ralla66 last edited by mickym

                                @ralla66 na das ist wohl nicht dein Ernst. Egal um was für einen Datenpunkt es sich handelt, sobald in diesen geschrieben wird, muss das triggern. Und da JSONS in den Datenpunkten nur Strings sind, muss das triggern, genauso als ob ich 5 mal „Hallo“ in einen Datenpunkt schreibe.

                                Vielleicht machen die States unter System noch eine Ausnahme- alles andere muss triggern, sobald es beschrieben wird. Und ein Pollen bzw. zyklisches Abfragen stellt das ganze System in Frage. Dann kann ich gleich in eine dumme Datei schreiben

                                Homoran 1 Reply Last reply Reply Quote 1
                                • Homoran
                                  Homoran Global Moderator Administrators @mickym last edited by

                                  @mickym sagte in Auslesen von Zeichenkette mit Blockly:

                                  Egal um was für einen Datenpunkt es sich handelt, sobald in diesen geschrieben wird, muss das triggern

                                  wenn es denn überhaupt ein DP ist!
                                  Danach habe ich ja gefragt

                                  1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active last edited by mickym

                                    @homoran na es wurde doch sogar ein Screenshot erstellt. Ist ein State unter 0_userdata.0

                                    Siehe: https://forum.iobroker.net/post/1051127

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

                                      @mickym sagte in Auslesen von Zeichenkette mit Blockly:

                                      sogar ein Screenshot

                                      Schwarz auf schwarz statt als Text in code-tags 😡

                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @Homoran last edited by

                                        @homoran das hilft jetzt aber nicht bei dem Problem und ich kann das lesen. Das ist nicht schwarz auf schwarz. Na egal ich kann nicht helfen, aus meiner Sicht sollte das triggern, wenn die richtige Objekt-Id ausgewählt wurde und es nicht noch ein Test-State gibt.

                                        @Dellishelly Was du noch tun kannst ist den JavaScript Code des Blocklies in Code-Tags hier einstellen

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

                                          @dellishelly sagte: Skript checkt schlichtweg keine Aktualisierung

                                          Das Skript ist aktiv und hoffentlich nicht unter der Gruppe "global" erstellt?

                                          1 Reply Last reply Reply Quote 0
                                          • Ralla66
                                            Ralla66 Most Active @Ralla66 last edited by Ralla66

                                            @mickym

                                            per Request, so hol ich mir ja das Json vom Tasmota ESP.
                                            Gerade im DPM8624 Projekt erprobt.
                                            Entweder das Json wird vom Teilnehmer zyklisch gesendet zB. per Telemetrie oder halt angefordert per get.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            852
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            21
                                            968
                                            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