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.
    • 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
                                          • A
                                            Andy 1 @paul53 last edited by

                                            @paul53

                                            danke! Dann stimmt jetzt alles, vielen vielen Dank für eure Hilfe!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            739
                                            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