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

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

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

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.
  • DutchmanD Offline
    DutchmanD Offline
    Dutchman
    Developer Most Active Administrators
    schrieb am zuletzt editiert von
    #11

    Hi there,

    Schaue gerade von Handy aus dann sind scripte nicht immer so leicht zu deuten.

    Würde aber sagen sieht gut aus, kommem die Werte und variabelen jetzt auch wie erwartet?

    Den creates state eventuell noch mit einer if abfangen das er es nur einmalig macht.

    Die Log Werte könntest du noch als debug Definieren damit er es nur ausspukt wen der JavaScript adapter auf debug steht sonst komt jetzt immer die Meldung im Log.

    Also dafür das die angefangen hast mit keine Ahnung und trigger will lernen, aus nem abstrakten Beispiel deine Sachen eingefüllt… Schulter klopfen und stolz sein und das sogar vor den Wochenende!

    Ich finde es immer sehr gut wenn man nicht nur nach der Lösung fragt sondern wirklich probiert zu verstehen was da passiert und wie man es macht!

    PS: einer meiner ersten scripte sieht auch als Resultat leicht aus (resol-vbus), habe aber Tage gebraucht also du mit deinen par Stunden, bierchen auf, zurück lenen und Schulter klopfen du ;)


    Send from mobile device

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

      Danke dir und prost 8-) (bin gerade bei udemy paar kurse machen. Das hilft schon gut obwohl ich noch am anfang bin.)

      Die Änderungen werde ich noch einfließen lassen.

      Der Sonoff gibt ja noch mehr Daten her ich werde das Script auf jeden fall noch erweitern und ein Widget damit basteln.

      Aber das wirklich erst am Wochenende :lol:

      Ich halte euch auf dem laufenden.

      Herzlichen Dank nochmal an die vielen tollen Leute hier im Forum für all die Hilfe :!:

      Gruß Alex

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

        @kmxak:

        Aber das wirklich erst am Wochenende :lol:

        Ich halte euch auf dem laufenden.

        Herzlichen Dank nochmal an die vielen tollen Leute hier im Forum für all die Hilfe :!: `

        Geht doch klar dafür sind wir die ioBroker community.

        Und nur noch Mal so als Ansatz, bitte von diesen Post die lesson learned mit nehmen und Endresultat teilen.

        Und wenn ich fragen darf… Später auch Mal anderen helfem, jetzt bist du der Anfänger aber schnell ein Guru.

        Gurus bleiben, aber jeder muss irgendwo anfangen... ;)

        So Ende offtopic... Have Fun!


        Send from mobile device

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

          hi,

          ich bin gerade dabei und versuche auch das Script bei mir ans laufen zu bekommen. Nur leider werden die Objekte bei mir nciht gefüllt. Kannst du vielleicht kurz dein Script erklären.

          Danke

          Liebe Grüße Tobias

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

            OK hat sich erledigt. Ich hatte ein Brett vorm Kopf.

            Bei mir heist der Wert mqtt.0.POWDrucker.ENERGY und nicht mqtt.0.tele.POWDrucker.ENERGY

            Danke das Script ist klassse werde das direkt erweitern für die anderen 3 Parameter.

            Ach ja eine Frage habe ich noch!

            Damit er das jede Minute ausführt, muss ich doch am anfang folgendes einfügen oder?

            schedule("* * * * * *",

            code

            )

            Sonst wird es doch nur einmal ausgeführt, wenn ich das Script starte oder?

            Danke für eure Hilfe.

            Liebe Grüße Tobias

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

              Hey, schön das es läuft.

              Bin da auch noch kein Profi aber es sollte bei jeder erkannten Änderung aktualisieren.

              Habe es allerdings noch nicht produktiv im Einsatz und daher noch nicht lange getestet. Wenn du mir rückinfo geben könntest wäre das natürlich klasse

              Gruß Alex

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

                Hi,

                Werde ich machen sobald ich es in Erfahrung gebracht habe. Morgen erstmal die JavaScript Doku drucken und durcharbeiten

                Gesendet von meinem HUAWEI VNS-L31 mit Tapatalk

                Liebe Grüße Tobias

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

                  @smoker2604x:

                  OK hat sich erledigt. Ich hatte ein Brett vorm Kopf.

                  Bei mir heist der Wert mqtt.0.POWDrucker.ENERGY und nicht mqtt.0.tele.POWDrucker.ENERGY

                  Danke das Script ist klassse werde das direkt erweitern für die anderen 3 Parameter.

                  Ach ja eine Frage habe ich noch!

                  Damit er das jede Minute ausführt, muss ich doch am anfang folgendes einfügen oder?

                  schedule("* * * * * *",

                  code

                  )

                  Sonst wird es doch nur einmal ausgeführt, wenn ich das Script starte oder?

                  Danke für eure Hilfe. `

                  Genau

                  In javascript hast du oben rechts eine Knopf cron Schau da Mal.

                  Kannst du deine Zeiten zusammen klicken in einer GUI und der cron kommt Dan mit de richtigen Werten ;)

                  Und gut so, Fragen ist gut aber nicht warten sondern probieren klappt doch gut bei dir chapeau !

                  (So hab ich auch angefangen ;))

                  –-----------------------

                  Send from mobile device

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          832

                                          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