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.0k

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.
  • smoker2604xS Offline
    smoker2604xS Offline
    smoker2604x
    schrieb am zuletzt editiert von
    #19

    Hallo zusammen,

    ich habe das Script um die weiteren 3 parameter ergänzt und noch einen Scheduel hinzugefügt der alle 2 Minuten lauft.

    Mla sehen ob es jetzt so klappt wie ich mir das vorstelle.

    Quellcode:

    ! ````
    /*
    Json Converter Sonoff POW
    ! Setup: Pfad + Channel + SName setzen / immer ein . am ende
    ! /
    ! var pfad = "javascript.0.jsonconverter.";
    var channel = "SonoffPOW.";
    var sname = "POWDrucker.";
    ! // 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'});
    ! schedule("
    /2 * * * *", function () {
    ! // 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);
    });
    

    });

    ! ````

    Liebe Grüße Tobias

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #20

      @smoker2604x:

      Hallo zusammen,

      ich habe das Script um die weiteren 3 parameter ergänzt und noch einen Scheduel hinzugefügt der alle 2 Minuten lauft.

      Mla sehen ob es jetzt so klappt wie ich mir das vorstelle.

      Quellcode:

      ! ````
      /*
      Json Converter Sonoff POW
      ! Setup: Pfad + Channel + SName setzen / immer ein . am ende
      ! /
      ! var pfad = "javascript.0.jsonconverter.";
      var channel = "SonoffPOW.";
      var sname = "POWDrucker.";
      ! // 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'});
      ! schedule("
      /2 * * * *", function () {
      ! // 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);
      });
      

      });

      ! ```` `

      Hi,

      Ich verstehe nicht danz die logik dahinter was du machst :)

      Einerseitzt hast du eien cron der alle 2 minuten das script triggert, das hast du am anfang vom script gesetzt:

      schedule("*/2 * * * *", function () {
      

      Innerhalb deines sccript ist noch ein trigger verbaut der die variabelen fuellt wen sich der status von de MQTT werten aendert:

          // 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;
              }
      
      1. Was moechtest du genau erreichen ? Die werte alle 2 minuten aktualisieren ? Lass dan das on weg und integrieren auslesen der MQTT werte in deinem schedule.

      (ich frag mich aber ab wozu das gut sein soll, macht doch nur sinn die daten zu erneuern wen diese sich geaendert haben ?)

      ! ` > schedule("*/2 * * * *", function () {

      //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);

      }); `

      1. Die werte aktualisieren wen diese sich von MQTT aus geaendert haben ? Lass dan den shedule weg (faende ich logischer.

      ! ````
      // 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);
      });
      

      ! ````

      hoffe das hilft dir ein bischen, man sollte vermeiden das unnoetig date geschrieben werden en es auch sinn man diese zu lesen :-)

      Den cron welcher jetzt bei dir eingebaut ist macht naemlich garnix :), alles hinter dem on( wird nur ausgefuert wen sich der MQTT wert geaendert/updated hat das macht er bei jeden update (durch change : "any"), kannst du noch aendern in nur wen wert geaendert wurde (change : "ne")

      1 Antwort Letzte Antwort
      0
      • smoker2604xS Offline
        smoker2604xS Offline
        smoker2604x
        schrieb am zuletzt editiert von
        #21

        Super ich danke dir. Deine Erklärung und das hinterfragen hat mir sehr geholfen. Mir war nicht klar das das Script mit in immer auf eine Änderung reagiert. Ich dachte das reagiert nur darauf wenn es abgefragt wird. Vielen Dank dann kann ich den cron wieder entfernen.

        Gesendet von meinem HUAWEI VNS-L31 mit Tapatalk

        Liebe Grüße Tobias

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          djonny88
          schrieb am zuletzt editiert von
          #22

          Hi,

          jetzt muss ich den Thread nochmals vorholen.

          Wie hast du es geschafft, dass du die Werte vom Sonoff POW an iobroker sendest?

          Bei mir wird zwar das Objekt angelegt, jedoch sehe ich keine Werter im Ereignis oder sonst wo… Ich sehe nur Online/Offline sowie On/Off

          wäre für jede Hilfe Dankbar.

          LG Jonny

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

            Die Werte vom POW kommen per MQTT im ioBroker an.

            Von da aus geht es mit diesem Script weiter.

            Gruß Alex

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

              Hallo zusammen

              Ich hab jetzt auch versucht die Temperatur meines Sonoff TH einzeln zu stellen aber ich habe es noch nicht geschafft. Ist das letzte Script das was bei Dir/Euch funktioniert ? Oder ist das nur ein Code Schnipsel ?

              Vielleicht könnte einer nochmal das komplette Script veröffentlichen. Anpassen mache ich selber will auch lernen.

              Danke

              @Dutchman:

              @smoker2604x:

              Hallo zusammen,

              ich habe das Script um die weiteren 3 parameter ergänzt und noch einen Scheduel hinzugefügt der alle 2 Minuten lauft.

              Mla sehen ob es jetzt so klappt wie ich mir das vorstelle.

              Quellcode:

              ! ````
              /*
              Json Converter Sonoff POW
              ! Setup: Pfad + Channel + SName setzen / immer ein . am ende
              ! /
              ! var pfad = "javascript.0.jsonconverter.";
              var channel = "SonoffPOW.";
              var sname = "POWDrucker.";
              ! // 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'});
              ! schedule("
              /2 * * * *", function () {
              ! // 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);
              });
              

              });

              ! ```` `

              Hi,

              Ich verstehe nicht danz die logik dahinter was du machst :)

              Einerseitzt hast du eien cron der alle 2 minuten das script triggert, das hast du am anfang vom script gesetzt:

              schedule("*/2 * * * *", function () {
              

              Innerhalb deines sccript ist noch ein trigger verbaut der die variabelen fuellt wen sich der status von de MQTT werten aendert:

                  // 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;
                      }
              
              1. Was moechtest du genau erreichen ? Die werte alle 2 minuten aktualisieren ? Lass dan das on weg und integrieren auslesen der MQTT werte in deinem schedule.

              (ich frag mich aber ab wozu das gut sein soll, macht doch nur sinn die daten zu erneuern wen diese sich geaendert haben ?)

              ! ` > schedule("*/2 * * * *", function () {

              //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);

              }); `

              1. Die werte aktualisieren wen diese sich von MQTT aus geaendert haben ? Lass dan den shedule weg (faende ich logischer.

              ! ````
              // 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);
              });
              

              ! ````

              hoffe das hilft dir ein bischen, man sollte vermeiden das unnoetig date geschrieben werden en es auch sinn man diese zu lesen :-)

              Den cron welcher jetzt bei dir eingebaut ist macht naemlich garnix :), alles hinter dem on( wird nur ausgefuert wen sich der MQTT wert geaendert/updated hat das macht er bei jeden update (durch change : "any"), kannst du noch aendern in nur wen wert geaendert wurde (change : "ne") `

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

                oh doppelt :roll:

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

                  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.

                  Gruß Alex

                  1 Antwort Letzte Antwort
                  0
                  • chucky666C Online
                    chucky666C Online
                    chucky666
                    schrieb am zuletzt editiert von
                    #27

                    Hallo

                    Der Sonoff Adapter kann das !

                    Danke Bluefox

                    Gesendet von iPad mit Tapatalk Pro

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

                      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 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        abuzze
                        schrieb am zuletzt editiert von
                        #29

                        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 Antwort Letzte Antwort
                        0
                        • kmxakK Offline
                          kmxakK Offline
                          kmxak
                          Most Active
                          schrieb am zuletzt editiert von
                          #30

                          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.

                          Gruß Alex

                          1 Antwort Letzte Antwort
                          0
                          • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          621

                                          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