Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Photovoltaik Einspeisebegrenzung messen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Photovoltaik Einspeisebegrenzung messen

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @Semmy last edited by

      @semmy sagte in Photovoltaik Einspeisebegrenzung messen:

      Ich habe eine Photovoltaikanlage mit Speicher und möchte die Zeit messen, in der die Einspeisebegrenzung auf 70% steht.

      Wenn Du einen Datenpunkt hast, welcher true/false ist, dann kann der Statistics-Adapter die Zeit für Dich berechnen: https://github.com/iobroker-community-adapters/ioBroker.statistics

      how long was status true/ON and how long false/OFF (Only for binary values)

      S 1 Reply Last reply Reply Quote 0
      • S
        Semmy @haus-automatisierung last edited by

        @haus-automatisierung Der Datenpunkt zeigt Zahlen in Prozent an. Ich möchte die Zeit erfassen, in der dieser Datenpunkt weniger als 100% hat, also wie eine Art Timer. Wenn weniger wie 100%, Zeit läuft, wenn 100% Zeit bleibt stehen, usw.

        haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @Semmy last edited by haus-automatisierung

          @semmy Alias vom Typ boolean anlegen mit val < 100 als Lese-Funktion - darauf dann Statistics aktivieren. Fertig 🙂

          Ich würde mir da irgendwelche Blockly-Scripts sparen. Warum das Rad neu erfinden?

          S 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @Semmy last edited by

            @semmy sagte: Zeit erfassen, in der dieser Datenpunkt weniger als 100% hat

            Im ersten Beitrag hast Du etwas von 70% Begrenzung geschrieben?

            Bild_2022-06-07_121913527.png

            1 Reply Last reply Reply Quote 0
            • S
              Semmy @haus-automatisierung last edited by

              @haus-automatisierung Mit Alias habe ich noch nichts gemacht. Wie macht man das denn genau?

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @Semmy last edited by

                @semmy Du legst unter alias.0 einen neuen Datenpunkt vom Typ boolean an, wählst im Tab "Alias" auf dem Objekt dann den State mit dem %-Wert als Quelle aus, aktivierst die Konvertierungsfunktionen, fügst val < 100 als Lese-Funktion ein und fertig.

                Hier habe ich ein bisschen was dazu geschrieben: https://iobroker.readthedocs.io/de/latest/basics/aliases.html

                Und ansonsten gibt es im ioBroker-Master-Kurs etliche Beispiele.

                1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active @Semmy last edited by BananaJoe

                  @semmy Alternativ:

                  75721574-86b5-43cd-beaf-168221211d33-image.png

                  Du musst einen Datenpunkt anlegen wo du dir den letzten Wert merken willst (Typ Nummer) und die beiden Stellen im Text ersetzen.
                  Ist der Wert unter 100 so sichert er die aktuelle Zeit als Objekt. Das Objekt ist in Wirklichkeit die aktuelle Zeit seit dem 1.1.1970 in Millisekunden. Da kann mal also prima mit Rechnen. Damit wir die Zeit nur dann nehmen wenn der Wert das erste mal unter 100 ist nutzen wir die Hilfsvariable ZeitMessungAktiv - wenn die auf Wahr steht aktualisiert er die Startzeit nicht!

                  ist der Wert wieder 100 so nehmen wir die aktuelle Zeit und ziehen die gemerkte Zeit davon ab. Das dann noch mal durch 1.000 damit wir Sekunden statt Millisekunden haben.
                  Den Wert sichern wir noch mal in den Datenpunkt damit er das bei einem Neustart nicht verliert.
                  Und die Hilfsvariable setzten wir wieder auf Falsch damit das ganze für den nächsten Einsatz bereit ist.

                  Damit hast du einen Datenpunkt in welchen die "unter 100%" Zeiten in Sekunden addiert werden.

                  Hier als Export:

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <variables>
                      <variable id="Ma/Ro2n~BI)hE2rEAxLv">ZeitSumme</variable>
                      <variable id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</variable>
                      <variable id="]T052Is$z]+ju(24ZYeX">ZeitStart</variable>
                      <variable id="8CQj.w,BtgmgXW}/mk6-">ZeitZwischensumme</variable>
                    </variables>
                    <block type="comment" id="#r:x@[J0t~qjDwit7f,5" x="88" y="63">
                      <field name="COMMENT">Den letzten Wert speichern wir in einem Datenpunkt</field>
                      <next>
                        <block type="variables_set" id="Ix$8ke;TQOF*YUiD~x^4">
                          <field name="VAR" id="Ma/Ro2n~BI)hE2rEAxLv">ZeitSumme</field>
                          <value name="VALUE">
                            <block type="get_value_var" id="p,0L8p/wXxvhmJh7e]2V">
                              <field name="ATTR">val</field>
                              <value name="OID">
                                <shadow type="text" id="RP7$iky#)aPPZDXeYU}@">
                                  <field name="TEXT"></field>
                                </shadow>
                                <block type="text" id="p|q-5;xC@1-Tr9(pS43=">
                                  <field name="TEXT">0_userdata.0.Datenpunkt.zum.speichern.der.Summe</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id=":0hsl(E-+{KUOEFpzR~f">
                              <field name="VAR" id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="Pmc3xdbe[wObRave9^_S">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <next>
                                <block type="on_ext" id="+U[If7CoUL(Qp_Go%^hr">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">ne</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="#xRO)[Qj`bD.TN{MI#LC">
                                      <field name="oid">default</field>
                                    </shadow>
                                    <block type="text" id="M#L:0f]nkH#B%2tUCR6~">
                                      <field name="TEXT">adapter.0.datenpunkt.mit.prozentangabe</field>
                                    </block>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="comment" id="J-6P60IP0{dH{Hf:bQMc">
                                      <field name="COMMENT">Zeitpunkt merken wenn unter 100 - einmal!</field>
                                      <next>
                                        <block type="controls_if" id=";nbwHSNU8Awn(=,e.WJ@">
                                          <value name="IF0">
                                            <block type="logic_operation" id="P@?MN[,hw{%e{thO{XN." inline="false">
                                              <field name="OP">AND</field>
                                              <value name="A">
                                                <block type="logic_compare" id=":|(b+/_e:eJ*.JS/:VrF">
                                                  <field name="OP">LT</field>
                                                  <value name="A">
                                                    <block type="on_source" id="94kWi`RhCKJ#gie0R,BI">
                                                      <field name="ATTR">state.val</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="math_number" id="_70_Y.4(*J?kSh1id7?=">
                                                      <field name="NUM">100</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <block type="logic_compare" id="HD}8g[_)CzVc)2H==vfL">
                                                  <field name="OP">EQ</field>
                                                  <value name="A">
                                                    <block type="variables_get" id="phnGY$Kb6Sab!nPJhRrd">
                                                      <field name="VAR" id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="logic_boolean" id=";EWml3pX,r[pW6?=-@#W">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <statement name="DO0">
                                            <block type="variables_set" id="66pv[lub=//f_D0A?|DP">
                                              <field name="VAR" id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</field>
                                              <value name="VALUE">
                                                <block type="logic_boolean" id="H);jHjE}7kFQM:mdX*[j">
                                                  <field name="BOOL">TRUE</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="variables_set" id="]w7UzUIdl=Go9[=V0BID">
                                                  <field name="VAR" id="]T052Is$z]+ju(24ZYeX">ZeitStart</field>
                                                  <value name="VALUE">
                                                    <block type="time_get" id="H9v3;VK|zj:/q+0bGa#m">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                      <field name="OPTION">object</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                          <next>
                                            <block type="comment" id="MfU3vlfJld:bzpMeC}:b">
                                              <field name="COMMENT">Wieder 100, also rechnen!</field>
                                              <next>
                                                <block type="controls_if" id="6_,Z]RY]*S=*(cl1Duq8">
                                                  <value name="IF0">
                                                    <block type="logic_operation" id="9BzX0abg3F4VK=|mJw3I" inline="false">
                                                      <field name="OP">AND</field>
                                                      <value name="A">
                                                        <block type="logic_compare" id="g7XA)=Kl`=CpG5Q.%0h^">
                                                          <field name="OP">EQ</field>
                                                          <value name="A">
                                                            <block type="on_source" id="LmL)A#3~!N4s]}cV+ST;">
                                                              <field name="ATTR">state.val</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="VHrkeatNenu2~Dhbnodh">
                                                              <field name="NUM">100</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="logic_compare" id="RiJV)4Qal6]-Wh32./Jl">
                                                          <field name="OP">EQ</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="UN8ZxB!%.F.t,0Rl9]$k">
                                                              <field name="VAR" id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="logic_boolean" id="Q{^.-k0R5nbjesF#Xlc0">
                                                              <field name="BOOL">TRUE</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <statement name="DO0">
                                                    <block type="variables_set" id="4:@2Y%es35Zs%UM/8a.q">
                                                      <field name="VAR" id="TIAs6OhbV0NbE.P%;s#Q">ZeitMessungAktiv</field>
                                                      <value name="VALUE">
                                                        <block type="logic_boolean" id="t:coKFZLCTZ!w}9H^s^e">
                                                          <field name="BOOL">FALSE</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="!HoZec?`Xa~r=_zh.r7N">
                                                          <field name="VAR" id="8CQj.w,BtgmgXW}/mk6-">ZeitZwischensumme</field>
                                                          <value name="VALUE">
                                                            <block type="math_arithmetic" id="5WY2x2g!bJ34F*TUMRMV">
                                                              <field name="OP">MINUS</field>
                                                              <value name="A">
                                                                <shadow type="math_number" id="[1gy.qXm_VATi4wZV`$.">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="time_get" id="~vFoA)}wW-x1v7C|%(MG">
                                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                                  <field name="OPTION">object</field>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <shadow type="math_number" id=":Q}=hVh3WK1cDM58VkLA">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="variables_get" id="qPZJ`h=y3y_rG^x#GVT6">
                                                                  <field name="VAR" id="]T052Is$z]+ju(24ZYeX">ZeitStart</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="variables_set" id="X3uW*]K3^V8EMCquyI_s">
                                                              <field name="VAR" id="8CQj.w,BtgmgXW}/mk6-">ZeitZwischensumme</field>
                                                              <value name="VALUE">
                                                                <block type="math_arithmetic" id="tgmT9%|:=e$;cq$(:J~z">
                                                                  <field name="OP">ADD</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number" id="+}LL,4Vaw57U!0ub3GbW">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="variables_get" id="OC^bCA5qPC_#1crovbfa">
                                                                      <field name="VAR" id="8CQj.w,BtgmgXW}/mk6-">ZeitZwischensumme</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id="}RnxQWVtrf:A9h%khDJv">
                                                                      <field name="NUM">1000</field>
                                                                    </shadow>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="variables_set" id="T;5L~4?$K:$^)Qw#IIdq">
                                                                  <field name="VAR" id="Ma/Ro2n~BI)hE2rEAxLv">ZeitSumme</field>
                                                                  <value name="VALUE">
                                                                    <block type="math_arithmetic" id="wPqd2F*?@7YO=encjc.[">
                                                                      <field name="OP">ADD</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number" id="~?r#4@MKOWQ^eWQ/)^?]">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="variables_get" id="VBTH@iFgifA?$52L^l/O">
                                                                          <field name="VAR" id="Ma/Ro2n~BI)hE2rEAxLv">ZeitSumme</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id="K7)@fR643vBuSgt303ed">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="variables_get" id="J]MP:uT/xo1]:ps.yw%F">
                                                                          <field name="VAR" id="8CQj.w,BtgmgXW}/mk6-">ZeitZwischensumme</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="control_ex" id="]|n[nC*ug,X`qa~u4P^k">
                                                                      <field name="TYPE">false</field>
                                                                      <field name="CLEAR_RUNNING">FALSE</field>
                                                                      <value name="OID">
                                                                        <shadow type="field_oid" id="1z^Vh,(Zt(;0/1or?%})">
                                                                          <field name="oid">Object ID</field>
                                                                        </shadow>
                                                                        <block type="text" id="=n_kkl)yK[WW+]bxKJ^y">
                                                                          <field name="TEXT">0_userdata.0.Datenpunkt.zum.speichern.der.Summe</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="VALUE">
                                                                        <shadow type="logic_boolean" id="E-,D)oS3#8K{}4RdOay(">
                                                                          <field name="BOOL">TRUE</field>
                                                                        </shadow>
                                                                        <block type="variables_get" id="PGe!)]!sp,KVpP{hz1uv">
                                                                          <field name="VAR" id="Ma/Ro2n~BI)hE2rEAxLv">ZeitSumme</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="DELAY_MS">
                                                                        <shadow type="math_number" id="FeRSX`.xJl}?57A*eD;$">
                                                                          <field name="NUM">0</field>
                                                                        </shadow>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </xml>
                  
                  S N 2 Replies Last reply Reply Quote 0
                  • S
                    Semmy @BananaJoe last edited by Semmy

                    Hallo
                    Funktioniert soweit, denke ich, aber es werden nur Millisekunden angezeigt anstatt Sekunden.

                    Gruß
                    Semmy

                    1 Reply Last reply Reply Quote 0
                    • N
                      Nordischerjung @BananaJoe last edited by

                      @bananajoe Musste da nicht geteilt durch 1000 geschrieben werden um auf Sekunden zu kommen?

                      7ce491d8-373e-4496-be02-8400542388db-grafik.png

                      BananaJoe 1 Reply Last reply Reply Quote 0
                      • BananaJoe
                        BananaJoe Most Active @Nordischerjung last edited by BananaJoe

                        @nordischerjung @Semmy genau, geteilt, Flüchtigkeitsfehler!
                        Den Wert im Datenpunkt muss man nun einmal von Hand korrigieren und das Skript dann einmal neu starten (mit dem geteilt statt dem Plus)

                        1 Reply Last reply Reply Quote 0
                        • S
                          Semmy last edited by

                          @bananajoe Es werden jetzt Sekunden angezeigt, jedoch auch 3 Nachkommastellen. Kann man die irgendwie entfernen?

                          BananaJoe 1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @Semmy last edited by BananaJoe

                            @semmy dbcf2a7b-e076-4d42-8d87-6ae7a1a95632-image.png ?
                            runde kann man auch auf Ab oder aufrunden setzten, bei mir ist es dann eine Ganzzahl
                            Beim 2. geht nicht auf 0 stellen, 1 ist Minimum. Ggf. beides zusammen

                            Beispiele wie man aus den Sekunden in Blockly wieder Tage / Stunden / Minuten / Sekunden macht findest du hier im Forum

                            1 Reply Last reply Reply Quote 0
                            • S
                              Semmy @haus-automatisierung last edited by

                              @haus-automatisierung sagte in Photovoltaik Einspeisebegrenzung messen:

                              @semmy Alias vom Typ boolean anlegen mit val < 100 als Lese-Funktion - darauf dann Statistics aktivieren. Fertig 🙂

                              Ich würde mir da irgendwelche Blockly-Scripts sparen. Warum das Rad neu erfinden?

                              Hallo
                              Ich habe das jetzt mal so probiert. In der Statistik werden aber nur Daten in Offday geschrieben und nicht in Onday.

                              Viele Grüße
                              Semmy

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              483
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

                              6
                              17
                              635
                              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