Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] MQTT nur bestimmte Werte auslesen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] MQTT nur bestimmte Werte auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jprisum.de last edited by

      Super 🙂 ich mach mich gleich mal ran DANKE

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

        Dann werde ich das Skript noch um den Datenpunkt für das Ergebnis erweitern.

        const idRaw = '...'; // Datenpunkt-ID MQTT: Eintragen !
        const idRangeOff = 'USV.RangeOff'; // Datenpunkt-ID für Ergebnis (bitte anpassen)
        
        // Datenpunkt erzeugen
        createState(idRangeOff, 0, {
           type: 'number',
           name: 'Batterie Range AC Aus',
           unit: '?'  // Bitte anpassen
        });
        
        on(idRaw, function(dp) {
           var obj = JSON.parse(dp.state.val);
           var range = parseFloat(obj.BatteryStatusRecords.CruisingRangeAcOff);
           setState(idRangeOff, range, true);
        });
        
        1 Reply Last reply Reply Quote 0
        • J
          jprisum.de last edited by

          Ich habe dein zweites Script eingefügt leider zeigt er mir nur 0 km an.

          2 = ist das so gemeint ?

          3 = das wäre der Wert den ich gerne hätte.
          12372_io-skript.png

          Mfg

          JP

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

            /leaf/status/raw
            

            ist sicher nicht die Datenpunkt-ID, vielleicht ist es der Name ? Die Datemumkt-ID beginnt wahrscheinlich mit mqtt.0. Du kannst

            "ID einfügen" rechts oben im JS-Editor verwenden.

            Bevor die initiale 0 mit dem Wert aus dem JSON ersetzt wird, muss sich der Inhalt des JSON erst einmal ändern. Es kann also eine Weile dauern.

            1 Reply Last reply Reply Quote 0
            • J
              jprisum.de last edited by

              12372_km-script.jpg

              so sieht es bei mir aus !

              Und geändert habe ich jetzt

              const idRaw = "mqtt.0"; // Datenpunkt-ID MQTT: Eintragen !

              const idRangeOff = "mqtt.0.leaf.status.raw"/leaf/status/raw/;

              Danke das du mir dabei hilfst, da muss ich noch viel lernen. (:-o)

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

                Javascript-Code bitte in Code tags (5. Button oben) einfügen !

                Richtig:

                const idRaw = "mqtt.0.leaf.status.raw"/*leaf/status/raw*/; // Datenpunkt-ID MQTT: Eintragen !
                const idRangeOff = 'CruisingRangeAcOff';
                // oder besser mit Ordnerstruktur
                const idRangeOff = 'Battery.CruisingRangeAcOff';
                
                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Wenn der richtige Wert gleich bei Skriptstart in den Ergebnis-Datenpunkt geschrieben werden soll, dann so

                  const idRaw = "mqtt.0.leaf.status.raw"/*leaf/status/raw*/; // Datenpunkt-ID MQTT
                  const idRangeOff = 'Battery.CruisingRangeAcOff';
                  
                  // Datenpunkt erzeugen
                  createState(idRangeOff, 0, {
                     type: 'number',
                     name: 'Batterie Range AC Aus',
                     unit: 'km'  
                  });
                  
                  function battery(json) {
                     var obj = JSON.parse(json);
                     var range = parseFloat(obj.BatteryStatusRecords.CruisingRangeAcOff);
                     setState(idRangeOff, range/1000, true);
                  }
                  
                  battery(getState(idRaw).val); // Skriptstart
                  
                  on(idRaw, function(dp) {
                     battery(dp.state.val);
                  });
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • J
                    jprisum.de last edited by

                    > Javascript-Code bitte in Code tags (5\. Button oben) einfügen !

                    leider weiß ich noch nicht was du damit meinst 😞

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

                      @jp@risum.de:

                      leider weiß ich noch nicht was du damit meinst `
                      493_code_tags.jpg

                      1 Reply Last reply Reply Quote 0
                      • J
                        jprisum.de last edited by

                        Vielen Dank für deine schnelle und Erfolgreiche Hilfe
                        12372_finale.jpg

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

                          Bitte das Thema im Betreff des ersten Beitrags als [gelöst] markieren.

                          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

                          835
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          2
                          15
                          1531
                          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