Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. String zerlegen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    String zerlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active @grizzlyco last edited by

      @grizzlyco

      nochmal:
      Welche daten willst du von diesem json (kein String) haben ?

      1 Reply Last reply Reply Quote 0
      • G
        grizzlyco last edited by

        lux
        tempc
        moi
        fer

        bahnuhr paul53 2 Replies Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @grizzlyco last edited by

          @grizzlyco

          //var werte = getState("dein DP").val;
          werte = '{"id":"C4:7C:8D:6B:43:36","mac_type":0,"name":"Flower care","rssi":-98,"brand":"Xiaomi/VegTrug","model":"MiFlora","model_id":"HHCCJCY01HHCC","lux":3503,"tempc":12.7,"moi":360,"fer":335}';
          
              var obj = JSON.parse(werte);
              setState('javascript.0.MiFlora.lux', obj.lux);
              log (obj.lux);
          

          In Zeile 1 schreibst du deinen DP.
          Zeile 2 kannst du dann löschen.
          In Zeile 5 wird der Wert lux geschrieben in den DP "java...lux"
          (diesen musst du vorher natürlich anlegen)

          Genauso verfährst du mit den anderen Punkten.
          also z.B.: obj. fer
          etc.

          G 1 Reply Last reply Reply Quote 0
          • G
            grizzlyco @bahnuhr last edited by

            @bahnuhr
            Danke erstmal. Wo trage ich das script ein?

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

              @grizzlyco

              // IDs anpassen!
              const idJson = 'mqtt.0.abc';
              const idLux = '0_userdata.0.xyz.Lux';
              // usw.
              
              on(idJson, function(dp) {
                  let obj = JSON.parse(dp.state.val);
                  setState(idLux, obj.lux, true);
                  // usw.
              });
              
              1 Reply Last reply Reply Quote 0
              • G
                grizzlyco last edited by

                Vielen Dank euch beiden!

                @bahnuhr
                Wenn ich dein Code direkt in dem Objekt eingebe bekomme ich einen Syntax fehler

                :

                {
                  "common": {
                    "name": "mqtt.C47C8D6B4336.rssi",
                    "role": "state",
                    "type": "mixed"
                  },
                  "native": {},
                  "type": "state",
                  "from": "system.adapter.javascript.0",
                  "user": "system.user.admin",
                  "ts": 1663431364325,
                  "_id": "javascript.0.mqtt.C47C8D6B4336.rssi",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                
                }
                //var werte = getState("mqtt.0.home.OpenMQTTGateway_ESP32_BLE_C.BTtoMQTT.C47C8D6AB8E7").val;
                    var obj = JSON.parse(werte);
                    setState('javascript.0.mqtt.C47C8D6B4336.rssi', obj.rssi);
                    log (obj.rssi);
                
                

                @paul53
                Was mache ich damit?
                Tut mir leid wenn ich mich doof anstelle, aber ich habe keine ahnung wo ist das eintragen soll, und was ich da anpassen muss.

                Vielleicht nochmal für einen DAU?

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

                  @grizzlyco sagte: Was mache ich damit?

                  In das Editor-Fenster des Javascript-Adapters kopieren und ergänzen.
                  Vorher die 4 Ziel-Datenpunkte vom Typ Zahl("number") erstellen.

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

                    @paul53

                    super vielen dank!
                    die ersten DP habe schon. Ab jetzt nur noch ne menge fleißarbeit.

                    Vielen Dank!

                    G 1 Reply Last reply Reply Quote 0
                    • G
                      grizzlyco @grizzlyco last edited by

                      da bin ich nochmal.

                      Leider werden nicht bei jedem Paket alle DP mitgeschickt.
                      Paket 1 Lux und temp
                      Paket 2 temp
                      Paket 3 Lux und fer.

                      In mein DP steht deswegen oft [ Objekt objekt]. Das führt zu Fehler in der Folge der Verarbeitung der DP.

                      Könnt ihr mir da auch helfen?

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

                        @grizzlyco sagte: Leider werden nicht bei jedem Paket alle DP mitgeschickt.

                        Dann frage vorher ab:

                            if(typeof obj.lux == 'number') setState(idLux, obj.lux, true);
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        522
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        3
                        13
                        470
                        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