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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [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 und das script ist sicher korrekt?
      am Ende der scripte steht dieses?

      // Erster Start und Initialisierung
      shelly_verbrauch_erster_start();
      
      // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
      schedule('*/15 * * * *', shelly_verbrauch_update);
      
      // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
      schedule('0 0 * * *', shelly_vebrauch_tag);
      
      RoddiEF 1 Reply Last reply Reply Quote 0
      • RoddiEF
        RoddiEF @crunchip last edited by RoddiEF

        @crunchip sagte in Negativwerte nach Shelly-Update:

        @roddief und das script ist sicher korrekt?
        am Ende der scripte steht dieses?

        // Erster Start und Initialisierung
        shelly_verbrauch_erster_start();
        
        // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
        schedule('*/15 * * * *', shelly_verbrauch_update);
        
        // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
        schedule('0 0 * * *', shelly_vebrauch_tag);
        

        Ja ist alles vorhanden. Hab alles mal verglichen, hätte ja sein können das beim Kopieren was verloren gegangen ist.
        War aber nicht der Fall, ist alles vorhanden, deshalb verstehe ich das auch nicht so wirklich.
        Die Werte werden ja geschrieben/aktualisiert nur halt für den vergangenen Tag halt nicht, was ja um 0:00Uhr passieren sollte.

        1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @RoddiEF last edited by

          @roddief sagte in Negativwerte nach Shelly-Update:

          Im Log steht folgendes:

          und in der Nacht ?

          kommt etwas wenn du das script neu startest?

          ansonsten bin ich da auch überfragt, entweder mal löschen und neu anlegen oder nur mal ein script laufen lassen.
          Seltsam das es in beiden Scripten zum selben Problem führt.(oder doch Kopie Fehler) eventuell neu rein kopieren

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

            @crunchip sagte in Negativwerte nach Shelly-Update:

            @roddief sagte in Negativwerte nach Shelly-Update:

            Im Log steht folgendes:

            und in der Nacht ?

            kommt etwas wenn du das script neu startest?

            ansonsten bin ich da auch überfragt, entweder mal löschen und neu anlegen oder nur mal ein script laufen lassen.
            Seltsam das es in beiden Scripten zum selben Problem führt.(oder doch Kopie Fehler) eventuell neu rein kopieren

            Ich werde alles mal Löschen, neu anlegen und nur ein Script laufen lassen.
            Wenn das eine Funktioniert werde ich das zweite aktivieren.
            Da das aber dann erst in der Nacht passiert (Verbrauch Gestern/Heute), werde ich morgen berichten.
            So einmal neu Angelegt, hier mal der Log nach dem ersten Start:

            javascript.0
            2023-01-15 16:30:00.023	info	script.js.common.Shelly-CoAP: Shelly Verbrauch: Verbrauchswerte aktualisiert: 6 | Reboots korrigiert: 0 | Unveränderte Werte: 7
            javascript.0
            2023-01-15 16:25:50.514	info	script.js.common.Shelly-CoAP: Shelly Verbrauch: Verbrauchswerte aktualisiert: 0 | Reboots korrigiert: 0 | Unveränderte Werte: 13
            javascript.0
            2023-01-15 16:25:20.557	info	script.js.common.Shelly-CoAP: registered 0 subscriptions, 2 schedules, 0 messages, 0 logs and 0 file subscriptions
            javascript.0
            2023-01-15 16:25:20.503	info	script.js.common.Shelly-CoAP: Shelly Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 30 Sekunden zur Verfügung! Anzahl gefundener Shelly Datenpunkte: 13
            javascript.0
            2023-01-15 16:25:20.499	info	script.js.common.Shelly-CoAP: Shelly Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!
            javascript.0
            2023-01-15 16:25:20.432	info	Start javascript script.js.common.Shelly-CoAP
            
            crunchip 1 Reply Last reply Reply Quote 0
            • 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

                                  596
                                  Online

                                  31.9k
                                  Users

                                  80.2k
                                  Topics

                                  1.3m
                                  Posts

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