Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Daten mit Blockly trennen

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

      Liebe Community,

      leider habe ich im Forum noch keine Lösung für mein Problem gefunden. Ich bekomme via MQTT die Daten unseres Stromverbrauches, Netzbezug etc. Leider sind alle Werte in einem Datenpunkt. Der sieht dann so aus:

      [96.02297,96.02297,null,null,null,null,null,null,null,null,null,null,null,null,null,null]
      

      Die erste Zahl ist der Netzbezug, die zweite Zahl der Hausverbrauch. Danach folgen (bald) PV-Strom und PKW-Ladestrom. Ich hätte die Werte nun gerne in einzelne Datenpunkte aufgeteilt. Also ein Datenpunkt für Verbrauch, einen für Bezug… Kann mir jemand sagen, wie ich das umgesetzt bekomme? Am liebsten mit Blockly? Ich wäre euch unendlich dankbar für jeden Tipp!

      Homoran DJMarc75 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @roctions last edited by

        @roctions sagte in Daten mit Blockly trennen:

        Der sieht dann so aus:

        nur als Array, kein JSON?

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

          @homoran said in Daten mit Blockly trennen:

          nur als Array, kein JSON?

          das ist valides JSON
          https://jsonformatter.curiousconcept.com/#

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

            @roctions sagte in Daten mit Blockly trennen:

            für jeden Tipp!

            Vorschlag:

            Screenshot 2023-09-18 111643.png

            Den oberen Textbaustein durch Deinen Datenpunkt ersetzen.
            Dann natürlich nicht Debug nutzen sondern jeden Wert aus der Liste in eigene DP schreiben.

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

              @oliverio sagte in Daten mit Blockly trennen:

              das ist valides JSON

              äährlisch?
              ohne Bezeichner?

              Man lernt nie aus

              EDIT:
              Screenshot_20230918-112248_Firefox.jpg

              dann müsste auch attribut 0 von array gehen.
              array wäre die selbe Variable wie bei @djmarc75

              EDIT 2

              Tatsächlich
              Screenshot_20230918-112737_Firefox.jpg

              DJMarc75 paul53 OliverIO 4 Replies Last reply Reply Quote 1
              • R
                roctions @DJMarc75 last edited by

                @djmarc75 Danke! Das hat großartig funktioniert! 🙂

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

                  @homoran sagte in Daten mit Blockly trennen:

                  Tatsächlich

                  Tatsächlich 👍

                  Auch wieder was gelernt 🤓

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

                    @djmarc75 bei Array hätte ichves auch so gemacht wie du.
                    ich halte die Bearbeitung als JSON nur einsichtiger (zumindest wenn Bezeichner da sind)

                    OliverIO mickym 2 Replies Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Homoran last edited by OliverIO

                      @homoran

                      Die Lesart ist zwar gewöhnungsbedürftig,
                      aber hier siehst du die möglichen Notationen
                      https://www.json.org/json-en.html

                      Objekt mit {}
                      Array mit []
                      primitiv Werte ohne irgendwas drum rum wie "abc" oder 8 oder true

                      ist alles valides JSON

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

                        @homoran Ein JSON kann alles sein - selbst ein einfacher String: https://de.wikipedia.org/wiki/JavaScript_Object_Notation

                        JSON definiert sich letztlich durch eine festgelegte Schreibweise von Datentypen. Und neben den skalaren Datentypen, gibt es auch Arrays und Objekte. Die meisten bezeichnen aber immer nur ein Objekt als JSON und das ist in meinen Augen falsch.

                        So ist dieser Satz kein JSON. - "Dieser Satz ist ein JSON" - da eine Zeichenkette immer in Anführungszeichen steht.

                        Na da war wieder einer schneller als ich. 😉

                        Als Ergänzung:

                        280c8a76-f3d7-4587-93f2-dab165a1bb7d-image.png

                        Selbst Arrays sind Objekte nur sind die Zugriffseigenschaften eben durch Nummern definiert (allerdings definiert das nur Javascript so und nicht JSON) , anstelle von Objektnamen. Für Javascript ist jeder nicht skalare Typ ein Objekt, was eigentlich nicht richtig ist.
                        aus: https://www.w3schools.com/js/js_arrays.asp

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

                          @homoran sagte: ohne Bezeichner?

                          Bei einem Array (ohne Objekte als Elemente) kann man optisch nicht zwischen dem eigentlichem Array (Typ "object") und JSON (Typ "string") unterscheiden.

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

                            DANKE euch allen für die Weiterbildung!

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

                              @homoran sagte: dann müsste auch attribut 0 von array gehen.

                              Ja, liefert aber ineffizienten Javascript-Code.

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

                                @homoran sagte in Daten mit Blockly trennen:

                                dann müsste auch attribut 0 von array gehen

                                aber nur in blockly
                                in javascript geht das nicht

                                a=[1,2,3,4]
                                a[1]
                                ->2
                                a["1"]
                                ->2
                                a.1
                                -> syntax error
                                
                                allerdings geht auch
                                a={0:1,1:2,2:3,3:4}
                                a[1]
                                ->2
                                a["1"]
                                ->2
                                a.1
                                -> syntax error
                                
                                oder
                                a={x0:1,x1:2,x2:3,x3:4}
                                a.x1
                                ->2
                                a["x1"]
                                ->2
                                
                                
                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @OliverIO last edited by

                                  @oliverio sagte: aber nur in blockly

                                  Blockly verwendet die Funktion getAttr(), die extra für Blockly geschaffen wurde.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    roctions last edited by

                                    Ich bräuchte nochmal eure Hilfe. Das Trennen der letzten Daten hat super geklappt. Jetzt wollte ich es auf andere Daten aus dem selben Adapter anwenden, aber es funktioniert nicht. Hier beginnt der Datenpunkt auch mit zwei eckigen Klammern:

                                    [[1707320,0],[1707320,0],[148568,0.002494],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]]
                                    

                                    Habt ihr hier nochmal einen Tipp für mich?

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

                                      @roctions sagte: Habt ihr hier nochmal einen Tipp für mich?

                                      Attribute für ersten 6 Werte: "0.0", "0.1", "1.0", "1.1", "2.0" und "2.1"

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      934
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      6
                                      17
                                      768
                                      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