Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Idee zum ablesen des Stromzählers.

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    678

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Idee zum ablesen des Stromzählers.

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
mqttstromzähler auslesen
12 Beiträge 3 Kommentatoren 718 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @jmeister79 sagte:

    //MQTT schickt alle 60s einen Zählerstand,

    Was genau beinhaltet der Datenpunkt "mqtt.0.Stromzaehler.Zaehlerdiode.Total" (History-Tabelle) ?

    @jmeister79 sagte in Idee zum ablesen des Stromzählers.:

    setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/Arbeitsvariable/, temp);

    Keine eigenen Datenpunkte unter "fremdem" Namensraum ("mqtt.0") verwenden !

    jmeister79J Offline
    jmeister79J Offline
    jmeister79
    schrieb am zuletzt editiert von
    #3

    @paul53 Total wird noch nicht aufgezeichnet. Habe das jetzt mal gemacht und melde mich dann.

    Ich habe den Eindruck, dass in Abhänigkeit von der Geschwindigkeit ab und an Drehungen verschluckt werden.

    So ein verhalten kenne ich von Gyros wenn man versucht Lagen aufgrund von Differenzen zu berechnen.
    Da braucht man dafür einen Beschleunigungssensor um Absolutwerte zu berechnen.

    Den richtigen Zählerstand kann ich nicht erfassen da ich n Zähler von 1800 habe.
    Würde auch gerne meinen Gaszähler ablesen, da stehe ich vor dem selben Problem.

    Nils

    paul53P 1 Antwort Letzte Antwort
    0
    • jmeister79J jmeister79

      Halli Hallo,
      ich nutze einen MQTT Adapter um meinen Ferraris Zähler abzufragen bin aber nicht ganz zufrieden mit dem Ergebnis.

      Die Tatsächliche kWH und die gezählten driften mit der Zeit sehr auseinander und ich kriege es nicht wirklich hin.
      Die Erfassung des Striches ist m.E. nach in Ordnung.

      Letztendlich fehlt eine Überprüfung auf den tatsächlichen Wert. Hat jemand sowas schonmal mit OCR via Webcam versucht?

      Ansonsten anbei mein Code für evtl. Zerfetzen:

      createState("javascript.0.EnergyCounter.Zaehlerstand", 0.0, {name: "Zaehlerstand Stromzähler", type: 'number', unit: 'kWh'});
      
      on({id: 'mqtt.0.Stromzaehler.Zaehlerdiode.Total', change: "ne"}, function (obj) {
      
          //MQTT schickt alle 60s einen Zählerstand, je anchdem wie oft die scheibe gedreht hat ist das mehr oder weniger 
          //2 Impulse sind eine Umdrehung. bei 1kWh/120U muss ich 240 Impulse haben bis ich eine kWh hochzähle
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        var diff = 205;
        if (getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val < diff) {
          setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/*Arbeitsvariable*/, (getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val + getState("mqtt.0.Stromzaehler.Zaehlerdiode.Count").val));
        } else {
          var temp = getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val + getState("mqtt.0.Stromzaehler.Zaehlerdiode.Count").val; // unbedignt nochmal aufaddieren
          var howMany = Math.floor(temp/diff);  // so oft ist er schon über 240 gelaufen\
          temp = temp % diff;   //rest
          setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/*Arbeitsvariable*/, temp);
          setState("mqtt.0.Stromzaehler.Zaehlerdiode.Zaehlerstand"/*Zaehlerstand*/, (parseFloat(getState("mqtt.0.Stromzaehler.Zaehlerdiode.Zaehlerstand").val) + howMany));
        }
      //alternative berechnungsformel
      
      // dritter versuch, jedesmal wenn er größer als letztes erkennt, dann muss ich nicht auf 240 warten, jeder durchgang wird nur einmal erkannt
        
          var counter = 210* getState("javascript.0.EnergyCounter.Zaehlerstand").val;
          counter = counter+getState("mqtt.0.Stromzaehler.Zaehlerdiode.Count").val;
          var zaehlervalue = Math.round(100*counter/210)/100;
      
          setState("javascript.0.EnergyCounter.Zaehlerstand", (parseFloat(zaehlervalue)));
      });
      

      LG
      Nils

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #4

      @jmeister79
      Es gab schon mal einen Vorschlag: Einfach die Impulse zählen.

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="b?sP!eLU8R[m;e1E!]}:">zaehler</variable>
       </variables>
       <block type="variables_set" id="}{bk!ZEe2lfP;?Bi9J:*" x="62" y="37">
         <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
         <value name="VALUE">
           <block type="math_arithmetic" id="DX[`4M8Phef;?t%`Aw*o">
             <field name="OP">MULTIPLY</field>
             <value name="A">
               <shadow type="math_number" id="a(U^tWWHNbkkB(})ElC.">
                 <field name="NUM">120</field>
               </shadow>
             </value>
             <value name="B">
               <shadow type="math_number" id="b:]?^c,h}^3r[%CNOxcz">
                 <field name="NUM">1</field>
               </shadow>
               <block type="get_value" id="#^$Wxrs*b)9XSWCFX#!j">
                 <field name="ATTR">val</field>
                 <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="comment" id="/1!9gj-b?qdn,_`EvyJy">
             <field name="COMMENT">120 Zählimpulse / kWh</field>
             <next>
               <block type="on_ext" id="@I`y^)e9;Pf3JVeYk*[+">
                 <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="Sc$t7j^Yj1-(VfBj|vu_">
                     <field name="oid">default</field>
                   </shadow>
                 </value>
                 <statement name="STATEMENT">
                   <block type="math_change" id="V%CoR.Qwx9Zfqv2MfQ$p">
                     <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                     <value name="DELTA">
                       <shadow type="math_number" id="P51nz@|0;T$Sn0JCo61Y">
                         <field name="NUM">1</field>
                       </shadow>
                     </value>
                     <next>
                       <block type="update" id="#~i7UOh((^dAb22T+.t_">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                         <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="math_rndfixed" id="*#^aguW_V@]XEDT`M=Sb">
                             <field name="n">2</field>
                             <value name="x">
                               <shadow type="math_number" id="WJcmAXN*0Yod#;6!kdC|">
                                 <field name="NUM">3.1234</field>
                               </shadow>
                               <block type="math_arithmetic" id="-^^1+c-.Cq(E_t4?6!mM">
                                 <field name="OP">DIVIDE</field>
                                 <value name="A">
                                   <shadow type="math_number" id="}VYUz#+6K9`+%KpuPINd">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="variables_get" id="v;@E70f3]?OSr?m-11Bd">
                                     <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow type="math_number" id="v5rj*k+J`:;LMOu|t4Hv">
                                     <field name="NUM">120</field>
                                   </shadow>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      TheBamT 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @jmeister79
        Es gab schon mal einen Vorschlag: Einfach die Impulse zählen.

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="b?sP!eLU8R[m;e1E!]}:">zaehler</variable>
         </variables>
         <block type="variables_set" id="}{bk!ZEe2lfP;?Bi9J:*" x="62" y="37">
           <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
           <value name="VALUE">
             <block type="math_arithmetic" id="DX[`4M8Phef;?t%`Aw*o">
               <field name="OP">MULTIPLY</field>
               <value name="A">
                 <shadow type="math_number" id="a(U^tWWHNbkkB(})ElC.">
                   <field name="NUM">120</field>
                 </shadow>
               </value>
               <value name="B">
                 <shadow type="math_number" id="b:]?^c,h}^3r[%CNOxcz">
                   <field name="NUM">1</field>
                 </shadow>
                 <block type="get_value" id="#^$Wxrs*b)9XSWCFX#!j">
                   <field name="ATTR">val</field>
                   <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                 </block>
               </value>
             </block>
           </value>
           <next>
             <block type="comment" id="/1!9gj-b?qdn,_`EvyJy">
               <field name="COMMENT">120 Zählimpulse / kWh</field>
               <next>
                 <block type="on_ext" id="@I`y^)e9;Pf3JVeYk*[+">
                   <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="Sc$t7j^Yj1-(VfBj|vu_">
                       <field name="oid">default</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="math_change" id="V%CoR.Qwx9Zfqv2MfQ$p">
                       <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                       <value name="DELTA">
                         <shadow type="math_number" id="P51nz@|0;T$Sn0JCo61Y">
                           <field name="NUM">1</field>
                         </shadow>
                       </value>
                       <next>
                         <block type="update" id="#~i7UOh((^dAb22T+.t_">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="math_rndfixed" id="*#^aguW_V@]XEDT`M=Sb">
                               <field name="n">2</field>
                               <value name="x">
                                 <shadow type="math_number" id="WJcmAXN*0Yod#;6!kdC|">
                                   <field name="NUM">3.1234</field>
                                 </shadow>
                                 <block type="math_arithmetic" id="-^^1+c-.Cq(E_t4?6!mM">
                                   <field name="OP">DIVIDE</field>
                                   <value name="A">
                                     <shadow type="math_number" id="}VYUz#+6K9`+%KpuPINd">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="variables_get" id="v;@E70f3]?OSr?m-11Bd">
                                       <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number" id="v5rj*k+J`:;LMOu|t4Hv">
                                       <field name="NUM">120</field>
                                     </shadow>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        TheBamT Offline
        TheBamT Offline
        TheBam
        schrieb am zuletzt editiert von
        #5

        Hallo schaut euch mal diesen Post an.

        Damit kann man nicht nur Wasser zähler auch elektro und Gas ablesen.

        https://forum.iobroker.net/topic/36622/wasserzähler-version-2-all-in-device/141

        jmeister79J 1 Antwort Letzte Antwort
        0
        • jmeister79J jmeister79

          @paul53 Total wird noch nicht aufgezeichnet. Habe das jetzt mal gemacht und melde mich dann.

          Ich habe den Eindruck, dass in Abhänigkeit von der Geschwindigkeit ab und an Drehungen verschluckt werden.

          So ein verhalten kenne ich von Gyros wenn man versucht Lagen aufgrund von Differenzen zu berechnen.
          Da braucht man dafür einen Beschleunigungssensor um Absolutwerte zu berechnen.

          Den richtigen Zählerstand kann ich nicht erfassen da ich n Zähler von 1800 habe.
          Würde auch gerne meinen Gaszähler ablesen, da stehe ich vor dem selben Problem.

          Nils

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          @jmeister79
          Kann es sein, dass nicht jeder Impuls gesendet wird, sondern die Zahl der Impulse (x 2) innerhalb des Sendezyklus (60 s) ? Dann muss man auf "wurde aktualisiert" triggern, da die Zahl der Impulse von Zyklus zu Zyklus gleich bleiben kann (wenn die Leistung konstant ist). Das Blockly dazu sollte dann so funktionieren:

          Blockly_temp.JPG

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="b?sP!eLU8R[m;e1E!]}:">zaehler</variable>
           </variables>
           <block type="variables_set" id="}{bk!ZEe2lfP;?Bi9J:*" x="62" y="37">
             <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
             <value name="VALUE">
               <block type="math_arithmetic" id="DX[`4M8Phef;?t%`Aw*o">
                 <field name="OP">MULTIPLY</field>
                 <value name="A">
                   <shadow type="math_number" id="a(U^tWWHNbkkB(})ElC.">
                     <field name="NUM">240</field>
                   </shadow>
                 </value>
                 <value name="B">
                   <shadow type="math_number" id="b:]?^c,h}^3r[%CNOxcz">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="#^$Wxrs*b)9XSWCFX#!j">
                     <field name="ATTR">val</field>
                     <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="comment" id="/1!9gj-b?qdn,_`EvyJy">
                 <field name="COMMENT">count (2 Impulse) pro Zyklus</field>
                 <next>
                   <block type="on_ext" id="@I`y^)e9;Pf3JVeYk*[+">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                     <field name="CONDITION">any</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="Sc$t7j^Yj1-(VfBj|vu_">
                         <field name="oid">default</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="math_change" id="V%CoR.Qwx9Zfqv2MfQ$p">
                         <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                         <value name="DELTA">
                           <shadow type="math_number" id="P51nz@|0;T$Sn0JCo61Y">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="on_source" id="JiW9c=mSn![QI/)lvwtb">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <next>
                           <block type="update" id="#~i7UOh((^dAb22T+.t_">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="math_rndfixed" id="*#^aguW_V@]XEDT`M=Sb">
                                 <field name="n">2</field>
                                 <value name="x">
                                   <shadow type="math_number" id="WJcmAXN*0Yod#;6!kdC|">
                                     <field name="NUM">3.1234</field>
                                   </shadow>
                                   <block type="math_arithmetic" id="-^^1+c-.Cq(E_t4?6!mM">
                                     <field name="OP">DIVIDE</field>
                                     <value name="A">
                                       <shadow type="math_number" id="}VYUz#+6K9`+%KpuPINd">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="v;@E70f3]?OSr?m-11Bd">
                                         <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="v5rj*k+J`:;LMOu|t4Hv">
                                         <field name="NUM">240</field>
                                       </shadow>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
             </next>
           </block>
          </xml>
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          jmeister79J 1 Antwort Letzte Antwort
          0
          • TheBamT TheBam

            Hallo schaut euch mal diesen Post an.

            Damit kann man nicht nur Wasser zähler auch elektro und Gas ablesen.

            https://forum.iobroker.net/topic/36622/wasserzähler-version-2-all-in-device/141

            jmeister79J Offline
            jmeister79J Offline
            jmeister79
            schrieb am zuletzt editiert von
            #7

            @ThaBam das ist n krasses ding. danke

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @jmeister79 sagte:

              //MQTT schickt alle 60s einen Zählerstand,

              Was genau beinhaltet der Datenpunkt "mqtt.0.Stromzaehler.Zaehlerdiode.Total" (History-Tabelle) ?

              @jmeister79 sagte in Idee zum ablesen des Stromzählers.:

              setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/Arbeitsvariable/, temp);

              Keine eigenen Datenpunkte unter "fremdem" Namensraum ("mqtt.0") verwenden !

              jmeister79J Offline
              jmeister79J Offline
              jmeister79
              schrieb am zuletzt editiert von
              #8

              @paul53 hier jetzt einmal die Wertetabelle des letzten Tages von mqtt.0.Stromzaehler.Zaehlerdiode.Count:

              6	true		2020-09-29 09:47:28.456	
              7	true		2020-09-29 09:46:28.396	
              7	true		2020-09-29 09:44:29.069	
              6	true		2020-09-29 09:43:28.210	
              6	true		2020-09-29 09:42:28.149	
              5	true		2020-09-29 09:41:27.976	
              6	true		2020-09-29 09:40:27.915	
              5	true		2020-09-29 09:39:27.856	
              5	true		2020-09-29 09:38:27.811	
              6	true		2020-09-29 09:37:27.732	
              5	true		2020-09-29 09:36:27.650	
              5	true		2020-09-29 09:33:27.466	
              4	true		2020-09-29 09:32:27.403	
              5	true		2020-09-29 09:31:27.343	
              5	true		2020-09-29 09:29:27.224	
              4	true		2020-09-29 09:28:27.164	
              5	true		2020-09-29 09:27:27.098	
              5	true		2020-09-29 09:25:27.004	
              6	true		2020-09-29 09:24:26.919	
              6	true		2020-09-29 09:22:26.798	
              7	true		2020-09-29 09:21:26.731	
              6	true		2020-09-29 09:20:27.408	
              7	true		2020-09-29 09:19:26.612	
              7	true		2020-09-29 09:17:26.492	
              6	true		2020-09-29 09:16:26.431	
              7	true		2020-09-29 09:15:26.372	
              7	true		2020-09-29 09:14:26.338	
              6	true		2020-09-29 09:13:27.892	
              7	true		2020-09-29 09:12:27.239	
              6	true		2020-09-29 09:11:26.132	
              6	true		2020-09-29 09:09:26.011	
              5	true		2020-09-29 09:08:28.776	
              6	true		2020-09-29 09:07:29.121	
              6	true		2020-09-29 09:06:25.831	
              5	true		2020-09-29 09:05:25.833	
              5	true		2020-09-29 08:57:25.257	
              4	true		2020-09-29 08:56:25.195	
              5	true		2020-09-29 08:55:25.157	
              5	true		2020-09-29 08:50:24.833	
              4	true		2020-09-29 08:49:24.774	
              5	true		2020-09-29 08:48:25.479	
              6	true		2020-09-29 08:47:24.652	
              5	true		2020-09-29 08:46:24.630	
              5	true		2020-09-29 08:35:23.913	
              6	true		2020-09-29 08:34:23.853	
              5	true		2020-09-29 08:33:23.793	
              5	true		2020-09-29 08:26:23.353	
              7	true		2020-09-29 08:25:23.285	
              6	true		2020-09-29 08:24:23.224	
              7	true		2020-09-29 08:23:23.161
              
              1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @jmeister79
                Kann es sein, dass nicht jeder Impuls gesendet wird, sondern die Zahl der Impulse (x 2) innerhalb des Sendezyklus (60 s) ? Dann muss man auf "wurde aktualisiert" triggern, da die Zahl der Impulse von Zyklus zu Zyklus gleich bleiben kann (wenn die Leistung konstant ist). Das Blockly dazu sollte dann so funktionieren:

                Blockly_temp.JPG

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="b?sP!eLU8R[m;e1E!]}:">zaehler</variable>
                 </variables>
                 <block type="variables_set" id="}{bk!ZEe2lfP;?Bi9J:*" x="62" y="37">
                   <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                   <value name="VALUE">
                     <block type="math_arithmetic" id="DX[`4M8Phef;?t%`Aw*o">
                       <field name="OP">MULTIPLY</field>
                       <value name="A">
                         <shadow type="math_number" id="a(U^tWWHNbkkB(})ElC.">
                           <field name="NUM">240</field>
                         </shadow>
                       </value>
                       <value name="B">
                         <shadow type="math_number" id="b:]?^c,h}^3r[%CNOxcz">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="get_value" id="#^$Wxrs*b)9XSWCFX#!j">
                           <field name="ATTR">val</field>
                           <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="comment" id="/1!9gj-b?qdn,_`EvyJy">
                       <field name="COMMENT">count (2 Impulse) pro Zyklus</field>
                       <next>
                         <block type="on_ext" id="@I`y^)e9;Pf3JVeYk*[+">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">any</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="Sc$t7j^Yj1-(VfBj|vu_">
                               <field name="oid">default</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="math_change" id="V%CoR.Qwx9Zfqv2MfQ$p">
                               <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                               <value name="DELTA">
                                 <shadow type="math_number" id="P51nz@|0;T$Sn0JCo61Y">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="on_source" id="JiW9c=mSn![QI/)lvwtb">
                                   <field name="ATTR">state.val</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="#~i7UOh((^dAb22T+.t_">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_rndfixed" id="*#^aguW_V@]XEDT`M=Sb">
                                       <field name="n">2</field>
                                       <value name="x">
                                         <shadow type="math_number" id="WJcmAXN*0Yod#;6!kdC|">
                                           <field name="NUM">3.1234</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="-^^1+c-.Cq(E_t4?6!mM">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow type="math_number" id="}VYUz#+6K9`+%KpuPINd">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="v;@E70f3]?OSr?m-11Bd">
                                               <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="v5rj*k+J`:;LMOu|t4Hv">
                                               <field name="NUM">240</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                jmeister79J Offline
                jmeister79J Offline
                jmeister79
                schrieb am zuletzt editiert von jmeister79
                #9

                @paul53 said in Idee zum ablesen des Stromzählers.:

                @jmeister79
                Kann es sein, dass nicht jeder Impuls gesendet wird, sondern die Zahl der Impulse (x 2) innerhalb des Sendezyklus (60 s) ? Dann muss man auf "wurde aktualisiert" triggern, da die Zahl der Impulse von Zyklus zu Zyklus gleich bleiben kann (wenn die Leistung konstant ist). Das Blockly dazu sollte dann so funktionieren:

                Blockly_temp.JPG

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="b?sP!eLU8R[m;e1E!]}:">zaehler</variable>
                 </variables>
                 <block type="variables_set" id="}{bk!ZEe2lfP;?Bi9J:*" x="62" y="37">
                   <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                   <value name="VALUE">
                     <block type="math_arithmetic" id="DX[`4M8Phef;?t%`Aw*o">
                       <field name="OP">MULTIPLY</field>
                       <value name="A">
                         <shadow type="math_number" id="a(U^tWWHNbkkB(})ElC.">
                           <field name="NUM">240</field>
                         </shadow>
                       </value>
                       <value name="B">
                         <shadow type="math_number" id="b:]?^c,h}^3r[%CNOxcz">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="get_value" id="#^$Wxrs*b)9XSWCFX#!j">
                           <field name="ATTR">val</field>
                           <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="comment" id="/1!9gj-b?qdn,_`EvyJy">
                       <field name="COMMENT">count (2 Impulse) pro Zyklus</field>
                       <next>
                         <block type="on_ext" id="@I`y^)e9;Pf3JVeYk*[+">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">any</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="Sc$t7j^Yj1-(VfBj|vu_">
                               <field name="oid">default</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="math_change" id="V%CoR.Qwx9Zfqv2MfQ$p">
                               <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                               <value name="DELTA">
                                 <shadow type="math_number" id="P51nz@|0;T$Sn0JCo61Y">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="on_source" id="JiW9c=mSn![QI/)lvwtb">
                                   <field name="ATTR">state.val</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="#~i7UOh((^dAb22T+.t_">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.EnergyCounter.Zaehlerstand</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_rndfixed" id="*#^aguW_V@]XEDT`M=Sb">
                                       <field name="n">2</field>
                                       <value name="x">
                                         <shadow type="math_number" id="WJcmAXN*0Yod#;6!kdC|">
                                           <field name="NUM">3.1234</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="-^^1+c-.Cq(E_t4?6!mM">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow type="math_number" id="}VYUz#+6K9`+%KpuPINd">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="v;@E70f3]?OSr?m-11Bd">
                                               <field name="VAR" id="b?sP!eLU8R[m;e1E!]}:">zaehler</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="v5rj*k+J`:;LMOu|t4Hv">
                                               <field name="NUM">240</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                ich werte aber ja den totalstand aus und nicht die anzahl der impulse, total wird im mqtt inkrementiert. gute idee, hatte auch kurz mich gefreut

                1 Antwort Letzte Antwort
                0
                • jmeister79J Offline
                  jmeister79J Offline
                  jmeister79
                  schrieb am zuletzt editiert von
                  #10

                  Hi,
                  ich werde mal an der Wurzel anfangen.

                  Mal sehen ob der Sensor überhaupt tut was er soll. Schließlich kann da ja auch ein Sfotware oder ableseproblem sein.
                  Ich habe mal den Stand von Total aufgeschrieben und den aktuellen tatsächlichen Zählerstand.

                  Ichw erde das mal n paar tage laufen lassen.

                  Die Differenz muss ja wie folg berechnet sein

                  Diff(zähler) = Zählerstand(neu)-Zählerstand(alt)
                  Diff(mqtt) = [total(neu)-total(alt)]/(2*120U/kWh)

                  die Zahlen müssten dann identisch sein. Wenn nicht, dann erfasse ich nicht richtig oder der Zähler ist nicht geeicht.
                  Letzteres kann man durch mehrmalige versuche ausschließen.

                  Das hatte ich schonmal softwareseitig versucht aber dabei nicht auf total geachtet. Da waren die abwichungen total invariabel.

                  Ich habe die Vermutung, dass der Sensor bei sehr schnell drehender Scheibe ab und zu entweder beide oder eine Flanke verpasst, weil er den Roten Strich nicht sieht.

                  Nils

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • jmeister79J jmeister79

                    Hi,
                    ich werde mal an der Wurzel anfangen.

                    Mal sehen ob der Sensor überhaupt tut was er soll. Schließlich kann da ja auch ein Sfotware oder ableseproblem sein.
                    Ich habe mal den Stand von Total aufgeschrieben und den aktuellen tatsächlichen Zählerstand.

                    Ichw erde das mal n paar tage laufen lassen.

                    Die Differenz muss ja wie folg berechnet sein

                    Diff(zähler) = Zählerstand(neu)-Zählerstand(alt)
                    Diff(mqtt) = [total(neu)-total(alt)]/(2*120U/kWh)

                    die Zahlen müssten dann identisch sein. Wenn nicht, dann erfasse ich nicht richtig oder der Zähler ist nicht geeicht.
                    Letzteres kann man durch mehrmalige versuche ausschließen.

                    Das hatte ich schonmal softwareseitig versucht aber dabei nicht auf total geachtet. Da waren die abwichungen total invariabel.

                    Ich habe die Vermutung, dass der Sensor bei sehr schnell drehender Scheibe ab und zu entweder beide oder eine Flanke verpasst, weil er den Roten Strich nicht sieht.

                    Nils

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #11

                    @jmeister79 sagte:

                    Diff(mqtt) = [total(neu)-total(alt)]/(2*120U/kWh)

                    Bei der Verwendung von "count" kann man sich das Merken des alten Wertes sparen (s. Script).

                    @jmeister79 sagte in Idee zum ablesen des Stromzählers.:

                    die Wertetabelle des letzten Tages von mqtt.0.Stromzaehler.Zaehlerdiode.Count:

                    Aus der Tabelle kann man entnehmen, dass die maximale Leistung ca. 1,6 kW (6 bis 7 counts / min) beträgt. Kann das passen ?

                    EDIT: Auffällig ist, dass nicht jede Minute ein Wert aufgezeichnet wird und dass Werte von 0 ... 3 nicht vorkommen. Hast Du etwa "Nur Änderungen aufzeichnen" aktiviert ?

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                    jmeister79J 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @jmeister79 sagte:

                      Diff(mqtt) = [total(neu)-total(alt)]/(2*120U/kWh)

                      Bei der Verwendung von "count" kann man sich das Merken des alten Wertes sparen (s. Script).

                      @jmeister79 sagte in Idee zum ablesen des Stromzählers.:

                      die Wertetabelle des letzten Tages von mqtt.0.Stromzaehler.Zaehlerdiode.Count:

                      Aus der Tabelle kann man entnehmen, dass die maximale Leistung ca. 1,6 kW (6 bis 7 counts / min) beträgt. Kann das passen ?

                      EDIT: Auffällig ist, dass nicht jede Minute ein Wert aufgezeichnet wird und dass Werte von 0 ... 3 nicht vorkommen. Hast Du etwa "Nur Änderungen aufzeichnen" aktiviert ?

                      jmeister79J Offline
                      jmeister79J Offline
                      jmeister79
                      schrieb am zuletzt editiert von
                      #12

                      @paul53 das kann durchaus sein, da ich unseren Pool geheizt haben. (Fuck erschreckend)

                      Ich zeichne alle Werte auf, auch gleiche.

                      Nils

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

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

                      448

                      Online

                      32.9k

                      Benutzer

                      83.0k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe