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.
    • paul53
      paul53 @Semmy last edited by paul53

      @semmy sagte: möchte die Zeit messen

      Einzeln oder kumulativ?
      In welcher Maßeinheit?

      @semmy sagte in Photovoltaik Einspeisebegrenzung messen:

      Datenpunkt ist vorhanden.

      Typ "boolean"?

      Falls kumulativ in Minuten:

      Bild_2022-06-07_105615929.png

      1 Reply Last reply Reply Quote 0
      • 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

                                861
                                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