Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Tasmota MQTT daten auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Tasmota MQTT daten auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Digi-Bit last edited by Homoran

      Hallo,

      Ich Quelle mich jetzt seit ein paar Tagen mit Tasmota und MQTT ab

      bei mqtt.0.MAX7219.Buero_BL.tele.tasmota_CD3A44.SENSOR kommen diese Daten an.

      16:11:22.063 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/SENSOR = {"Time":"2025-03-15T16:11:22","ANALOG":{"A1":763},"BME280":{"Temperature":24.2,"Humidity":39.9,"DewPoint":9.7,"Pressure":1015.4},"MHZ19B":{"Model":"B","CarbonDioxide":730,"Temperature":24.0},"PressureUnit":"hPa","TempUnit":"C"}
      

      MOD-EDIT: Code in code-tags gesetzt!

      Ich schneide mir die Daten umständlich mit einem Blockly aus aber kann man das nicht machen das der MQTT Adapter irgend wie die Daten in einem Objekt baum schreiben tut so wie

      MQTT.jpg

      Ich habe das schon mit Mosquitto versucht in der Hoffnung das da dann für jedem Sensor ein Objekt angelegt wird aber da kommt dann auch nur der SENSOR bei raus

      Kann mir da jemand freundlicher weiße weiter helfen ?

      mfg

      Digi-Bit

      Codierknecht T bahnuhr 3 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Digi-Bit last edited by Codierknecht

        @digi-bit
        Rechte Maustaste auf den JSON-Datenpunkt => Alias erstellen.
        Diesen sinnvoll benennen und die Lesekonvertierung aktivieren: JSON.parse(val).ANALOG.A1 oder z.B. auch JSON.parse(val).BME280.Temperature

        Beispiel:

        e77e3ad8-abad-411c-a7d3-1238d138fea4-1741766284663-9f6ed465-82d1-4d70-8e99-ee367d399f0d-image.png

        D 1 Reply Last reply Reply Quote 0
        • T
          ticaki Developer @Digi-Bit last edited by ticaki

          @digi-bit

          sonoff adapter verwenden? btw. wieso wird der nicht umbenannt in Tasmota... Ja ich weiß wieso - trotzdem 🙂

          D 1 Reply Last reply Reply Quote 2
          • bahnuhr
            bahnuhr Forum Testing Most Active @Digi-Bit last edited by bahnuhr

            @digi-bit
            benutze ein kleines Script:

                on({id: "mqtt.2.Wemos_BadEG.SENSOR"}, function(obj) {  
                    var stext = obj.state.val; obj = JSON.parse(obj.state.val); 
                    if (stext.indexOf("BME280") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.BME280_Temperatur", obj.BME280.Temperature); };
                    if (stext.indexOf("BME280") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.BME280_Taupunkt", obj.BME280.DewPoint); };
                    if (stext.indexOf("BME280") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.BME280_Luftdruck", obj.BME280.SeaPressure); };
                    if (stext.indexOf("BME280") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.BME280_Luftfeuchtigkeit", obj.BME280.Humidity); };
                    if (stext.indexOf("BH1750") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.BH1750_Helligkeit", obj.BH1750.Illuminance); };
                    if (stext.indexOf("S8") != -1) { setState("javascript.0.Geräte.Wemos.Wemos-BadEG.CO2", obj.S8.CarbonDioxide); };
                });
            

            noch ein tipp:
            setze Altitude bei dem Wemos; dann bekommst du den Luftdruck über Meereshöhe (= seapressure).
            Und mit dem MHZ19B hab ich schlechte Erfahrungen gemacht. Benutze lieber einen S8.

            1 Reply Last reply Reply Quote 0
            • D
              Digi-Bit @Codierknecht last edited by

              @codierknecht sagte in Tasmota MQTT daten auslesen:

              @digi-bit
              Rechte Maustaste auf den JSON-Datenpunkt => Alias erstellen.
              Diesen sinnvoll benennen und die Lesekonvertierung aktivieren: JSON.parse(val).ANALOG.A1 oder z.B. auch JSON.parse(val).BME280.Temperature

              Beispiel:

              e77e3ad8-abad-411c-a7d3-1238d138fea4-1741766284663-9f6ed465-82d1-4d70-8e99-ee367d399f0d-image.png

              @codierknecht sagte in Tasmota MQTT daten auslesen:

              JSON.parse(val).BME280.Temperature

              ohman...........

              so einfach........... und ich schreibe für den kram immer Blockly's 😞

              Ich bedanke mich und schönes weekend !

              mfg

              Digi-Bit

              D 1 Reply Last reply Reply Quote 0
              • D
                Digi-Bit @ticaki last edited by

                @ticaki sagte in Tasmota MQTT daten auslesen:

                @digi-bit

                sonoff adapter verwenden? btw. wieso wird der nicht umbenannt in Tasmota... Ja ich weiß wieso - trotzdem 🙂

                ne, ist schon der MQTT 😉

                mfg

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @Digi-Bit last edited by

                  @digi-bit
                  Der sonoff parse den Kram schon von sich aus, das meinte ich damit.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Digi-Bit @ticaki last edited by

                    @ticaki sagte in Tasmota MQTT daten auslesen:

                    @digi-bit
                    Der sonoff parse den Kram schon von sich aus, das meinte ich damit.

                    Ja, die Sensoren schon aber ich habe noch ein MAX7219 dran und das kann ich damit wohl nicht Steuern weil die Datenpunkte nicht da sind wie " DisplayText"

                    sonst wäre es eine nette Sache

                    mfg

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      Digi-Bit @Digi-Bit last edited by

                      Ups.... hab die angelegt, werde da mal mit testen.....

                      mfg

                      1Topf 1 Reply Last reply Reply Quote 0
                      • 1Topf
                        1Topf @Digi-Bit last edited by

                        @digi-bit

                        Den Datenpunkt "DisplayText" mußt Du im Sonoffadapter nicht händisch anlegen. Sobald Du unter Tasmota in der Konsole mit displaytext einen Text anzeigen läßt, wird der DP automatisch angelegt.

                        tasmota laufschrift.jpg

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          Digi-Bit @1Topf last edited by

                          @1topf sagte in Tasmota MQTT daten auslesen:

                          @digi-bit

                          Den Datenpunkt "DisplayText" mußt Du im Sonoffadapter nicht händisch anlegen. Sobald Du unter Tasmota in der Konsole mit displaytext einen Text anzeigen läßt, wird der DP automatisch angelegt.

                          tasmota laufschrift.jpg

                          Ahrg, jetzt weiss ich wieder wieso ich das mit MQTT mache

                          Flora.jpg

                          Bei Sonoff fehlen die werte :

                          Flora_MQTT.jpg

                          Soweit eine schöne Idee reicht mir aber leider nicht aus , oder kann man vielleicht den Sonoff Adapter auf diese Werte erweitern ?

                          Wäre natürlich klasse dann.

                          mfg

                          Digi-Bit

                          1 Reply Last reply Reply Quote 0
                          • D
                            Digi-Bit @Digi-Bit last edited by

                            @digi-bit sagte in Tasmota MQTT daten auslesen:

                            @codierknecht sagte in Tasmota MQTT daten auslesen:

                            @digi-bit
                            Rechte Maustaste auf den JSON-Datenpunkt => Alias erstellen.
                            Diesen sinnvoll benennen und die Lesekonvertierung aktivieren: JSON.parse(val).ANALOG.A1 oder z.B. auch JSON.parse(val).BME280.Temperature

                            Beispiel:

                            e77e3ad8-abad-411c-a7d3-1238d138fea4-1741766284663-9f6ed465-82d1-4d70-8e99-ee367d399f0d-image.png

                            @codierknecht sagte in Tasmota MQTT daten auslesen:

                            JSON.parse(val).BME280.Temperature

                            ohman...........

                            so einfach........... und ich schreibe für den kram immer Blockly's 😞

                            Ich bedanke mich und schönes weekend !

                            mfg

                            Digi-Bit

                            ag, geht doch nicht.

                            Ich hätte vielleicht dazu schreiben sollen das ich mir das Tasmota selber zusammen gestellt habe damit ich Sensoren BLE und den MAX7219 bei habe.

                            10:09:19.941 M32: Kick off readOneSensor
                            10:09:19.943 M32: Kick off tele sending
                            10:09:20.947 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/SENSOR = {"Time":"2025-03-16T10:09:20","Flora6d39de":{"mac":"c47c8d6d39de","Temperature":7.7,"Illuminance":25414,"Moisture":27,"Fertility":209,"RSSI":-90},"Flora6d3ae7":{"mac":"c47c8d6d3ae7","Temperature":24.0,"Illuminance":4041,"Moisture":66,"Fertility":734,"RSSI":-89},"TempUnit":"C"}
                            10:09:21.946 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/SENSOR = {"Time":"2025-03-16T10:09:21","ATC90823f":{"mac":"a4c13890823f","Temperature":21.2,"Humidity":55.0,"DewPoint":11.8,"Battery":66,"RSSI":-87},"TempUnit":"C"}
                            10:09:28.950 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/STATE = {"Time":"2025-03-16T10:09:28","Uptime":"0T00:09:39","UptimeSec":579,"Heap":53,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":2,"Berry":{"HeapUsed":4,"Objects":45},"POWER1":"ON","Dimmer":6,"Color":"000F00","HSBColor":"120,100,6","Channel":[0,6,0],"Scheme":0,"Width":1,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"Hell-Smart-Home","BSSId":"FE:92:BF:21:3A:4B","Channel":1,"Mode":"HT40","RSSI":56,"Signal":-72,"LinkCount":1,"Downtime":"0T00:00:04"}}
                            10:09:29.034 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/SENSOR = {"Time":"2025-03-16T10:09:28","ANALOG":{"A1":686},"BME280":{"Temperature":27.3,"Humidity":33.5,"DewPoint":9.9,"Pressure":1016.6},"MHZ19B":{"Model":"B","CarbonDioxide":616,"Temperature":26.0},"PressureUnit":"hPa","TempUnit":"C"}
                            10:09:29.068 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/BLE = {"Time":"2025-03-16T10:09:29","BLEDevices":{"total":8,"C47C8D6D39DE":{"i":0,"r":-89},"C47C8D6D3AE7":{"i":1,"r":-89},"C8120B61A10D":{"i":2,"r":-87},"BC7E8BDD6C21":{"i":3,"r":-100},"D49DC0A18A83":{"i":4,"r":-95},"A4C13890823F":{"i":5,"r":-79},"64E7D83FB797":{"i":6,"r":-99},"184644A80B0C":{"i":7,"n":"P239 SkyQ EC201","r":-99}}}
                            10:09:29.106 MQT: MAX7219/Buero_BL/tele/tasmota_CD3A44/BLE = {"Time":"2025-03-16T10:09:29","BLE":{"scans":28,"adverts":4828,"devices":8,"resets":0}}
                            10:09:49.962 M32: Kick off readOneSensor
                            10:09:49.964 M32: Kick off tele sending
                            

                            ich nehme mal an da er den /tasmota_CD3A44/SENSOR für die Sensoren UND das BLE benutz kommen ab und an mal die Alias daten nicht an und dadurch ergibt sich das hier dann :

                            Alias.jpg

                            Ist also auch nicht so Perfekt leider 😞

                            Wie ich es dreh und wende irgend wo ist immer ein Hacken drin 😞

                            Gibt es noch eine Möglichkeit ?

                            Und ne, 2 Chips zu verwenden will ich nicht wirklich, scheint aber mit ioBroker nicht anders zu gehen 😧

                            mfg

                            Digi-Bit

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              ticaki Developer @Digi-Bit last edited by

                              @digi-bit

                              JSON.parse(val).ANALOG.A1
                              
                              val ? JSON.parse(val).ANALOG.A1 : -1
                              

                              anstatt -1 ein sinnvolles hat nicht geklappt valueeinfügen

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                Digi-Bit @ticaki last edited by

                                @ticaki sagte in Tasmota MQTT daten auslesen:

                                val ? JSON.parse(val).ANALOG.A1 : -1

                                Mmmmmm

                                Vieleicht verstehe ich da was falsch

                                Ich erstelle das Alias:

                                JSon_1.jpg

                                ich bekomme auch einen datenpunkt und er schreibt auch den gewünschten Wert hinein

                                JSon_2.jpg

                                aber ich bekomme Fehlermeldungen im Protokoll ;(

                                
                                javascript.0
                                2025-03-16 11:50:38.714	error	Invalid read function for "alias.0.MAX7219.Buero_BL.A1": "val ? JSON.parse(val).ANALOG.A1 : -1" => Cannot read properties of undefined (reading 'A1')
                                
                                admin.1
                                2025-03-16 11:50:38.713	error	Invalid read function for "alias.0.MAX7219.Buero_BL.A1": "val ? JSON.parse(val).ANALOG.A1 : -1" => Cannot read properties of undefined (reading 'A1')
                                

                                was mach ich noch falsch ?`

                                mfg

                                Digi-Bit

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer @Digi-Bit last edited by ticaki

                                  @digi-bit sagte in Tasmota MQTT daten auslesen:

                                  was mach ich noch falsch ?`

                                  Mein Fehler zuviel c&p und zuwenig geguckt 🙂

                                  hm weiß garnet ob das hier im alias geht - woanders gehts 🙂

                                  kann sein das da noch {}drum müssen.

                                  const x = val ? JSON.parse(val) : undefined; if (x?.ANALOG?.A1) return x.ANALOG.A1; else return -1;
                                  

                                  das könnte auch gehen 🙂 Aber nur wenn A1 nicht 0 sein kann

                                  const x = val && JSON.parse(val)?.ANALOG?.A1 || -1;
                                  

                                  alternative

                                  val && JSON.parse(val).ANALOG ? JSON.parse(val).ANALOG.A1 : -1
                                  

                                  Sag mir bitte was ging - die Anwendung von ? im 2. Vorschlag ist mir erst letzten bewusst geworden, bin mir noch net sicher das das in && Verkettungen geht.

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    Digi-Bit @ticaki last edited by

                                    @ticaki sagte in Tasmota MQTT daten auslesen:

                                    val && JSON.parse(val).ANALOG ? JSON.parse(val).ANALOG.A1 : -1

                                    Hi,

                                    val && JSON.parse(val).ANALOG ? JSON.parse(val).ANALOG.A1 : -1
                                    

                                    Diese Version macht am meisten Sinn, Ich habe einen Datenpunkt, KEINE Fehlermeldungen im Protokoll !

                                    das einzige ist das es ab und an mal einen -1 wert gibt aber das kann ich bei influxdb rausfiltern und bei dem Blockly sollte es auch Wurst sein da ich erst werte ab 2000 auswerte, falls mal wieder die Therme spinnt und wieder Gas in mein Büro strömt und zig Feuerwehr Fahrzeuge vor dem Haus stehen.... ist nicht so klasse ..............

                                    Ich werde nachher mal die anderen Daten rausfiltern und auch die von dem Flora Modulen in den Blumen ob das auch damit geht, aber ich bin da mal zuversichtig 😉

                                    val && JSON.parse(val).Flora6d39de ? JSON.parse(val).Flora6d39de.Moisture : -1
                                    
                                    

                                    Das geht auch soweit halt auch ab und an mal ein -1 drin aber das ist bisher die beste Lösung für meine Bedürfnisse ^^

                                    Ich bedanke mich recht Herzlich für seine Bemühungen und wünsche dir ein wunderschönen Sontag noch ! ! !

                                    mfg

                                    Digi-Bit

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

                                    Support us

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

                                    599
                                    Online

                                    31.6k
                                    Users

                                    79.6k
                                    Topics

                                    1.3m
                                    Posts

                                    mqtt tasmota
                                    5
                                    16
                                    469
                                    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