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. MQTT Json -> einzelner Datenpunkt - SonoffPOW Script

NEWS

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

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

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

MQTT Json -> einzelner Datenpunkt - SonoffPOW Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
40 Beiträge 11 Kommentatoren 11.9k Aufrufe
  • Ä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.
  • A Offline
    A Offline
    abuzze
    schrieb am zuletzt editiert von
    #31

    Ich muss nochmal kurz nachfragen. Hab den Adapter auf debug gestellt und hab jetzt das im log. Aber das sieht nicht so aus als wenn man damit was anfangen kann.
    @kmxak:

    den Sonoff Adapter auf debug stellen und im Log schauen ob dort die Temperaturwerte vom Sensor ankommen wenn ja die Zeile kopieren und bei github eine issue erstellen im sonoff adapter

    https://github.com/ioBroker/ioBroker.sonoff/issues

    Dann bau es Bluefox mit der nächsten Version ein. `
    1811_bildschirmfoto_2017-11-05_um_13.36.54.png

    1 Antwort Letzte Antwort
    0
    • kmxakK Offline
      kmxakK Offline
      kmxak
      Most Active
      schrieb am zuletzt editiert von
      #32

      du musst unter instanzen den sonoff noch auf debug stellen. ggf experten ansicht an machen.

      Unter log kannst nur anzeigen was dir angezeigt werden soll

      Gruß Alex

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        abuzze
        schrieb am zuletzt editiert von
        #33

        Danke hab es gefunden.

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          abuzze
          schrieb am zuletzt editiert von
          #34

          Ich habe es geschafft. Bluefox gab den Tip Version 0.3.3 zu installieren und nach Neustart des Sonoff TH wurde mir der Wert angezeigt.

          Danke

          @abuzze:

          Ich muss nochmal kurz nachfragen. Hab den Adapter auf debug gestellt und hab jetzt das im log. Aber das sieht nicht so aus als wenn man damit was anfangen kann.
          @kmxak:

          den Sonoff Adapter auf debug stellen und im Log schauen ob dort die Temperaturwerte vom Sensor ankommen wenn ja die Zeile kopieren und bei github eine issue erstellen im sonoff adapter

          https://github.com/ioBroker/ioBroker.sonoff/issues

          Dann bau es Bluefox mit der nächsten Version ein.
          1811_bildschirmfoto_2017-11-05_um_15.30.49.png

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            speedy78
            schrieb am zuletzt editiert von
            #35

            @looneyspeedy:

            So will hier mal ran. Ich glaube ich stehe noch so etwas auf dem Schlauch. Liegt aber wohl da dran das ich neu in dieser Sache bin.

            Habe alle meine sonoff per ESPurana MQTT Verbunden mit dem Broker und der schreibt auch schon fleißig die aktuellen Werte hier rein.

            Was macht jetzt genau dieses Script kann ich damit dann eine Tabelle in meine Vis Einbauen mit Werten ? und vielleicht Berechnung des Preises ( TAG / Monat / Jaht )

            Hier mal wie es in meinen Objekten Aussieht. Danke für die Hilfe. `

            Habe das Script etwas geändert auf meine ID, er hat auch die Datenpunkte angelegt mit 0 ist ja klar nur bekomme ich jetzt einen Fehler und es ändert sich auch nichts an den Werten.

            ( Fehler: javascript.0 script.js.common.Sonoff-POW-Werte: Cannot parse: 00 )

            /*
            Json Converter Sonoff POW
            
            Setup: Pfad + Channel + SName setzen / immer ein . am ende
            
            */
            
            var pfad = "javascript.0.jsonconverter.";
            var channel = "SonoffPOW.";
            var sname = "Computer.";
            
            // do not change
            
            var idwatt = pfad + channel + sname + 'Watt';
            var idvolt = pfad + channel + sname + 'Volt';
            var idampere = pfad + channel + sname + 'Ampere';
            var idtotal = pfad + channel + sname + 'Total';
            var idyesterday = pfad + channel + sname + 'Gestern';
            var idtoday = pfad + channel + sname + 'Heute';
            
            // Create States
            
            createState(idwatt, 0,{type: 'number',name: 'Aktuelle Leistung', read: true,write: true,role: 'value'});
            createState(idvolt, 0,{type: 'number',name: 'Aktuelle Spannung', read: true,write: true,role: 'value'});
            createState(idampere, 0,{type: 'number',name: 'Aktueller Strom', read: true,write: true,role: 'value'});
            createState(idtotal, 0,{type: 'number',name: 'Total KWh', read: true,write: true,role: 'value'});
            createState(idyesterday, 0,{type: 'number',name: 'Gestern KWh', read: true,write: true,role: 'value'});
            createState(idtoday, 0,{type: 'number',name: 'Heute KWh', read: true,write: true,role: 'value'});
            
             // script beginning
                on({id: 'mqtt.0.POWDrucker.ENERGY', change: "any"}, function (obj) {
            
                   //variabele erstellen fuer meine 3 beispiel objecte
                        var volt;
                        var watt;  
                        var ampere; 
                        var total;
                        var today;
                        var yesterday;
            
                   try {obj = JSON.parse(getState('mqtt.0.POWDrucker.ENERGY').val);
                   } catch (e) {
                           console.error('Cannot parse: ' + getState('mqtt.0.POWDrucker.ENERGY').val);
                           return;
                    }
            
                   volt = obj.Voltage;
                   watt = obj.Power;
                   ampere = obj.Current;
                   total = obj.Total;
                   today = obj.Today;
                   yesterday = obj.Yesterday;
            
                    setState(idwatt, watt);
                    setState(idvolt, volt);
                    setState(idampere, ampere);
                    setState(idtotal, total);
                    setState(idtoday, today);
                    setState(idyesterday, yesterday);
            
                   log(volt);
                   log(watt);
                   log(ampere);
                   log(total);
                   log(today);
                   log(yesterday);
                });
            

            Über jede Hilfe bin ich dankbar.

            Kann es sein das ich die variablen noch anpassen muss. ( welche nutze ich aus meiner Liste :( )
            3717_pow-adapter.jpg

            1 Antwort Letzte Antwort
            0
            • L Offline
              L Offline
              looneyspeedy
              schrieb am zuletzt editiert von
              #36

              So nun bin ich etwas weiter. Man kommt ja so langsam da rein.

              Kann mir bitte jemand dies erklären.

              1. Kann es sein das es in dem Script Hauptsächlich darum geht die (JSON)Werte einer Variablen zu zuweisen.

              Was ja bei meiner Firmware nicht nötig ist da ja alles schon geordnet ist.

              2. Könnte man dieses Script etwas abändern damit z.B.

              Ampere

              Watt

              Heute

              Gestern

              Monat

              Total

              von allen sonoffpow( bzw. Energiemessgeräten ) in je einem Datenpunkt gesammelt werden ?

              Und wie berechnet das Script überhaupt den Verbrauch, ich kann nirgend wo eine Berechnung sehen. Normal müsste doch einfach Total / und Heute hochzählen und so weiter…..und ab 0Uhr wieder von vorne.

              Ich kann mir nicht vorstellen das es so komplex ist das umzusetzen oder sehe ich das falsch, leider verstehe ich von diesen Programmier teilen nicht so viel.


              Fehler die ich Aktuell habe:

              javascript.0 2017-11-10 19:16:50.130 warn at Object. (script.js.common.Sonoff-POW2-Werte:63:9)

              javascript.0 2017-11-10 19:16:50.130 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Gestern: "undefined". Please fix, while deprecated and will not work in next versions.

              javascript.0 2017-11-10 19:16:50.130 warn at Object. (script.js.common.Sonoff-POW2-Werte:62:9)

              javascript.0 2017-11-10 19:16:50.130 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Heute: "undefined". Please fix, while deprecated and will not work in next versions.

              javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:61:9)

              javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Total: "string". Please fix, while deprecated and will not work in next versions.

              javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:60:9)

              javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Ampere: "string". Please fix, while deprecated and will not work in next versions.

              javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:59:9)

              javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Volt: "string". Please fix, while deprecated and will not work in next versions.

              javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:58:9)

              javascript.0 2017-11-10 19:16:50.128 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Watt: "string". Please fix, while deprecated and will not work in next versions.

              /*
              Json Converter Sonoff POW
              
              Setup: Pfad + Channel + SName setzen / immer ein . am ende
              
              */
              
              var pfad = "javascript.0.jsonconverter.";
              var channel = "SonoffPOW.";
              var sname = "POW2.";
              
              // do not change
              
              var idwatt = pfad + channel + sname + 'Watt';
              var idvolt = pfad + channel + sname + 'Volt';
              var idampere = pfad + channel + sname + 'Ampere';
              var idtotal = pfad + channel + sname + 'Total';
              var idyesterday = pfad + channel + sname + 'Gestern';
              var idtoday = pfad + channel + sname + 'Heute';
              
              // Create States
              
              createState(idwatt, 0,{type: 'number',name: 'Aktuelle Leistung', read: true,write: true,role: 'value'});
              createState(idvolt, 0,{type: 'number',name: 'Aktuelle Spannung', read: true,write: true,role: 'value'});
              createState(idampere, 0,{type: 'number',name: 'Aktueller Strom', read: true,write: true,role: 'value'});
              createState(idtotal, 0,{type: 'number',name: 'Total KWh', read: true,write: true,role: 'value'});
              createState(idyesterday, 0,{type: 'number',name: 'Gestern KWh', read: true,write: true,role: 'value'});
              createState(idtoday, 0,{type: 'number',name: 'Heute KWh', read: true,write: true,role: 'value'});
              
               // script beginning
                  on({id: 'mqtt.0.POW.switch.POW2.data', change: "any"}, function (obj) {
              
                     //variabele erstellen fuer meine 3 beispiel objecte
                          var volt;
                          var power;  
                          var ampere; 
                          var total;
                          var today;
                          var yesterday;
              
                     try {obj = JSON.parse(getState('mqtt.0.POW.switch.POW2.data').val);
                     } catch (e) {
                             console.error('Cannot parse: ' + getState('mqtt.0.POW.switch.POW2.data').val);
                             return;
                      }
              
                     volt = obj.voltage;
                     watt = obj.power;
                     ampere = obj.current;
                     total = obj.energy_total;
                     today = obj.today;
                     yesterday = obj.yesterday;
              
                      setState(idwatt, watt);
                      setState(idvolt, volt);
                      setState(idampere, ampere);
                      setState(idtotal, total);
                      setState(idtoday, today);
                      setState(idyesterday, yesterday);
              
                     log(volt);
                     log(watt);
                     log(ampere);
                     log(total);
                     log(today);
                     log(yesterday);
                  });
              

              ( JSON )

              {"current":"0.08","apparent":"18","energy_delta":"160.000","energy_total":"54789.000","power":"13","reactive":"12","voltage":"221","factor":"72.22","time":"2017/11/10 19:25:58","host":"POW2","ip":"192.168.178.56"}

              1 Antwort Letzte Antwort
              0
              • SmarthomeMFS Offline
                SmarthomeMFS Offline
                SmarthomeMF
                schrieb am zuletzt editiert von
                #37

                Hallo

                Ich habe schon ca 10 Sonoffs im Einsatz.

                Davon 2 St TH16.

                Heute hab ich die neuen bekommen und gleich mal geflasht mit der selben Software wie die ersten.

                Nun habe ich das Problem das ich bei den neuen Sonoffs keine Werte (Temperatur und Luftfeuchtigkeit) angezeigt werden.

                Bei den ersten schon!!! und es ist alles gleich und auch gleich eingestellt.

                Auch wenn ich die Sonoffs im Browser ansteuere mit der IP habe ich bei den ersten die Werte und bei den neuen nicht.

                Was ist da nun anders?

                Was kann ich da machen… kann mir da bitte wer helfen.

                Danke
                4668_unbenannt_1.png
                4668_unbenannt_2.png
                4668_unbenannt_3.png

                Max

                ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

                1 Antwort Letzte Antwort
                0
                • SmarthomeMFS Offline
                  SmarthomeMFS Offline
                  SmarthomeMF
                  schrieb am zuletzt editiert von
                  #38

                  Hallo

                  Ich habe nun von GitHub die neue Tasmota Firmware gezogen und dann noch mal den flash gemacht.

                  Sieht etwas anders aus wie die alte aber das gleiche Spiel…..

                  Bein Sonoff TH bekomme ich keine Werte!!

                  Ich habe TH eingestellt und auch bei GPIO14 den Sensor eingestellt....

                  es kommt aber nicht.... auch nicht über die IP im Browser!!

                  was kann ich da machen?

                  Max

                  ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                  Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    clerosch
                    schrieb am zuletzt editiert von
                    #39

                    Hallo,

                    wollte nur sagen, dass ich das gleiche Problem habe und ebenfalls an einer Lösung interessiert bin.

                    Habe die sonoff per WLAN geflasht (https://www.youtube.com/watch?v=Q250yDKNCaI), was mit ein wenig Geduld und teilweise wiederholten Versuchen bei verschiedenen Modellen (basic, 4ch) geklappt hat - löten ist nicht mehr nötig. Nun hoffe ich für die sonoff th auf eine Lösung für die Messwerte.

                    Danke im voraus!

                    clerosch

                    • raspi4 mit Raspberry Pi 8-Kanal Relais Modul Expansion Board

                    • raspi 4, iob v7.1.1, nodejs 20.18.0, js-controller 7.1.6, npm 10.8.2

                    • 1wire - DS9490 - DS18B20

                    • sonoff basic, th, ch4

                    • Steuerung von Scheitholz-Pellet-Kessel, Raumheizung, Lüftung, Fotovoltaik (temporäre Insel)

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      clerosch
                      schrieb am zuletzt editiert von
                      #40

                      Guten Abend,

                      ich kann Erfolg melden: nachdem ich nochmal alles durchgeklickt hatte, reset, Sensor neu eingesteckt, Cache gelöscht habe, geht es. Der 2.Sensor funktionierte kurioserweise dann gleich nach dem update der Firmware auf 5.11.1 - also klare Empfehlung für die Teile!

                      clerosch

                      • raspi4 mit Raspberry Pi 8-Kanal Relais Modul Expansion Board

                      • raspi 4, iob v7.1.1, nodejs 20.18.0, js-controller 7.1.6, npm 10.8.2

                      • 1wire - DS9490 - DS18B20

                      • sonoff basic, th, ch4

                      • Steuerung von Scheitholz-Pellet-Kessel, Raumheizung, Lüftung, Fotovoltaik (temporäre Insel)

                      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

                      794

                      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