Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. MQTT Json -> einzelner Datenpunkt - SonoffPOW Script

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    MQTT Json -> einzelner Datenpunkt - SonoffPOW Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      abuzze last edited by

      oh doppelt :roll:

      1 Reply Last reply Reply Quote 0
      • kmxak
        kmxak Most Active last edited by

        Das Script wird bei dir nicht so einfach funktionieren.

        Du musst es erst umbauen.

        Deine Objekt wird anders heißen sowie ist der Json anders aufgebaut und benannt.

        Wie sieh das bei dir aus? Poste mal ein Screenshot sowie den Inhalt des Json.

        Möglichkeit 2 wäre der Sonoff Adapter. Wenn der nicht direkt geht musst du den Adapter debuggen und Bluefox die Ausgabe schicken dann würde er das dort einbauen.

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

          Hallo

          Der Sonoff Adapter kann das !

          Danke Bluefox

          Gesendet von iPad mit Tapatalk Pro

          1 Reply Last reply Reply Quote 0
          • L
            looneyspeedy last edited by

            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.
            3693_pow-adapter.jpg

            1 Reply Last reply Reply Quote 0
            • A
              abuzze last edited by

              Hallo

              Das mit dem Sonoff Adapter hatte ich vor ein paar Tagen getestet und da musste ich den mqttt Adapter ausschalten.

              Jetzt wenn man etwas überlegt warum die beiden Adapter nicht gleichzeitig laufen ,kommt man zu dem Entschluss das man doch den Port ändern sollte vom neuen Adapter. Naja gesagt getan.Funktioniert soweit , die Datenpunkte werden abgefragt nur der Sensor Datenpunkt wird ignoriert.

              Muss jetzt noch was eingestellt werden ?

              Im Anhaang mal ein paar Screenshots- empfangen einmal über mqtt und über den Sonoff Adapter

              @kmxak:

              Das Script wird bei dir nicht so einfach funktionieren.

              Du musst es erst umbauen.

              Deine Objekt wird anders heißen sowie ist der Json anders aufgebaut und benannt.

              Wie sieh das bei dir aus? Poste mal ein Screenshot sowie den Inhalt des Json.

              Möglichkeit 2 wäre der Sonoff Adapter. Wenn der nicht direkt geht musst du den Adapter debuggen und Bluefox die Ausgabe schicken dann würde er das dort einbauen. `
              1811_bildschirmfoto_2017-11-05_um_10.42.29.png
              1811_bildschirmfoto_2017-11-05_um_11.06.10.png
              1811_bildschirmfoto_2017-11-05_um_11.07.30.png
              1811_bildschirmfoto_2017-11-05_um_11.08.19.png

              1 Reply Last reply Reply Quote 0
              • kmxak
                kmxak Most Active last edited by

                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.

                1 Reply Last reply Reply Quote 0
                • A
                  abuzze last edited by

                  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 Reply Last reply Reply Quote 0
                  • kmxak
                    kmxak Most Active last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • A
                      abuzze last edited by

                      Danke hab es gefunden.

                      1 Reply Last reply Reply Quote 0
                      • A
                        abuzze last edited by

                        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 Reply Last reply Reply Quote 0
                        • S
                          speedy78 last edited by

                          @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 Reply Last reply Reply Quote 0
                          • L
                            looneyspeedy last edited by

                            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 Reply Last reply Reply Quote 0
                            • SmarthomeMF
                              SmarthomeMF last edited by

                              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

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

                                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?

                                1 Reply Last reply Reply Quote 0
                                • C
                                  clerosch last edited by

                                  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

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    clerosch last edited by

                                    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

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    784
                                    Online

                                    31.7k
                                    Users

                                    79.8k
                                    Topics

                                    1.3m
                                    Posts

                                    11
                                    40
                                    10674
                                    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