Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Extraktion der MQTT Sensorwerte / Tasmota

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Extraktion der MQTT Sensorwerte / Tasmota

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 8 Kommentatoren 9.2k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I Offline
    I Offline
    Ingo1977
    schrieb am zuletzt editiert von
    #3

    Hmm, habe den Code angepasst, geht aber leider noch nicht. Was mache ich falsch?

    var json = "mqtt.0.tele.Sensor_Garten.SENSOR";
    var Temp = "javascript.0.Garten.BME280.Values.Temperatur";
    var Druck = "javascript.0.Garten.BME280.Values.Luftdruck";
    var Luft = "javascript.0.Garten.BME280.Values.Luftfeuchtigkeit";
    
    on(json, function(dp) {
       var obj = JSON.parse(dp.state.val);
       setState(Temp(obj.Temperature));
       setState(Druck, parseFloat(obj.Humidity));
       setState(Luft, parseFloat(obj.Pressure));
    });
    
    
    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      Die 3 Datenpunkte vom Typ "Zahl" unter javascript.0 sind vorhanden ?

      on(json, function(dp) {
         var obj = JSON.parse(dp.state.val).BME280;
         setState(Temp, obj.Temperature);
         setState(Luft, obj.Humidity);
         setState(Druck, obj.Pressure);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • I Offline
        I Offline
        Ingo1977
        schrieb am zuletzt editiert von
        #5

        Super, danke. Funktioniert jetzt.

        Ich habe allerdings einen zweiten String, den ich nicht zerlegen kann (wegen Daten mehrerer Sensoren).

        {"Time":"2018-10-22T11:30:05","ANALOG":{"A0":3},"DS18B20-1":{"Id":"02099177E423","Temperature":55.9},"DS18B20-2":{"Id":"02099177E689","Temperature":30.8},"DS18B20-3":{"Id":"020A91771717","Temperature":52.8},"DS18B20-4":{"Id":"020A9177F712","Temperature":29.4},"TempUnit":"C"}

        Kann mir jemand bitte den letzten Codeschnipsel so anpassen, das das auch funktioniert?

        Im Log finde ich immer nur folgenden Eintrag:

        Script.js.Scripts.Skript3: Temperatur: undefined

        Vielen Dank vorab.

        on(json, function(dp) {
           var obj = JSON.parse(dp.state.val).D18B20-1;
           setState(Wasser_mitte, obj.Temperature);
           log('Temperatur: ' + obj.Temperature);
        });
        
        
        1 Antwort Letzte Antwort
        0
        • L Online
          L Online
          Linedancer
          schrieb am zuletzt editiert von
          #6

          Hallo Ingo,

          ich kann dir dazu leider keinen Script bieten, aber vor diesem Problem stand ich vor einiger Zeit auch.

          Hab dann anstelle von Tasmota EasyESP genommen und kriege damit für jeden Sensor einen einzelnen Datenpunkt.

          Sieht dann so aus:
          1564_2018-10-22.png

          –

          Ciao, Gerhard

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            Ingo1977
            schrieb am zuletzt editiert von
            #7

            Ich würde gerne bei Tasmota bleiben. Bin aber leider nicht der große Programmierer und brauche daher Hilfe, wie ich die Einzelwerte der verschiedenen Sensoren extrahieren kann. Grüße …

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #8

              Der Sensor heißt "DS18B20-1".

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • I Offline
                I Offline
                Ingo1977
                schrieb am zuletzt editiert von
                #9

                Hab ich schon korrigiert. Geht leider trotzdem nicht, gleiches Ergebnis.

                Und damit könnte ich ja auch nur den ersten Sensor auslesen…

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #10

                  Der Sensorname enthält unzulässige Zeichen (-). Dann muss man anders darauf zugreifen.

                     var obj = JSON.parse(dp.state.val);
                     setState(Wasser_mitte, obj['DS18B20-1'].Temperature);
                  
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • H Offline
                    H Offline
                    herman2000
                    schrieb am zuletzt editiert von herman2000
                    #11

                    Gelöst habe ich das Probelm mit dem unzulässige Zeichen (-) in dem ich im JSON string das Minus Zeichen (-) durch ein Unterstrich (_) ersetzt habe.

                    var idJSON = 'mqtt.0.tele.wasser.SENSOR';  // Datenpunkt-ID mit JSON-String
                    var Temp1; 
                    var Temp2;
                    var Temp3;
                    var Temp4;
                    var Zeit;
                    
                    var idTemp1 = 'mqtt.0.tele.wasser.Temperature1';
                    var idTemp2 = 'mqtt.0.tele.wasser.Temperature2';
                    var idTemp3 = 'mqtt.0.tele.wasser.Temperature3';
                    var idTemp4 = 'mqtt.0.tele.wasser.Temperature4';
                    
                    function JSONtoTemp(json) {
                        json = json.replace(/DS18B20-/g, "DS18B20_" );
                        var obj = JSON.parse(json);
                    //    log('Wasser-json: ' + json);
                    
                        Zeit = obj.Time;
                        Temp1 = obj.DS18B20_1.Temperature;
                        Temp2 = obj.DS18B20_2.Temperature;
                        Temp3 = obj.DS18B20_3.Temperature;
                        Temp4 = obj.DS18B20_4.Temperature;
                    //    log('Temp1: ' + Temp1 + ' °C, Temp2: ' + Temp2 + '°C, Temp3: ' + Temp3 + ' °C, Temp4: ' + Temp4 + '°C');
                    
                        setState(idTemp1, Temp1);
                        setState(idTemp2, Temp2);
                        setState(idTemp3, Temp3);
                        setState(idTemp4, Temp4);
                    }
                    
                    JSONtoTemp(getState(idJSON).val);  // Script start
                    
                    on(idJSON, function(dp) {  // triggern bei Wertänderung
                        JSONtoTemp(dp.state.val);
                    });
                    
                    1 Antwort Letzte Antwort
                    0
                    • E Offline
                      E Offline
                      Eggs
                      schrieb am zuletzt editiert von
                      #12

                      Moin,
                      wäre es nicht einfacher den Sonoff-Adapter zu verwenden? Der dröselt das normal auf und legt für jeden Sensor die Datenpunkte an.

                      Gruß aus der Mitte
                      Dirk

                      1 Antwort Letzte Antwort
                      0
                      • I Ingo1977

                        Hallo,

                        ich brauche eure Hilfe.

                        Per MQTT bekomme ich von meinem ESP8266, auf dem die Tasmota Firmware installiert ist, folgende Sensordaten an IOBRoker geliefert:

                        Baum: mqtt.0.tele.Sensor_Garten.SENSOR

                        Wert: {"Time":"2018-10-21T12:54:27","BME280":{"Temperature":18.5,"Humidity":34.6,"Pressure":992.2},"TempUnit":"C"}

                        Wie bekomme ich die Werte nun relativ einfach extrahiert, und zwar als eigene States, die ich dann widerum weiterverarbeiten kann?

                        Danke und Grüße, Ingo

                        C Offline
                        C Offline
                        chatt
                        schrieb am zuletzt editiert von
                        #13

                        @ingo1977 said in Extraktion der MQTT Sensorwerte / Tasmota:

                        Hallo,

                        ich brauche eure Hilfe.

                        Per MQTT bekomme ich von meinem ESP8266, auf dem die Tasmota Firmware installiert ist, folgende Sensordaten an IOBRoker geliefert:

                        Baum: mqtt.0.tele.Sensor_Garten.SENSOR

                        Wert: {"Time":"2018-10-21T12:54:27","BME280":{"Temperature":18.5,"Humidity":34.6,"Pressure":992.2},"TempUnit":"C"}

                        Wie bekomme ich die Werte nun relativ einfach extrahiert, und zwar als eigene States, die ich dann widerum weiterverarbeiten kann?

                        Danke und Grüße, Ingo

                        Ich stehe exakt vor der gleichen Hürde.
                        Ich bin allerdings noch so neu, ich weiß garnicht wie ihr an diese json Datei kommt,um dann die Bindestriche mit Unterstrichen zu ersetzen.

                        Ralla66R 1 Antwort Letzte Antwort
                        0
                        • C chatt

                          @ingo1977 said in Extraktion der MQTT Sensorwerte / Tasmota:

                          Hallo,

                          ich brauche eure Hilfe.

                          Per MQTT bekomme ich von meinem ESP8266, auf dem die Tasmota Firmware installiert ist, folgende Sensordaten an IOBRoker geliefert:

                          Baum: mqtt.0.tele.Sensor_Garten.SENSOR

                          Wert: {"Time":"2018-10-21T12:54:27","BME280":{"Temperature":18.5,"Humidity":34.6,"Pressure":992.2},"TempUnit":"C"}

                          Wie bekomme ich die Werte nun relativ einfach extrahiert, und zwar als eigene States, die ich dann widerum weiterverarbeiten kann?

                          Danke und Grüße, Ingo

                          Ich stehe exakt vor der gleichen Hürde.
                          Ich bin allerdings noch so neu, ich weiß garnicht wie ihr an diese json Datei kommt,um dann die Bindestriche mit Unterstrichen zu ersetzen.

                          Ralla66R Offline
                          Ralla66R Offline
                          Ralla66
                          Most Active
                          schrieb am zuletzt editiert von Ralla66
                          #14

                          @chatt

                          nicht so schwer machen, nimm den Sonoff Adapter als Broker anstatt Mqtt.
                          Port dann 1884 oder 1885 da ja Mqtt 1883 belegt.

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          811

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe