Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst]Negativwerte nach Shelly-Update

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [gelöst]Negativwerte nach Shelly-Update

    This topic has been deleted. Only users with topic management privileges can see it.
    • crunchip
      crunchip Forum Testing Most Active @RoddiEF last edited by

      @roddief du kannst es auch mit Pauls script und Sourceanalytics laufen lassen.

      du musst nur deinen aktuellen Wert vom shelly in den DP eintragen und danach das script im spoiler starten

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="gRZtH-i=mURhK^M?,:1X">server</variable>
        </variables>
        <block type="comment" id="uGzWd)zM)/9ehtR=6w@!" x="188" y="163">
          <field name="COMMENT">eigener Datenpunkt unter userdata.0</field>
        </block>
        <block type="variables_set" id="@x(~L-HC=|`;sLn-fuL." x="-9" y="193">
          <field name="VAR" id="gRZtH-i=mURhK^M?,:1X">server</field>
          <value name="VALUE">
            <block type="get_value" id="VWuq,%e,mz9NoD!ui9mv">
              <field name="ATTR">val</field>
              <field name="OID">0_userdata.0.Zaehlerstaende.PC-Server</field>
            </block>
          </value>
        </block>
        <block type="comment" id="*W9Rm.v?V[lHbGyAfMi_" x="212" y="238">
          <field name="COMMENT">shelly-Datenpunkt</field>
        </block>
        <block type="on_ext" id="E!u4Rp!Ln;+U|Qe9(G?$" x="-12" y="263">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">gt</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="[;3@^j=J)th6tuoWb1X2">
              <field name="oid">sonoff.0.PC-Server.ENERGY_Total</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="math_change" id="A7N,_:?fL.7q3-1|xUvD">
              <field name="VAR" id="gRZtH-i=mURhK^M?,:1X">server</field>
              <value name="DELTA">
                <shadow type="math_number" id="Ud{I!jDSK(v34J#H.NX7">
                  <field name="NUM">1</field>
                </shadow>
                <block type="math_arithmetic" id=":vgyD5+[DpW$K]9i9H@x">
                  <field name="OP">MINUS</field>
                  <value name="A">
                    <shadow type="math_number" id="SkG4=+,k~pP;bo^qE4L[">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="on_source" id="~z(_7]7l_K/y/lYQ,j3(">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <shadow type="math_number" id="r!_iE9H/Sqc!8fA@Q7#I">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="on_source" id="0cV}CvW)|ww,LHoWWv=T">
                      <field name="ATTR">oldState.val</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="update" id="usej.;,e}*IG(bpPvt++">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Zaehlerstaende.PC-Server</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="variables_get" id="5zy7ap0eqw4|yHXHs.:|">
                      <field name="VAR" id="gRZtH-i=mURhK^M?,:1X">server</field>
                    </block>
                  </value>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      

      anschliessend loggst den DP unter userdata.0 anstatt den original DP vom shelly

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

        So hier ein kleines Update: Mit einem Script (Orginal) hat es jetzt Funktioniert.
        Die Werte Heute/Gestern werden geschrieben. (siehe Screenshot)
        Habe das Script per Copy kopiert (beide Scripts liegen im common Ordner) und aus:

        var shelly_dp = "shelly.0"; (Orginal)
        ein  var shelly_dp = "shelly.1"; gemacht.
        

        Die fehlenden Datenpunkte/Shellys wurden auch angelegt. Jetzt warte ich mal ab was heute nach 0:00 Uhr passiert, ob jetzt die anderen Werte (Heute/Gestern) von den hinzugefügten auch geschrieben werden.

        Update dann Morgen was passiert ist.

        JetztWerte.JPG

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

          Schluss Update:
          Leider hat es nicht Funktioniert wie ich gedacht hatte. Werte wurden nicht geschrieben.
          Nachdem ich nun Tage damit verbracht habe zu Experimentieren, hab ich wohl eine Lösung gefunden die Funktioniert.
          Hier die Original Einstellung (bei mir die Shellys mit CoIoT):

          var datenpunkt = "ShellyVerbrauch_0.";
          var shelly_dp = "shelly.0"
          

          Wenn man bei beiden "0" eine "1" daraus macht wie hier:

          var datenpunkt = "ShellyVerbrauch_1."
          var shelly_dp = "shelly.1";
          

          dann werden Werte für Heute/Gestern auch geschrieben.
          Der Unterschied der es aus macht ist der, das die zweiten Werte (bei mir für Shellys mit MQTT) in ein extra Ordner geschrieben werden und nicht in den selben wie für CoIoT.
          dieOrdner.JPG
          passt jetzt.JPG
          P.S. Wenn jemand so Freundlich wäre und mir den Erledigt-Button zeigen würde dann würde ich es als erledigt makieren.

          da_Woody 1 Reply Last reply Reply Quote 0
          • da_Woody
            da_Woody @RoddiEF last edited by

            @roddief sagte in Negativwerte nach Shelly-Update:

            P.S. Wenn jemand so Freundlich wäre und mir den Erledigt-Button zeigen würde dann würde ich es als erledigt makieren.

            einfach deinen ersten post editieren...

            RoddiEF 1 Reply Last reply Reply Quote 0
            • RoddiEF
              RoddiEF @da_Woody last edited by

              @da_woody sagte in Negativwerte nach Shelly-Update:

              @roddief sagte in Negativwerte nach Shelly-Update:

              P.S. Wenn jemand so Freundlich wäre und mir den Erledigt-Button zeigen würde dann würde ich es als erledigt makieren.

              einfach deinen ersten post editieren...

              Hatte ich versucht, nur es gibt keinen Punkt wo ich das als gelöst markieren könnte.
              Der Link brachte mich auch nicht weiter. Ich kann den nur Editieren, mehr nicht. Deshalb ja auch meine Frage wie?
              Kein Button.JPG

              DJMarc75 1 Reply Last reply Reply Quote 0
              • DJMarc75
                DJMarc75 @RoddiEF last edited by DJMarc75

                @roddief Bearbeiten auswählen und im TITEL ein [gelöst] voranstellen.

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

                  @paul53 sagte in [gelöst]Negativwerte nach Shelly-Update:

                  @crunchip sagte: script was dieses Problem zuverlässig abfängt

                  Dafür genügt auch ein eigener Datenpunkt für die kumulative Energie (Zählerstand), der von Sourceanalytix ausgewertet wird und ein einfaches Skript:

                  Bild_2023-01-13_132257117.png

                  @paul53 ich hätte da bitte eine Verständnisfrage:

                  Das Script tut super was es machen soll, danke paul53. Ich fürchte nur, bei einem reset des Shelly Zählerstand bei einem Stromausfall funktioniert es nicht, oder täusche ich mich.

                  Wenn am 1.1. um 11:00 der Zählerstand 1000 ist und danach der Zähler auf 0 gesetzt wird, dann wird ja nix mehr aufsummiert und der anglegte Zählerstand
                  dbb438d9-1dbe-44e2-b6b7-786d784903e9-image.png
                  bleibt bei 1000 bis der Shellyzählerstand (sagen wir) am 2.1. um 11:00 wieder > 1000 ist.

                  Habe ich da einen Denkfehler?

                  LG, mxa

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

                    @metaxa sagte: Habe ich da einen Denkfehler?

                    Ja: Wenn auf 0 zurück gestellt wird, geht es mit Werten > 0 ansteigend weiter, so dass im eigenen Datenpunkt weiter gezählt wird.

                    metaxa 1 Reply Last reply Reply Quote 1
                    • metaxa
                      metaxa @paul53 last edited by metaxa

                      @paul53 sagte in [gelöst]Negativwerte nach Shelly-Update:

                      Ja: Wenn auf 0 zurück gestellt wird, geht es mit Werten > 0 ansteigend weiter, so dass im eigenen Datenpunkt weiter gezählt wird.

                      7fda3854-c691-4f5b-88d1-ade73c731cad-image.png

                      Lieben Dank @paul53 !

                      Könnte man diese Logik in einem Alias "Read" oder "Write" Bauteil auch unterbringen, oder ist ein Script dafür unumgänglich?

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

                        @metaxa sagte: ist ein Script dafür unumgänglich?

                        Ja, im Alias hat man "vorheriger Wert" nicht zur Verfügung.

                        1 Reply Last reply Reply Quote 1
                        • rantanplan
                          rantanplan @paul53 last edited by

                          @paul53 Hallo paul53

                          Ich habe Dein Script etwas angepasst.
                          Du initialisierst die lokale Variable immer mit dem aktuellen Wert vom Shelly.
                          Wenn der Shelly mal resettet wurde und das Script neu gestartet wird kann es einem den alten Wert versemmeln.
                          Ich habe es nun so gelöst:
                          Shelly.png

                          Das klappt bei mir einwandfrei. (habe etliche Tests gemacht)
                          Auch das Umstellen läuft kinderleicht.

                          Datenpunkt anlegen
                          Blockly erstellen und starten
                          Datenpunkt beobachten ob alles richtig ist
                          Im Alias den CONSUMPTION auf den eigenen Datenpunkt setzen und fertig.
                          SA läuft sauber weiter und alle Werte stimmen.

                          Grüße

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          1.0k
                          Online

                          31.6k
                          Users

                          79.4k
                          Topics

                          1.3m
                          Posts

                          negativwerte script shelly sourceanalytix
                          8
                          33
                          1729
                          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