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

      @arteck Wie müsste das aussehen, damit immer die Zeit dazu addiert wird?

      Gruß
      Semmy

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