Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Shelly 3EM - negative Werte verhindern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Shelly 3EM - negative Werte verhindern

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

      Hallo zusammen,

      ich weiß nicht genau wo ich die Frage zuordnen soll.. denke aber das es womöglich nur durch ein Skript zu lösen ist.

      Ich habe zwei Shelly 3EM, einmal für den Hausstrom und einmal für die Wärmepumpe. Beide über das Shelly Plugin eingebunden.
      Der Hausstrom läuft ganz normal und spukt mir über das Shelly Verbrauchs-Historie Skript den täglichen Hausverbrauch etc. ohne Probleme aus.

      Bei der Shelly für die Wärmepumpe hingegen, gibt es massive Sprünge in den Werten, die ich auf Probleme bei den Shelly-Werten zurückführen kann.
      Und zwar genauer gesagt, kriege ich vom Plugin/Shelly bei den Verbräuchen Emeter0, Emeter1, Emeter2 sehr oft ein - 1 zurückgegeben anstatt des fortlaufendem Hochzählen:

      56438fa3-1522-41e5-a505-ad2a1c681d62-image.png

      Vom Shelly Support gibts dazu keine Hilfestellung leider.. ein Update auf die neuste Version hat auch nichts gebracht.

      • Gibt es eine Möglichkeit über eine Objekt-Definition zu verhindern, dass überhaupt negative Werte akzeptiert werden? Wäre mir am liebsten..
      • Könnte man ansonsten ein Skript schreiben, dass die negativen Werte sofort wieder aus der Historie rauslöscht? Das Verbrauchs-Historie Skript dürfte da in der Zwischenzeit aber nichts abrufen..

      Grüße
      Chris

      Codierknecht MartinP B 3 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Chris0706 last edited by Codierknecht

        @chris0706 sagte in Shelly 3EM - negative Werte verhindern:

        Gibt es eine Möglichkeit über eine Objekt-Definition zu verhindern, dass überhaupt negative Werte akzeptiert werden? Wäre mir am liebsten..

        Du könntest statt mit dem nativen DP des Shelly einen Alias darauf anlegen und mit diesem loggen.
        In der Konvertierungsfunktion für Lesen

        val >= 0 ? val : 0
        

        Beim SQL-Adapter geht sowas:
        27cefd2d-760f-4f3b-b8bc-4c73823abbf9-image.png
        Keine Ahnung, ob History das auch anbietet.

        1 Reply Last reply Reply Quote 1
        • MartinP
          MartinP @Chris0706 last edited by

          @chris0706 Hast Du schon einmal die beiden Shellys getauscht? Vielleicht hat der Wärmepumpen-Shelly einen Defekt....

          Wird der Wärmepumpenstrom auch am "richtigen" Zähler separat gemessen? Wenn ja - stimmen die Messergebnisse des Shelly überhaupt überein, wenn er in einem Update mal keine -1 liefert?

          Falls am Hauszähler beides summarisch gemessen wird, könnte man zumindest schauen, ob das einigermaßen passt:
          "Hauszähler-Verbrauch" - "Hausstrom-Shelly-Verbrauch" = "Wärmepumpen-Shelly-Verbrauch"

          1 Reply Last reply Reply Quote 0
          • B
            badsnoopy667 @Chris0706 last edited by

            @chris0706 said in Shelly 3EM - negative Werte verhindern:

            Gibt es eine Möglichkeit über eine Objekt-Definition zu verhindern, dass überhaupt negative Werte akzeptiert werden? Wäre mir am liebsten..

            Ja, das geht:

            min_wert.png

            Aber das wird dir glaube ich nicht helfen. Weil 0 ist ja genauso falsch wie -1
            Ich würde einen neuen Datenpunkt anlegen und den per Skript füllen mit:
            Wenn Wert > alter Wert dann füllen, sonst nicht.

            MartinP 1 Reply Last reply Reply Quote 0
            • MartinP
              MartinP @badsnoopy667 last edited by

              @badsnoopy667

              Wenn Wert > alter Wert dann füllen, sonst nicht.

              Geht das im Alias-Adapter?

              Gar nichts in den Alias übertragen.

              B paul53 2 Replies Last reply Reply Quote 0
              • B
                badsnoopy667 @MartinP last edited by

                @martinp
                Das weiß ich nicht, den nutze ich nicht.
                Ich hätte das mit einem Blockly Skript erledigt und den neuen Datenpunkt, sagen wir "Shelly3M_Verbrauch_korrigiert" von Hand angelegt.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @MartinP last edited by

                  @martinp sagte: Gar nichts in den Alias übertragen.

                  Das ist nicht möglich.

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

                    Danke für die Inputs.

                    Die Shellys zu tauschen ist leider ein etwas größerer Akt, deswegen würde ich das gerne vermeiden.
                    Den richtigen Stromverbrauch am Zähler mit dem Shelly zu vergleichen hab ich noch nicht gemacht. Will den Shelly auch garnicht als Zähler verwenden, sondern einfach erfassen an welchen Tagen ich mehr oder weniger verbraucht habe. Die Kalibierung ist mir zu aufwendig.
                    Hausstrom und Wärmepumpen-Strom haben komplett getrennte Zähler, deswegen kann ich es auch nicht gegen rechnen.

                    Das mit dem 'ignoriere Werte kleiner als' in der History hab ich schon probiert, das half nicht. Aber ich teste mal ob es vielleicht was bringt 'Min' im Objekt zu definieren. Was passiert denn wenn hier dann -1 reportet wird? Wir der Wert ignoriert oder wird er zu 0?

                    Den Alias-Adapter muss ich mir mal anschauen. Mein Problem mit einem extra Datenpunkt ist, dass ich dann auch das Shelly Verbrauchs-Historie Skript anpassen müsste, damit er für nur den einen Shelly einen anderen DP für die Auswertung benutzt. Da wollte ich mich eigentlich noch nicht reinfuchsen..

                    B Codierknecht 2 Replies Last reply Reply Quote 0
                    • B
                      badsnoopy667 @Chris0706 last edited by

                      @chris0706 said in Shelly 3EM - negative Werte verhindern:

                      Das mit dem 'ignoriere Werte kleiner als' in der History hab ich schon probiert, das half nicht. Aber ich teste mal ob es vielleicht was bringt 'Min' im Objekt zu definieren. Was passiert denn wenn hier dann -1 reportet wird? Wir der Wert ignoriert oder wird er zu 0?

                      Der Wert wird dann zu 0 gesetzt, daher glaube ich ja nicht, dass das hilf.

                      Den Vergleich sollst Du nicht in der History machen, das bringt nix. Du musst einen neuen Datenpunkt anlegen und den nur befüllen wenn Wert > vorheriger Wert

                      1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @Chris0706 last edited by Codierknecht

                        @chris0706 sagte in Shelly 3EM - negative Werte verhindern:

                        Den Alias-Adapter muss ich mir mal anschauen

                        Nicht den Adapter.
                        Aliase lege ich lediglich im Objektbaum unterhalb von alias.0 an.

                        Mein Problem mit einem extra Datenpunkt ist, dass ich dann auch das Shelly Verbrauchs-Historie Skript anpassen müsste, damit er für nur den einen Shelly einen anderen DP für die Auswertung benutzt. Da wollte ich mich eigentlich noch nicht reinfuchsen#

                        Im SQL-Adapter kann ich eine andere DP mitgeben, mit der geloggt wird. Das kann dann die "alte" ID des Shelly sein. So müsste man im Log nix ändern.

                        MartinP 1 Reply Last reply Reply Quote 0
                        • MartinP
                          MartinP @Codierknecht last edited by

                          Dass die eine Hardware zwischendurch "komische" Werte liefert, während ein baugleiches anderes Exemplar korrekt funktioniert sollte erstmal zu Denken geben ...

                          Von da her würde ich erstmal prüfen, ob die Werte, die der Wärmepumpen-Shelly liefert überhaupt stimmen.

                          Daneben sollte ggfs. auch noch einmal überprüft werden, ob die Installation des WP-Shelly korrekt erfolgt ist. (Stromwandler richtig herum installiert, keine Vertauschungen)

                          Falls das alles schon erfolgt ist, kann man dann als letzte Möglichkeit versuchen, die "faulen Eier" bei den Messwerten auszusortieren ...

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.0k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          5
                          11
                          1517
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo