Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. Energy v. gewollt mal abwesendem Shelly Plug S erfassen

NEWS

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

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

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

Energy v. gewollt mal abwesendem Shelly Plug S erfassen

Scheduled Pinned Locked Moved Einbindung von Geräten
8 Posts 5 Posters 1.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rallyecom
    wrote on last edited by
    #1

    Hallo in die Runde und wahrscheinlich das absolute Newbie-Problem...:

    Umfeld: iobroker mit vis auf Raspi4, Solaranlage auf dem Wohnmobil (mit eigenem Gridwechselrichter), AC-seitig mit Shelly Plug S, der eigentlich auch brav "Energy" aufsummiert. Das WLAN reicht bis auf den Stellplatz, Netzanschluss des Fahrzeugs über steckbare Leitung.

    Problem: Ab und an wird das Fahrzeug mal tagsüber benötigt. Wird jetzt der Plug S vom Stromnetz getrennt, dann verliert er den "Energy"-Wert und fängt nach dem Reboot diesen bei 0 wieder neu an aufzusummieren. Die Shelly-Cloud kriegt es hin, die Werte halbwegs korrekt auf den Tageszählwert zu rechnen - aber das nützt mir im iob erstmal nichts.

    Der iob bekommt bspw. als letzten Datenpunkt "223 Wh" vom Shelly-Adapter, dann geht der Shelly wegen Stromausfall (Stecker ziehen vor Abfahrt) ohne Warnung offline. Kommt das Fahrzeug jetzt zurück und der Stecker wird wieder eingesteckt, dann kommt als neuer Wert "0 Wh" vom Shelly, was die Berechnung des Tages-Solarertrages doch stark behindert.

    Meine Idee wäre jetzt, den Wert zyklisch (60s) in einen Datenpunkt zu schreiben, dann bei "online=false" den Wert einmalig in einen anderen Datenpunkt zu addieren (und an der Quelle zu nullen), der Mitternacht (nach Übernahme in "Energy_Bus_gestern") genullt wird und bei "online=true" (Rückkehr des Busses) aus diesem Additions-Hilfsdatenpunkt in den regulären "Energy_Bus_heute" zurückzuschreiben.

    Funktioniert das so? Hat schon mal jemand dieses Problem gehabt und gelöst?

    Grüße von Mirco, der zwar recht fit mit Shellys ist, aber im iob noch auf den ersten paar Metern ist...

    paul53P S 2 Replies Last reply
    0
    • R rallyecom

      Hallo in die Runde und wahrscheinlich das absolute Newbie-Problem...:

      Umfeld: iobroker mit vis auf Raspi4, Solaranlage auf dem Wohnmobil (mit eigenem Gridwechselrichter), AC-seitig mit Shelly Plug S, der eigentlich auch brav "Energy" aufsummiert. Das WLAN reicht bis auf den Stellplatz, Netzanschluss des Fahrzeugs über steckbare Leitung.

      Problem: Ab und an wird das Fahrzeug mal tagsüber benötigt. Wird jetzt der Plug S vom Stromnetz getrennt, dann verliert er den "Energy"-Wert und fängt nach dem Reboot diesen bei 0 wieder neu an aufzusummieren. Die Shelly-Cloud kriegt es hin, die Werte halbwegs korrekt auf den Tageszählwert zu rechnen - aber das nützt mir im iob erstmal nichts.

      Der iob bekommt bspw. als letzten Datenpunkt "223 Wh" vom Shelly-Adapter, dann geht der Shelly wegen Stromausfall (Stecker ziehen vor Abfahrt) ohne Warnung offline. Kommt das Fahrzeug jetzt zurück und der Stecker wird wieder eingesteckt, dann kommt als neuer Wert "0 Wh" vom Shelly, was die Berechnung des Tages-Solarertrages doch stark behindert.

      Meine Idee wäre jetzt, den Wert zyklisch (60s) in einen Datenpunkt zu schreiben, dann bei "online=false" den Wert einmalig in einen anderen Datenpunkt zu addieren (und an der Quelle zu nullen), der Mitternacht (nach Übernahme in "Energy_Bus_gestern") genullt wird und bei "online=true" (Rückkehr des Busses) aus diesem Additions-Hilfsdatenpunkt in den regulären "Energy_Bus_heute" zurückzuschreiben.

      Funktioniert das so? Hat schon mal jemand dieses Problem gehabt und gelöst?

      Grüße von Mirco, der zwar recht fit mit Shellys ist, aber im iob noch auf den ersten paar Metern ist...

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @rallyecom sagte: dann kommt als neuer Wert "0 Wh" vom Shelly

      Das kann man prüfen und den aktuellen Zählerstand in einen Startwert schreiben, auf den der Shelly-Wert addiert wird.

      Bild_2022-07-09_155733713.png

      Wert und vorheriger Wert(unter "Trigger"):

      Blockly_DP_Props.JPG

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • R rallyecom

        Hallo in die Runde und wahrscheinlich das absolute Newbie-Problem...:

        Umfeld: iobroker mit vis auf Raspi4, Solaranlage auf dem Wohnmobil (mit eigenem Gridwechselrichter), AC-seitig mit Shelly Plug S, der eigentlich auch brav "Energy" aufsummiert. Das WLAN reicht bis auf den Stellplatz, Netzanschluss des Fahrzeugs über steckbare Leitung.

        Problem: Ab und an wird das Fahrzeug mal tagsüber benötigt. Wird jetzt der Plug S vom Stromnetz getrennt, dann verliert er den "Energy"-Wert und fängt nach dem Reboot diesen bei 0 wieder neu an aufzusummieren. Die Shelly-Cloud kriegt es hin, die Werte halbwegs korrekt auf den Tageszählwert zu rechnen - aber das nützt mir im iob erstmal nichts.

        Der iob bekommt bspw. als letzten Datenpunkt "223 Wh" vom Shelly-Adapter, dann geht der Shelly wegen Stromausfall (Stecker ziehen vor Abfahrt) ohne Warnung offline. Kommt das Fahrzeug jetzt zurück und der Stecker wird wieder eingesteckt, dann kommt als neuer Wert "0 Wh" vom Shelly, was die Berechnung des Tages-Solarertrages doch stark behindert.

        Meine Idee wäre jetzt, den Wert zyklisch (60s) in einen Datenpunkt zu schreiben, dann bei "online=false" den Wert einmalig in einen anderen Datenpunkt zu addieren (und an der Quelle zu nullen), der Mitternacht (nach Übernahme in "Energy_Bus_gestern") genullt wird und bei "online=true" (Rückkehr des Busses) aus diesem Additions-Hilfsdatenpunkt in den regulären "Energy_Bus_heute" zurückzuschreiben.

        Funktioniert das so? Hat schon mal jemand dieses Problem gehabt und gelöst?

        Grüße von Mirco, der zwar recht fit mit Shellys ist, aber im iob noch auf den ersten paar Metern ist...

        S Offline
        S Offline
        Stefi
        wrote on last edited by
        #3

        Gesetz dem Fall du bist ein wenig firm mit plain Javascript, kannst du auch den folgenden Code-Snippet verwenden

            var shellyEnergyId = "shelly.0.[...].Energy";
            var solarGesamtId = "0_userdata.0.solar.gesamt";
            var solarTempId = "0_userdata.0.solar.zwischenwert";
           
            createState(solarGesamtId,  0, {name: "PV-Erfassung Gesamt [Wh]", desc: "PV-Erfassung Gesamt [Wh]", type: "number", read: true, write: true, role: "value"});
            createState(solarTempId,  0, {name: "PV-Erfassung Zwischenwert [Wh]", desc: "PV-Erfassung Zwischenwert [Wh]", type: "number", read: true, write: true, role: "value"});  
        
            // Workaround für die Erfassung der PV Gesamtenergie
            on({id: shellyEnergyId, change: "any"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
        
                if (value < oldValue) {
                    // Letzten Gesamtwert zwischenspeichern
                    var totalValue = getState(solarGesamtId).val;
                    setState(solarTempId, totalValue);
                }
        
                // Neuen Gesamtwert berechnen
                var tempValue = getState(solarTempId).val;
                setState(solarGesamtId, tempValue + value);
            });
        

        Du kannst natürlich auch das Blockly-Skript von @paul53 verwenden, allerdings birgt das die Gefahr, dass das nicht immer 100% richtig reagiert. Ich hatte es anfangs auch sorum (der "sonst"-Zweig tritt nur ein, wenn Wert exakt 0 (oder negativ) ist) und habe leider ein paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat. Für meine Graphen lasse ich dann die Variable "solarGesamtId" historisieren und einspeisen.

        Hoffe das hilft ein wenig weiter.

        paul53P 1 Reply Last reply
        0
        • S Stefi

          Gesetz dem Fall du bist ein wenig firm mit plain Javascript, kannst du auch den folgenden Code-Snippet verwenden

              var shellyEnergyId = "shelly.0.[...].Energy";
              var solarGesamtId = "0_userdata.0.solar.gesamt";
              var solarTempId = "0_userdata.0.solar.zwischenwert";
             
              createState(solarGesamtId,  0, {name: "PV-Erfassung Gesamt [Wh]", desc: "PV-Erfassung Gesamt [Wh]", type: "number", read: true, write: true, role: "value"});
              createState(solarTempId,  0, {name: "PV-Erfassung Zwischenwert [Wh]", desc: "PV-Erfassung Zwischenwert [Wh]", type: "number", read: true, write: true, role: "value"});  
          
              // Workaround für die Erfassung der PV Gesamtenergie
              on({id: shellyEnergyId, change: "any"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
          
                  if (value < oldValue) {
                      // Letzten Gesamtwert zwischenspeichern
                      var totalValue = getState(solarGesamtId).val;
                      setState(solarTempId, totalValue);
                  }
          
                  // Neuen Gesamtwert berechnen
                  var tempValue = getState(solarTempId).val;
                  setState(solarGesamtId, tempValue + value);
              });
          

          Du kannst natürlich auch das Blockly-Skript von @paul53 verwenden, allerdings birgt das die Gefahr, dass das nicht immer 100% richtig reagiert. Ich hatte es anfangs auch sorum (der "sonst"-Zweig tritt nur ein, wenn Wert exakt 0 (oder negativ) ist) und habe leider ein paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat. Für meine Graphen lasse ich dann die Variable "solarGesamtId" historisieren und einspeisen.

          Hoffe das hilft ein wenig weiter.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          @stefi sagte: paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat.

          Habe es oben berücksichtigt.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          S R 2 Replies Last reply
          0
          • paul53P paul53

            @stefi sagte: paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat.

            Habe es oben berücksichtigt.

            S Offline
            S Offline
            Stefi
            wrote on last edited by
            #5

            @paul53 said in Energy v. gewollt mal abwesendem Shelly Plug S erfassen:

            @stefi sagte: paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat.

            Habe es oben berücksichtigt.

            Sehr cool 🙂

            1 Reply Last reply
            0
            • paul53P paul53

              @stefi sagte: paar Momente verpasst, weil der Shelly als nächsten Wert manchmal 0,0023 o.ä. als ersten Wert gemeldet hat.

              Habe es oben berücksichtigt.

              R Offline
              R Offline
              rallyecom
              wrote on last edited by
              #6

              @paul53 das sieht schon recht lecker aus, werde ich morgen mal testen. In der Tat könnten Startwerte über null auftreten, nämlich dann, wenn der Wechselrichter nach "Stecker rein" schneller mit der Produktion beginnt wie das WLAN mit dem connect establishing fertig ist.

              Nice ist, dass dein Skript nicht nur den Fall "Strom und WLAN weg" erfasst, sondern auch einen Geräteneustart allgemein. Dein Skript lässt sich für jeden "Zähl-Shelly" verwenden, der bei Reboot Demez bekommt...

              Danke!

              1 Reply Last reply
              0
              • R Offline
                R Offline
                romestylez
                wrote on last edited by
                #7

                @paul53 vielen Dank erst mal auch für deine ganzen anderen Scripte. Sehe deinen Namen hier an jeder Ecke 🐶

                Ich habe es mal nachgebaut. Was mich wundert wieso vor "Wert" und "vorheriger Wert" ein weißer Pfeil ist. Eventuell gabs da mal nen Update ? Ich hoffe meins funktioniert trotzdem

                9641dfcf-2605-4170-b778-3901c13e3fbe-image.png

                HomoranH 1 Reply Last reply
                0
                • R romestylez

                  @paul53 vielen Dank erst mal auch für deine ganzen anderen Scripte. Sehe deinen Namen hier an jeder Ecke 🐶

                  Ich habe es mal nachgebaut. Was mich wundert wieso vor "Wert" und "vorheriger Wert" ein weißer Pfeil ist. Eventuell gabs da mal nen Update ? Ich hoffe meins funktioniert trotzdem

                  9641dfcf-2605-4170-b778-3901c13e3fbe-image.png

                  HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #8

                  @romestylez sagte in Energy v. gewollt mal abwesendem Shelly Plug S erfassen:

                  Eventuell gabs da mal nen Update

                  vor Jahren!
                  diese Bausteine wurden in Beispiel-Blocklies sonst für selbst erstellte Variablen gehalten.

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  1
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  436

                  Online

                  32.4k

                  Users

                  81.4k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe