Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Smartmeter-Leistung mit S0 impulse per Skript auswerten

    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

    Smartmeter-Leistung mit S0 impulse per Skript auswerten

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Andy 1 @Andy 1 last edited by

      Noch folgende Anmerkungen:

      • ich bekomme keine Fehler im Protokoll bzw. Skriptlog
        firefox_wF1wKDRmnQ.png

      ShareX_FvI1TnTX5s.png

      • Zur grafischen Auswertung nutze ich Grafana. Die Berechnung (wenn nicht per Skript möglich) könnte auch dort passieren

      • ich weiß, dass es das Volkszähler-Projekt gibt und habe dadurch auch schon S0-Impulse erfolgreich auslesen können, bevorzuge aber eine iobroker-Lösung, da iobroker auch schon für andere Sachen läuft und ich nicht noch zusätzlich eine Instanz dazwischen schalten möchte.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Andy 1 last edited by

        @andy-1 Hab jetzt nicht alles durchgelesen, aber:

        • um Meldungen zu bekommen solltest du sinnvolle debug-Bausteine an den interessanten Stellen deines Skripts setzen um zu sehen wo es hängt.
        • bei eigenen Datenpunkten reicht ein aktualisiere, statt steuere
        • du kannst die Zeit zwischen den Änderungen zum berechnen nutzen.
          • Die dazu notwendigen Timestamps bekommst du aus dem selben Baustein unter Trigger, aus dem Wert stammt
          • Da ist doch dein Wert her, und keine eigene Variable? - wenn doch, so ist Wert eine reservierte Bezeichnung, dann musst du deine Variable umbenennen
        A 1 Reply Last reply Reply Quote 0
        • A
          Andy 1 @Homoran last edited by

          @homoran Danke Homoran für die Antwort,

          also diesen Schlater sozusagen von Wert auf Zeitstempel umsetzen?
          firefox_V4xR2ocz6W.png

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

            @andy-1
            "GPIO 4" ist der S0-Impuls?
            Werden alle Impulse übertragen?

            Damit nur auf eine Flanke des Impulses getriggert wird, ändere den Trigger auf "ist größer als letztes".

            Bild_2022-04-22_135119351.png

            letzte Änderung findet man unter "Trigger".

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

              @paul53

              Danke Paul53,

              das habe ich gemacht und es kommen keine Werte an, er steht immer noch bei "0"
              2f6096d5-57f0-4e9c-9fb0-b28b454ca20c-grafik.png

              Ich hatte vorher auch schon mal diesen Schalter auf "ist wahr" gesetzt, da er bei einem (Licht)impuls den Zustand im Iobroker von "false" auf "true" ändert. Hat aber auch nichts gebracht
              f4aa1e39-d704-4c32-b9ac-d70310e86a2b-grafik.png

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Andy 1 last edited by

                @andy-1 sagte in Smartmeter-Leistung mit S0 impulse per Skript auswerten:

                das habe ich gemacht und es kommen keine Werte an, er steht immer noch bei "0"

                aber dein aktueller Screenshot sieht nicht aus wie der von @paul53

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

                  @andy-1 sagte: er steht immer noch bei "0"

                  Du verwendest auch die absolute Zeit seit 1.1.1970 und nicht die Zeitdifferenz zwischen zwei Impulsen. Mein Vorschlag oben zeigt, wie es geht.

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

                    @paul53

                    Ah sorry, ich habe nicht gesehen, dass es dein eigenes Setup ist. Ich dachte es wäre meins mit deinem Beschriebenen Vorschlag 🙂

                    Hast du das Ganze als Skript? Ich habe das noch nie gemacht und würde ewig brauchen das so hinzubekommen...ganz zu schweigen von der Fehleranfälligkeit 😕

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

                      @andy-1 sagte: Hast du das Ganze als Skript?

                      Die IDs müssen noch zugewiesen / korrigiert werden.

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <variables>
                         <variable id="7+]cFH7^*L%5[#m{O4o_">vorherigerPuls</variable>
                         <variable id="vsT?p{-~JH,*)%[(h7nW">leistung</variable>
                       </variables>
                       <block type="variables_set" id=")dln,TiE^U:Mv_m$=.)i" x="13" y="-38">
                         <field name="VAR" id="7+]cFH7^*L%5[#m{O4o_">vorherigerPuls</field>
                         <value name="VALUE">
                           <block type="get_value" id="{#^T6-0Ws0C9@$-w9S0z">
                             <field name="ATTR">lc</field>
                             <field name="OID">ID auswählen</field>
                           </block>
                         </value>
                         <next>
                           <block type="on_ext" id="Oro(%HB3p/}{[q=Eljwl">
                             <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="CTc7`cnO8v]t0NHxjCO)">
                                 <field name="oid">default</field>
                               </shadow>
                             </value>
                             <statement name="STATEMENT">
                               <block type="variables_set" id="e9.#iL0.ELCs[Wu_rPvG">
                                 <field name="VAR" id="vsT?p{-~JH,*)%[(h7nW">leistung</field>
                                 <value name="VALUE">
                                   <block type="math_arithmetic" id="EKRkNu-`e;?XZp~)RG}M">
                                     <field name="OP">DIVIDE</field>
                                     <value name="A">
                                       <shadow type="math_number" id="fuYcTR[bdzQfn,mXXO2E">
                                         <field name="NUM">3600000</field>
                                       </shadow>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="{pt{u8eoUX[Y53$B]a=a">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="math_arithmetic" id="+Vae]Y^md8ch)wqFoB45">
                                         <field name="OP">MINUS</field>
                                         <value name="A">
                                           <shadow type="math_number" id="Ijy@`#fw{tC;5Kg3S=rB">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="on_source" id="D|xBp^4L1+NB[)=QfuBp">
                                             <field name="ATTR">state.lc</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="ubz;[q+fJ}9YI|xhd/b}">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="variables_get" id="0^M;*e9$;b4vphyRmt:h">
                                             <field name="VAR" id="7+]cFH7^*L%5[#m{O4o_">vorherigerPuls</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="update" id="f?jF@,lHbz6o~AMw2s=x">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">0_userdata.0.Blockly.powerW</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="math_round" id="miRdpH,F)iJw.TyQ4@dE">
                                         <field name="OP">ROUND</field>
                                         <value name="NUM">
                                           <shadow type="math_number" id="dBmatg~(%-2,9t%[SzXv">
                                             <field name="NUM">3.1</field>
                                           </shadow>
                                           <block type="variables_get" id="#8:k*ssP.vT:7s%#OGI=">
                                             <field name="VAR" id="vsT?p{-~JH,*)%[(h7nW">leistung</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="DG7|*l]|JXfX)5Z@9,*X">
                                         <field name="VAR" id="7+]cFH7^*L%5[#m{O4o_">vorherigerPuls</field>
                                         <value name="VALUE">
                                           <block type="on_source" id="A`mia%.{7Y*3k?AV,6fb">
                                             <field name="ATTR">state.lc</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                      </xml>
                      

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

                        @paul53

                        Danke!! muss bei jeder Objekt ID der GPIO eingesetzt werden?
                        c8f2584e-a433-4b2c-98d6-aa6b768f5b68-grafik.png

                        paul53 A 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @Andy 1 last edited by

                          @andy-1 sagte: muss bei jeder Objekt ID der GPIO eingesetzt werden?

                          Nein, bei "aktualisiere" muss der Datenpunkt mit dem Leistungswert zugewiesen werden.

                          1 Reply Last reply Reply Quote 1
                          • A
                            Andy 1 @Andy 1 last edited by

                            @andy-1

                            Sorry, hatte noch die Ausgabe vergessen. So sieht es jetzt aus:
                            b91d45dd-9f3f-4898-9c2a-a39a2b0eef23-grafik.png

                            Werte kommen rein:
                            fb05d297-517f-4954-9780-9e225773d261-grafik.png

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              Andy 1 @Andy 1 last edited by

                              @andy-1

                              ich prüfe gleich mal mit der Anzeige am SmartMeter ab..

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                Andy 1 @Andy 1 last edited by

                                @andy-1

                                SUPER!! Stimmt exact überein!!

                                Vielen vielen Dank!!!

                                Das hat mich viel Zeit, Geld und nerven gespaart 🙂

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  Andy 1 @Andy 1 last edited by

                                  Nohc eine Frage: Wo kann ich den Wert für 1000 Impulse pro kWh ändern?

                                  Ich möchte ihn auch an anderen SmartMetern einsetzen und da ist oft ein abweichendes Verhältnis von Impuls zu kWh

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

                                    @andy-1 sagte: Wo kann ich den Wert für 1000 Impulse pro kWh ändern?

                                    In dem Faktor (mWs / Impuls): 1000 Impulse / kWh = 1 Impuls / Wh = 1 Impuls / 3600000 mWs

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

                                      @paul53

                                      Ah okay, das macht sinn. Ich hab es mal als als Mathematisches Element "aufgesplittet". Ist das so korrekt?
                                      8a21dd77-73f3-4613-8d97-6147f3901acf-grafik.png

                                      Hier der vorher-nachher-Vergleich in XML-Form:
                                      3e2323bb-058c-4315-ae48-57512cdb6f4d-grafik.png

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

                                        @andy-1 sagte: Ist das so korrekt?

                                        Nein. Wenn man mit Impulsen / kWh rechnet, muss man durch diesen Wert dividieren. 1 kWh = 3600000000 mWs.

                                        Bild_2022-04-22_222349673.png

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

                                          @paul53 said in Smartmeter-Leistung mit S0 impulse per Skript auswerten:

                                          00000000

                                          super! Danke 🙂

                                          Mir ist noch aufgefallen, dass bei dir die eine ObjektID auf "default" steht. Ich hatte da auch GPIO4 ausgewählt.
                                          2089e77a-61c2-4945-b46a-ab3da53ed192-grafik.png

                                          Ist das "schlimm"?
                                          Ich kann sie leider in der Objektliste nicht finden, um es genauso hinzubekommen, wie du es hast.

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

                                            @andy-1 sagte: Ich hatte da auch GPIO4 ausgewählt.

                                            Das muss auch so sein. Ich habe keinen Datenpunkt mit dem Namen "GPIO 4" und deshalb nichts zugewiesen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            556
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            23
                                            622
                                            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