Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Mathe-Genie gesucht (Kurvenberechnung)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Mathe-Genie gesucht (Kurvenberechnung)

Geplant Angeheftet Gesperrt Verschoben JavaScript
132 Beiträge 9 Kommentatoren 16.8k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • GarganoG Gargano

    @homoran Richtig : HPLC, wenn Du die Software Geminyx kennst, die neue Version GeminyxIII habe ich gemacht.
    Link Text

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #120

    @gargano

    @homoran sagte in Mathe-Genie gesucht (Kurvenberechnung):

    ich glaub ich hab den Denkfehler

    sieht zumindest im Moment (abfallend) brauchbar aus:
    Estimate_quad02.png

    @paul53
    gegen 13:00 habe ich das Haus nochmal verdreht ;-)

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • GarganoG Gargano

      @homoran Nee, geht mit quadratischer Regression. Raus kommt dann eine Funktion y = ax²+bx+c
      Dazu vorher wahrscheinlich die Kurve glätten, ich nehme mal an Savitzky Berechnung wäre hier das richtige.
      Ich habe das schon mal gemacht für Berechnung von Liquid Chromatograpie. Allerdings ist der Code in Pascal (Delphi).
      Aber ich wollte eigentlich aus Interresse das mal in JS umsetzen. Kannst Du mir mal reale gemessene Daten schicken, wenns geht keine 100k

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #121

      @gargano sagte in Mathe-Genie gesucht (Kurvenberechnung):

      Nee, geht mit quadratischer Regression

      nein, das brauch ich nicht.
      Will ja nur die Kurvenpunkte berechnen, also eine "normale Quadratische Gleichung wie hier:

      https://www.mathematik-oberstufe.de/analysis/qf/parabel-aus-p-sp.html

      die blaue Kurve
      Scheitelpunkt (Uhrzeit des Apex) und den einen Kurvenpunkt zur Berechnung des Streckfaktors (Uhrzeit Sonnenaufgang) habe ich ja.
      ich bin (wie bereits in der Oberstufe) zu dumm den Ansatz hinzubekommen.

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #122

        Heute war endlich mal wieder Sonnenschein. Leicht diesig, aber ausreichend.

        In der Zwischenzeit ist es mir irgendwie gelungen eine quadratische Gleichung mit den mir zur Verfügung stehenden Fixpunkten zu erstellen.

        Natürlich ist das erweiterte Skript von @paul53 einfach Spitze.
        Ich wollte ja eigentlich nur eine einfache Kurve.
        solarestimate24.png

        Aber auch da werde ich noch ein wenig Perfektionismus betreiben - einfach weil es geht ;-)
        Die ersten Optimierungen hatte ich mit der Ertragskurve des letzten Sonnentages gemacht, der war aber auch schon >2 Wochen alt und so stimmten die Zeiten für Sonnenauf- und Untergang nicht mehr, sowie der maximal mögliche Ertrag aufgrund der steigenden Elevation im Zenit.

        Hier will ich noch versuchen empirisch den Apex der Kurve automatisch anzupassen
        solarestimate_02_calc.png

        Momentan wird dieser fix gesetzt, und ich habe ihn nach den ersten Tests jetzt zu weit hochgesetzt.
        EDIT: sehe gerade, da sind noch Reste aus den früheren Versuchen in Form von Variablen enthalten, die nicht mehr benötigt werden

        Danke nochmal an alle Beteiligten!!

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • JB_SullivanJ Offline
          JB_SullivanJ Offline
          JB_Sullivan
          schrieb am zuletzt editiert von
          #123

          Moin zusammen, ich bin ja auch an allem interessiert was mir in irgend einer Form die optimale Nutzung meiner PV Anlage und den Eigenverbrauch versüßt.

          Ich hatte mit @Gargano zusammen diese PV Ertragsvorschau zusammen gestrickt.

          4085b14f-7a37-4971-8769-efa3297e1094-image.png

          Auch habe ich mir ein Blockly geschrieben, um nicht in die 70% Kappung des EVUs zu laufen.

          eea81dc6-415a-4b8d-8dab-8c78c69007eb-image.png

          Allerdings habe ich versucht nachzuvollziehen, welchen Ansatz du, @Homoran mit deinem Diagramm verfolgst? Kannst du mal erklären was du genau damit vor hast.

          ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

          HomoranH 1 Antwort Letzte Antwort
          0
          • JB_SullivanJ JB_Sullivan

            Moin zusammen, ich bin ja auch an allem interessiert was mir in irgend einer Form die optimale Nutzung meiner PV Anlage und den Eigenverbrauch versüßt.

            Ich hatte mit @Gargano zusammen diese PV Ertragsvorschau zusammen gestrickt.

            4085b14f-7a37-4971-8769-efa3297e1094-image.png

            Auch habe ich mir ein Blockly geschrieben, um nicht in die 70% Kappung des EVUs zu laufen.

            eea81dc6-415a-4b8d-8dab-8c78c69007eb-image.png

            Allerdings habe ich versucht nachzuvollziehen, welchen Ansatz du, @Homoran mit deinem Diagramm verfolgst? Kannst du mal erklären was du genau damit vor hast.

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #124

            @jb_sullivan sagte in Mathe-Genie gesucht (Kurvenberechnung):

            Kannst du mal erklären was du genau damit vor hast.

            Ja!
            wobei ich jetzt im nachhinein gar nicht mehr so ganz sicher bin, ob das überhaupt notwendig war.

            Mit den verschiedenen Kurvenmöglichkeiten
            Solarprognose.png

            errechne ich die mögliche maximale Solarproduktion zur Zeit x

            • braun ist das was mir reichen würde - eine einfache quadratische Gleichung
              • lediglich die Anpassung des max aufgrund des ändernden Sonnenwinkels im Zenit habe ich noch nicht umgesetzt
            • beide grüne Kurven berechnen den theoretischen Ertrag anhand der Einfallswinkel über komplexe Berechnungen
              • hellgrün berücksichtigt dabei sogar die diffuse Strahlung
                (ganz großen Dank an @paul53)

            Anhand dieser Kurve führe ich einen "Wolkenwächter" aus.
            Dieser berechnet die Anzahl Über-/Unterschreitungen der zu dem Zeitpunkt möglichen Energie anhand

            • (mögliche Energie - Grundverbrauch)/2

            bei Über-/Unterschreiten des jeweiligen Punktes fügt der Wolkenwächter in der Liste eine 1 ein, ansonsten eine 0 .
            nach vorgegebener Zeit wird der jeweils älteste Wert entfernt

            Je nach Wert dieser Zahl startet die Ladung meines Elektroautos - oder eben nicht
            Ziel ist es nur mit Überschuss möglichst lange zu laden und nicht andauernd die Ladung zu unterbrechen.

            hier mal ein Bild (auf die Schnelle gesucht):
            Wolkenwaechter01.png

            Zusätzlich mache ich auf die gleiche Weise noch eine Überprüfung ob überhaupt genug Solarenergie produziert wird.
            Wenn der Schwellwert von 2000W überschritten wird eine 1, darunter eine 0 in die Liste.
            Daraus errechnet sich der "Sonnenanteil"

            Hier im Bild ist der Sonnenateil >85% und die rechte Zahl daneben ist die Wolkenwarnung, hier 2 (<5)
            Jetzt würde die Ladung beginnen können.

            In der Kurve sieht man dass im Intervall (damals noch 10 Minuten) nur ein Einbruch vorkam, der den Wert dann um 2 erhöht (Unter- und wieder Überschreitung der Schwelle)

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            JB_SullivanJ 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @jb_sullivan sagte in Mathe-Genie gesucht (Kurvenberechnung):

              Kannst du mal erklären was du genau damit vor hast.

              Ja!
              wobei ich jetzt im nachhinein gar nicht mehr so ganz sicher bin, ob das überhaupt notwendig war.

              Mit den verschiedenen Kurvenmöglichkeiten
              Solarprognose.png

              errechne ich die mögliche maximale Solarproduktion zur Zeit x

              • braun ist das was mir reichen würde - eine einfache quadratische Gleichung
                • lediglich die Anpassung des max aufgrund des ändernden Sonnenwinkels im Zenit habe ich noch nicht umgesetzt
              • beide grüne Kurven berechnen den theoretischen Ertrag anhand der Einfallswinkel über komplexe Berechnungen
                • hellgrün berücksichtigt dabei sogar die diffuse Strahlung
                  (ganz großen Dank an @paul53)

              Anhand dieser Kurve führe ich einen "Wolkenwächter" aus.
              Dieser berechnet die Anzahl Über-/Unterschreitungen der zu dem Zeitpunkt möglichen Energie anhand

              • (mögliche Energie - Grundverbrauch)/2

              bei Über-/Unterschreiten des jeweiligen Punktes fügt der Wolkenwächter in der Liste eine 1 ein, ansonsten eine 0 .
              nach vorgegebener Zeit wird der jeweils älteste Wert entfernt

              Je nach Wert dieser Zahl startet die Ladung meines Elektroautos - oder eben nicht
              Ziel ist es nur mit Überschuss möglichst lange zu laden und nicht andauernd die Ladung zu unterbrechen.

              hier mal ein Bild (auf die Schnelle gesucht):
              Wolkenwaechter01.png

              Zusätzlich mache ich auf die gleiche Weise noch eine Überprüfung ob überhaupt genug Solarenergie produziert wird.
              Wenn der Schwellwert von 2000W überschritten wird eine 1, darunter eine 0 in die Liste.
              Daraus errechnet sich der "Sonnenanteil"

              Hier im Bild ist der Sonnenateil >85% und die rechte Zahl daneben ist die Wolkenwarnung, hier 2 (<5)
              Jetzt würde die Ladung beginnen können.

              In der Kurve sieht man dass im Intervall (damals noch 10 Minuten) nur ein Einbruch vorkam, der den Wert dann um 2 erhöht (Unter- und wieder Überschreitung der Schwelle)

              JB_SullivanJ Offline
              JB_SullivanJ Offline
              JB_Sullivan
              schrieb am zuletzt editiert von
              #125

              @homoran

              Also im Grunde verfolgen wir beide den gleichen Ansatz, nur auf vollkommen unterschiedliche Weise.

              Bei mir kommt hinzu, das ich einen Speicher habe und mit dem SOC Wert einen Trigger nutze, ab wann ich die vom Dach kommende Energie lieber als Eigenverbrauch umleite.

              Das ist in sofern sehr einfach, denn wenn der Speicher voll ist (oder zu einem definierten %-Wert), wird der erzeugte Strom zu unwirtschaftlichen Konditionen verkauft - das will ich genau so vermeiden wie du.

              Da das e-Auto noch in der Warteschlange ist, habe ich mir mal ein paar andere Verbraucher als Last heran gezogen. Des weiteren dienen diese Verbraucher dazu, nicht in die 70% Abregelung des EVU hinein zu laufen.

              Das ist aber nicht der Hauptgedanke, denn wenn erstmal das e-Auto da ist, brauche ich mir diesbezüglich wohl keine Gedanken mehr zu machen. Außerdem habe ich mir eine openWB Wallbox bestellt, die ja ebenfalls sehr gut auf PV Überschuß laden optimiert ist.

              Mein Problem mit dem Blockly Script, sind die Wolken.

              Den Wert, was gerade als Überschuss verkauft wird, hole ich mir vom Discovergy Adapter (Power Delivery). Der Aktualisierungsintervall der Daten läßt sich im Discovergy Adapter einstellen. Somit bekomme ich alle XY Sekunden einen Wert, worauf das Blockly reagiert.

              Aktualisiere ich schnell, habe ich an einem wolkigen Tag natürlich ein lustiges Ein und Aus schalten der Verbraucher. Das ist weder gut für die Geräte noch wünschenswert.

              Aktualisiere ich zu langsam (z.B. 180 Sek), rausche ich dann doch wieder in den Netzbezug, weil gerade dunkle Wolken durchziehen, aber das Script noch die Freigabe wegen PV-Überschuss anstehen hat.

              Also die Krux an der Geschichte ist definitiv die Sinnvolle Wolkenerkennung. Habe es schon über die Helligkeitserkennung von Innogy BWM oder mit den LUX Werten der Xiaomi BWM versucht. Funktioniert aber auch nicht wirklich, weil die BWM nur dann einen Helligkeits / LUX Wert schreiben, wenn sie auch Bewegung erkannt haben. Mit zum Himmel gerichteten Sensoren wird das schwierig.

              Hier mal mein Blockly, für den Fall das es dich interessiert.

              <xml xmlns="https://developers.google.com/blockly/xml">
                <variables>
                  <variable id="iwu_1;PHCBW[(6sePQ9Q">Leistung_Verbraucher_1</variable>
                  <variable id="#3v}HDbdMRBS$0v{!o)h">Speicher</variable>
                  <variable id="f6*O*xo-Qtq,VGU7f|-6">Leistung_Verbraucher_2</variable>
                  <variable id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</variable>
                  <variable id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</variable>
                  <variable id="Qd@~YUEX}4:5(CxoR0XE">Leistung_Verbraucher_3</variable>
                  <variable id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</variable>
                </variables>
                <block type="comment" id="N.k$x:jEK%$*r_Zwwx(r" x="-4687" y="-1787">
                  <field name="COMMENT">Leistung der Verbraucher festlegen</field>
                  <next>
                    <block type="comment" id="G=?w)hM,Bcc=X^a=CB}~">
                      <field name="COMMENT">e-bike Ladestation 500W</field>
                      <next>
                        <block type="variables_set" id="55T2_jCmM2/Du69hIUin">
                          <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Leistung_Verbraucher_1</field>
                          <value name="VALUE">
                            <block type="math_number" id="KX#UMRmtPT`N$^)1m/o4">
                              <field name="NUM">500</field>
                            </block>
                          </value>
                          <next>
                            <block type="comment" id="K,Q}Z]4js48V-,t}55G`">
                              <field name="COMMENT">Raumentfeuchter 440W</field>
                              <next>
                                <block type="variables_set" id="eC{wc[7:B]Q?{m~SVWK.">
                                  <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Leistung_Verbraucher_2</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="eZ*_Hcj}V[j/q1_!;2M8">
                                      <field name="NUM">440</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="comment" id="#LRdQ3elGN0Ke!(/%jf{">
                                      <field name="COMMENT">Poolpumpe 500W</field>
                                      <next>
                                        <block type="variables_set" id="Og7]d_/m7sC|)op5H1?T">
                                          <field name="VAR" id="Qd@~YUEX}4:5(CxoR0XE">Leistung_Verbraucher_3</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="zt]-8Ph*m#v]0bG?iBzu">
                                              <field name="NUM">500</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="on_ext" id="5%FksP=:EPtmlXMu2Ixo">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                              <field name="CONDITION">any</field>
                                              <field name="ACK_CONDITION"></field>
                                              <value name="OID0">
                                                <shadow type="field_oid">
                                                  <field name="oid">default</field>
                                                </shadow>
                                                <block type="field_oid" id="u9hpl,/[~$7)zJI#.NtF">
                                                  <field name="oid">discovergy.0.60868258.Power_Delivery</field>
                                                </block>
                                              </value>
                                              <statement name="STATEMENT">
                                                <block type="variables_set" id="JX:8ymNz*s:lKhd)ysRK">
                                                  <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                                  <value name="VALUE">
                                                    <block type="logic_boolean" id="$KP3Vav-:FSD^bmO/pCR">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="variables_set" id="VOZMO0+3G!eKaYev_zqP">
                                                      <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                                      <value name="VALUE">
                                                        <block type="logic_boolean" id="2yD!mn?s~P*$,cMV~BUI">
                                                          <field name="BOOL">FALSE</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="3I`}{uswn4U|nd,+2yyE">
                                                          <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                                          <value name="VALUE">
                                                            <block type="logic_boolean" id="s:}qChL^~GF_o-`l%I[6">
                                                              <field name="BOOL">FALSE</field>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="controls_if" id="ZfY*AV|Z9v@w)+{;7Ce4">
                                                              <mutation else="1"></mutation>
                                                              <value name="IF0">
                                                                <block type="logic_operation" id=",_!aC(]3lGQ/|n[1H?k%" inline="false">
                                                                  <field name="OP">AND</field>
                                                                  <value name="A">
                                                                    <block type="logic_compare" id=".t,$*3GhaR1qLe-Rt0@[">
                                                                      <field name="OP">GTE</field>
                                                                      <value name="A">
                                                                        <block type="get_value" id="3]d={usIWbau!?su74V(">
                                                                          <field name="ATTR">val</field>
                                                                          <field name="OID">discovergy.0.60868258.Power_Delivery</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="math_number" id="/jk/KZIuq`:0Fq-`wnCv">
                                                                          <field name="NUM">150</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="logic_compare" id="4`WHkHHs9k(`Y,srxkqw">
                                                                      <field name="OP">EQ</field>
                                                                      <value name="A">
                                                                        <block type="variables_get" id="5Vwg(XL6HYz0Uz|[R?Nr">
                                                                          <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="logic_boolean" id="Sp-nLxB.0Y6.3YS]Ng}Z">
                                                                          <field name="BOOL">TRUE</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO0">
                                                                <block type="debug" id="xAF=1}H-`M11m2BGyR`~" disabled="true">
                                                                  <field name="Severity">debug</field>
                                                                  <value name="TEXT">
                                                                    <shadow type="text" id="oQcGHRV;/?MrR}kCR}Ya">
                                                                      <field name="TEXT">Speicher &amp; Power Freigabe</field>
                                                                    </shadow>
                                                                  </value>
                                                                  <next>
                                                                    <block type="controls_if" id="-8BS*=Y59GFJ)IK$ek@`">
                                                                      <value name="IF0">
                                                                        <block type="logic_compare" id="eVrv%46jPtIrwmx]4H,;">
                                                                          <field name="OP">GT</field>
                                                                          <value name="A">
                                                                            <block type="on_source" id="J$WnBHsK!VJr~:TPawkG">
                                                                              <field name="ATTR">state.val</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="B">
                                                                            <block type="variables_get" id="h)]T[l(3DASZkPMVN~:K">
                                                                              <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Leistung_Verbraucher_1</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                      <statement name="DO0">
                                                                        <block type="variables_set" id="Htr/tqkBs_F1S94kP%b3">
                                                                          <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                                                          <value name="VALUE">
                                                                            <block type="logic_boolean" id="kbwWOhZ!92^0tlTDJDMS">
                                                                              <field name="BOOL">TRUE</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </statement>
                                                                      <next>
                                                                        <block type="debug" id="jZW(9(J8kvFKDL]2Mb*/" disabled="true">
                                                                          <field name="Severity">debug</field>
                                                                          <value name="TEXT">
                                                                            <shadow type="text" id="mXJD*?1:uJa+5WJ)^b24">
                                                                              <field name="TEXT">Freigabe Verbraucher1</field>
                                                                            </shadow>
                                                                          </value>
                                                                          <next>
                                                                            <block type="controls_if" id="7CaD]B[!w^uxjJHuR,~%">
                                                                              <value name="IF0">
                                                                                <block type="logic_compare" id="%s+?b/tOJ]MrD8@N(RWp">
                                                                                  <field name="OP">GT</field>
                                                                                  <value name="A">
                                                                                    <block type="on_source" id="iuoB$p~iRSidkBnul|(z">
                                                                                      <field name="ATTR">state.val</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="B">
                                                                                    <block type="math_arithmetic" id="m:#?lpymy.24[z}#VjtK" inline="false">
                                                                                      <field name="OP">ADD</field>
                                                                                      <value name="A">
                                                                                        <shadow type="math_number">
                                                                                          <field name="NUM">1</field>
                                                                                        </shadow>
                                                                                        <block type="variables_get" id="a{K}g{j|F?TgpS{{m$+m">
                                                                                          <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Leistung_Verbraucher_1</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="B">
                                                                                        <shadow type="math_number">
                                                                                          <field name="NUM">1</field>
                                                                                        </shadow>
                                                                                        <block type="variables_get" id="8(%Xir`3RA6FZ-}%KKH#">
                                                                                          <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Leistung_Verbraucher_2</field>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <statement name="DO0">
                                                                                <block type="variables_set" id="nm(2xDV9lyo0;/-.@R~l">
                                                                                  <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                                                                  <value name="VALUE">
                                                                                    <block type="logic_boolean" id="d^fg7.Ilbwo4(vY0UlSx">
                                                                                      <field name="BOOL">TRUE</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </statement>
                                                                              <next>
                                                                                <block type="debug" id=";zrLgW13_,~B+nV@sl?9" disabled="true">
                                                                                  <field name="Severity">debug</field>
                                                                                  <value name="TEXT">
                                                                                    <shadow type="text" id="}[ok^rE-[x0r{iWs+/c]">
                                                                                      <field name="TEXT">Freigabe Verbraucher1 &amp; 2</field>
                                                                                    </shadow>
                                                                                  </value>
                                                                                  <next>
                                                                                    <block type="controls_if" id="KG^SD.*Ll4OE`Ks()z@T">
                                                                                      <value name="IF0">
                                                                                        <block type="logic_compare" id="Z5%$5i[{Wyyg_/D24?Kl">
                                                                                          <field name="OP">GT</field>
                                                                                          <value name="A">
                                                                                            <block type="on_source" id="JpB*?Fy6g]DQ_#vYr8TB">
                                                                                              <field name="ATTR">state.val</field>
                                                                                            </block>
                                                                                          </value>
                                                                                          <value name="B">
                                                                                            <block type="math_arithmetic" id="fgIq2~^~`T(%LC8mw8WU" inline="false">
                                                                                              <field name="OP">ADD</field>
                                                                                              <value name="A">
                                                                                                <shadow type="math_number">
                                                                                                  <field name="NUM">1</field>
                                                                                                </shadow>
                                                                                                <block type="variables_get" id="1oy%Bt,2%5}/TJ=;Rqon">
                                                                                                  <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Leistung_Verbraucher_1</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <shadow type="math_number">
                                                                                                  <field name="NUM">1</field>
                                                                                                </shadow>
                                                                                                <block type="math_arithmetic" id="0}+#7s~aK{i5A]@/nuP%" inline="false">
                                                                                                  <field name="OP">ADD</field>
                                                                                                  <value name="A">
                                                                                                    <shadow type="math_number">
                                                                                                      <field name="NUM">1</field>
                                                                                                    </shadow>
                                                                                                    <block type="variables_get" id="Bqebl1X.3EQG%N!G4InL">
                                                                                                      <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Leistung_Verbraucher_2</field>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                  <value name="B">
                                                                                                    <shadow type="math_number">
                                                                                                      <field name="NUM">1</field>
                                                                                                    </shadow>
                                                                                                    <block type="variables_get" id="7zAru$B:cIPf3rZr4!%3">
                                                                                                      <field name="VAR" id="Qd@~YUEX}4:5(CxoR0XE">Leistung_Verbraucher_3</field>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                      <statement name="DO0">
                                                                                        <block type="variables_set" id="*XD]aqB0%*~8wCgSm:Vc">
                                                                                          <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                                                                          <value name="VALUE">
                                                                                            <block type="logic_boolean" id="s*cOI[MF{^ZzVCLtNZm1">
                                                                                              <field name="BOOL">TRUE</field>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </statement>
                                                                                      <next>
                                                                                        <block type="debug" id="Qw/7jN/F1j+jCB@e{Dx," disabled="true">
                                                                                          <field name="Severity">debug</field>
                                                                                          <value name="TEXT">
                                                                                            <shadow type="text" id="1L]B)Ig8}XINBJ/e11gS">
                                                                                              <field name="TEXT">Freigabe Verbraucher1&amp;2&amp;3</field>
                                                                                            </shadow>
                                                                                          </value>
                                                                                        </block>
                                                                                      </next>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </next>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <statement name="ELSE">
                                                                <block type="variables_set" id="}gD3VZ4Z5rM|y#s_%w*.">
                                                                  <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                                                  <value name="VALUE">
                                                                    <block type="logic_boolean" id="kf#,9n$c~L,mF[W+ifoE">
                                                                      <field name="BOOL">FALSE</field>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="variables_set" id="-6d|TG-Ua}hi%^SrgoX9">
                                                                      <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                                                      <value name="VALUE">
                                                                        <block type="logic_boolean" id="P7xS_$)e/3`eN$6r.[C]">
                                                                          <field name="BOOL">FALSE</field>
                                                                        </block>
                                                                      </value>
                                                                      <next>
                                                                        <block type="variables_set" id=";]q3eUAgEqW@#~RYk%q^">
                                                                          <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                                                          <value name="VALUE">
                                                                            <block type="logic_boolean" id="$G/M49E1pinH%h[QUFGw">
                                                                              <field name="BOOL">FALSE</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
                <block type="comment" id="m=kb2aNtc`3lz=s3!#)e" x="-4037" y="-1812">
                  <field name="COMMENT">Freigabe über Speicher SoC</field>
                  <next>
                    <block type="on_ext" id=":Z,oPP(pZcNLI*ic7?=v">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                      <field name="CONDITION">any</field>
                      <field name="ACK_CONDITION"></field>
                      <value name="OID0">
                        <shadow type="field_oid" id="B-qBr$_xx{MAqsn72)d/">
                          <field name="oid">fronius.0.powerflow.inverter1.SOC</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="variables_set" id="k/O?%F?yK:76mPu#sPXp">
                          <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="ucAqD%A|WqvvGRX5tq/Q">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <next>
                            <block type="controls_if" id="@:]C#RGL_r!}.(u!+_1F">
                              <value name="IF0">
                                <block type="logic_compare" id="RaNa=2L`-^F66JF7Aw~L">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="on_source" id="mM8Ui_)ko{7jU{y~|!+I">
                                      <field name="ATTR">state.val</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="LebGx|?(!5`2!KtoTMCz">
                                      <field name="NUM">99</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="variables_set" id="$v?p67}s]Gz=(QnHs!Qz">
                                  <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="$!B4k462/f#JpLsw!WRG">
                                      <field name="BOOL">TRUE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="debug" id="c_{ROsP0ZNtLXx]y4fey" disabled="true">
                                      <field name="Severity">debug</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="?(r=r`RW7jm~B4kB/dTA">
                                          <field name="TEXT">Speicher Freigabe freigegeben</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                              <next>
                                <block type="controls_if" id="A!HzgN7jFk$[P..ZACwI">
                                  <value name="IF0">
                                    <block type="logic_compare" id="6-=egQ`o3@uaq`oqE{GZ">
                                      <field name="OP">LTE</field>
                                      <value name="A">
                                        <block type="on_source" id="ZH}eAd!(V81(JKoLmcxE">
                                          <field name="ATTR">state.val</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="q)UiwwWQ88%c^bE^^K#%">
                                          <field name="NUM">97</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="variables_set" id="zj5VkE1@s/ixB*g3e.M]">
                                      <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="@aIsrkH^cJ6Xmf/S0DG^">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="debug" id="YDpGZEb}-twSc8635=x_" disabled="true">
                                          <field name="Severity">debug</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="Rbt?I+rv$A/Yk*q/x})j">
                                              <field name="TEXT">Speicher Freigabe gesperrt</field>
                                            </shadow>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="procedures_callnoreturn" id="Py3WU:HMO%lmxbbF*ZwF">
                                      <mutation name="PV_Ueberschuss"></mutation>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
                <block type="comment" id="ku6OGkkxV:+B3s`T5m,2" x="-3538" y="-1813">
                  <field name="COMMENT">Verbraucher EIN / AUS schalten</field>
                  <next>
                    <block type="on_ext" id="6|z(;*0}z`bb*]GH~QQt">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                      <field name="CONDITION">any</field>
                      <field name="ACK_CONDITION"></field>
                      <value name="OID0">
                        <shadow type="field_oid" id="L_/|{9;~%0)!1YYOJ1V#">
                          <field name="oid">discovergy.0.60868258.Power_Delivery</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="|S.LEn`GDI8RYU^Q7C.3">
                          <value name="IF0">
                            <block type="logic_compare" id="Y!qC$9Me5U4hBsrSLQ#]">
                              <field name="OP">NEQ</field>
                              <value name="A">
                                <block type="get_value" id="_YT#{$J%y,_1pGeW?;iY">
                                  <field name="ATTR">val</field>
                                  <field name="OID">sonoff.0.DEKO_3.POWER1</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="variables_get" id="W0AuxVIiR|EP#}`+-,`3">
                                  <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="d=-NnR_}kEXUNzl=Odqy">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">sonoff.0.DEKO_3.POWER1</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="variables_get" id="=be9t$1zyc608QA?BR8d">
                                  <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="6F)@lJ]t9kzJA@E:9iuC">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">javascript.0.PV_Eigenverbrauch.DP_Verbraucher1</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="variables_get" id="2rpdO@8j6Ds-8P?2Be35">
                                      <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="debug" id="bGUiN[M}O,yelfB]sIbw" disabled="true">
                                      <field name="Severity">debug</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="88{_G_K3r=xI@sUR3:X6">
                                          <field name="TEXT">Verbraucher 1 ansteuern</field>
                                        </shadow>
                                      </value>
                                      <next>
                                        <block type="update" id="I~4VAmY([=IJW7G2G@P?">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">javascript.0.PV_Eigenverbrauch.Verbraucher_1</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="text_join" id=":FiA]WkIGr:W[Zr3u9EI">
                                              <mutation items="2"></mutation>
                                              <value name="ADD0">
                                                <block type="text" id="^?tdnfdsK_(Uz_HtzOi=">
                                                  <field name="TEXT">e-Bike Ladestation ist </field>
                                                </block>
                                              </value>
                                              <value name="ADD1">
                                                <block type="logic_ternary" id="=O#Bar~Q_$FOiRh+i,Gz">
                                                  <value name="IF">
                                                    <block type="logic_compare" id="E!.yBZVM4G*bb,sFo}ZP">
                                                      <field name="OP">EQ</field>
                                                      <value name="A">
                                                        <block type="variables_get" id="dHRaHv0_xYM3Sw??8EZ]">
                                                          <field name="VAR" id="=0*Y@LKH/LaJKjrR)j@$">Verbraucher_1</field>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="logic_boolean" id="6@B*F.}B!8be=x|@XY5H">
                                                          <field name="BOOL">TRUE</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="THEN">
                                                    <block type="text" id=")1e8P,J}j~H^%2MAczFF">
                                                      <field name="TEXT">&lt;span style='color:lightgreen'&gt; AN&lt;/span&gt;</field>
                                                    </block>
                                                  </value>
                                                  <value name="ELSE">
                                                    <block type="text" id="}#`Yb-cj3ad1^$;Y}vvE">
                                                      <field name="TEXT">&lt;span style='color:#f01630'&gt; AUS&lt;/span&gt;</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                          <next>
                            <block type="controls_if" id="Flc*5me3#MKLjPR}Jbwv">
                              <value name="IF0">
                                <block type="logic_compare" id=";FJmFB8TH$eP.#xkh6L:">
                                  <field name="OP">NEQ</field>
                                  <value name="A">
                                    <block type="get_value" id="SZe9}zcn7{9,-`YWK4NJ">
                                      <field name="ATTR">val</field>
                                      <field name="OID">sonoff.0.DEKO_4.POWER1</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="oeGoowX!X;]Y9bs2kfRq">
                                      <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="control" id="UNHCfC{N.w`0`f3z[^v^">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">sonoff.0.DEKO_4.POWER1</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="variables_get" id="RW@De^K~}D},:i/}U{IH">
                                      <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="HG0*7VmqJn+c4i#~[a+@">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">javascript.0.PV_Eigenverbrauch.DP_Verbraucher2</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="IO$S`Ds9zyIg-k@)O~{?">
                                          <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="debug" id="7Peg*9Q$rK3~[C^:E6i:" disabled="true">
                                          <field name="Severity">debug</field>
                                          <value name="TEXT">
                                            <shadow type="text" id="e~pyMK?Ux1Le^-!UyFmj">
                                              <field name="TEXT">Verbraucher 2 ansteuern</field>
                                            </shadow>
                                          </value>
                                          <next>
                                            <block type="update" id="BQR*n=Y9QnxkQVZ~Io,Z">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">javascript.0.PV_Eigenverbrauch.Verbraucher_2</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="text_join" id="wf#Ims2#R8;Z1lcD.Y+s">
                                                  <mutation items="2"></mutation>
                                                  <value name="ADD0">
                                                    <block type="text" id="3@r4YjmA#FzZ$:Z+.pe=">
                                                      <field name="TEXT">Raumentfeuchter ist </field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD1">
                                                    <block type="logic_ternary" id="s0Nx(}!4w39r5]|U!fKd">
                                                      <value name="IF">
                                                        <block type="logic_compare" id=".y#n]{$R5#cu(UNevkC!">
                                                          <field name="OP">EQ</field>
                                                          <value name="A">
                                                            <block type="variables_get" id="=|qa8kPsv7^Y_O#(ZWP]">
                                                              <field name="VAR" id="H^P_+K-N%`%.=oQ1d31B">Verbraucher_2</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="logic_boolean" id="%^b+7U*KI#Gl6.XE_%^M">
                                                              <field name="BOOL">TRUE</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="THEN">
                                                        <block type="text" id="*JC8d`O[Oce.IZbBQ9_B">
                                                          <field name="TEXT">&lt;span style='color:lightgreen'&gt; AN&lt;/span&gt;</field>
                                                        </block>
                                                      </value>
                                                      <value name="ELSE">
                                                        <block type="text" id="MvLb|NY@ABsU1ckoZRQl">
                                                          <field name="TEXT">&lt;span style='color:#f01630'&gt; AUS&lt;/span&gt;</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                              <next>
                                <block type="controls_if" id="1_p4|xA*iz~/5FO7+$sT">
                                  <value name="IF0">
                                    <block type="logic_compare" id="t8H6q49piQ*}svHaCSCS">
                                      <field name="OP">NEQ</field>
                                      <value name="A">
                                        <block type="get_value" id="P(pMElCz.laE5;*n89:v">
                                          <field name="ATTR">val</field>
                                          <field name="OID">sonoff.0.DEKO_5.POWER1</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="variables_get" id="FAD7c|rF@i)yh~}9#)EV">
                                          <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="control" id="XjO4=|hRrz9.$aTQ%X2X">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">sonoff.0.DEKO_5.POWER1</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="rtzEp4lHztN%rPgJhjFS">
                                          <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id="d?w0%tp(Q$?7BEkW5,nD">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">javascript.0.PV_Eigenverbrauch.DP_Verbraucher3</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="~yK:@*a8GdbY;V_l@W4H">
                                              <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="debug" id="Zx!5(240HY++bS@6)dy!" disabled="true">
                                              <field name="Severity">debug</field>
                                              <value name="TEXT">
                                                <shadow type="text" id="m28(eRp^}7YxxGkhtmu2">
                                                  <field name="TEXT">Verbraucher 3 ansteuern</field>
                                                </shadow>
                                              </value>
                                              <next>
                                                <block type="update" id="AobmUdTRHT%M??B`|O|h">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">javascript.0.PV_Eigenverbrauch.Verbraucher_3</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="text_join" id="l*mP~Z@+u5AM1))RjQQ+">
                                                      <mutation items="2"></mutation>
                                                      <value name="ADD0">
                                                        <block type="text" id="JVzu}xJ]**Z^}kwhM:G(">
                                                          <field name="TEXT">Poolpumpe ist </field>
                                                        </block>
                                                      </value>
                                                      <value name="ADD1">
                                                        <block type="logic_ternary" id="4]AG#TLA{[7iftWJrGJo">
                                                          <value name="IF">
                                                            <block type="logic_compare" id="A*OpC)NsaW8b5@:1R;jo">
                                                              <field name="OP">EQ</field>
                                                              <value name="A">
                                                                <block type="variables_get" id="$w8-U0oax/DDzCeJ.XzZ">
                                                                  <field name="VAR" id="M(sJ9{SKo+{%:on(Scq|">Verbraucher_3</field>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <block type="logic_boolean" id="Y^qL,^;.UW:2R;sbk0GW">
                                                                  <field name="BOOL">TRUE</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="THEN">
                                                            <block type="text" id="D3=Tnz![FQGD?PI9^?#2">
                                                              <field name="TEXT">&lt;span style='color:lightgreen'&gt; freigegeben&lt;/span&gt;</field>
                                                            </block>
                                                          </value>
                                                          <value name="ELSE">
                                                            <block type="text" id="Jzxo2+wNl,)?o#DtXxME">
                                                              <field name="TEXT">&lt;span style='color:#f01630'&gt; gesperrt&lt;/span&gt;</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
                <block type="procedures_defnoreturn" id="vSZX`k5eiB;pKBZ5|]DV" x="-4687" y="-687">
                  <field name="NAME">PV_Ueberschuss</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                  <statement name="STACK">
                    <block type="control" id="T*J1}lD,^B@Mv^X5RfpL">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">javascript.0.PV_Eigenverbrauch.SoC_Freigabe</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="vYdK/xZF*jEXdtGYxjsg">
                          <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                        </block>
                      </value>
                      <next>
                        <block type="update" id="M[(HyI-#CSj5KU]CJ.g;">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">javascript.0.PV_Eigenverbrauch.PV_Ueberschuss_Freigabe </field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text_join" id="S0m){u$ed`!7OBaLb5`n">
                              <mutation items="2"></mutation>
                              <value name="ADD0">
                                <block type="text" id="(dW}xu@7iN(3s}ZO}bZf">
                                  <field name="TEXT">PV Überschuss Freigabe </field>
                                </block>
                              </value>
                              <value name="ADD1">
                                <block type="logic_ternary" id="?Q%.}Uf{;n,ftJ/JS[#k">
                                  <value name="IF">
                                    <block type="logic_compare" id="Ff]l_d]wX2`=*|]xStRp">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="variables_get" id="FEX-)#QxiWs$?-?PK[GY">
                                          <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_boolean" id="m0#SDw^x9X.P10lAM)@L">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="THEN">
                                    <block type="text" id="^jeQ!p*@c7jQ?wQ#gsW.">
                                      <field name="TEXT">&lt;dev style='color:lightgreen'&gt; OK&lt;/dev&gt;</field>
                                    </block>
                                  </value>
                                  <value name="ELSE">
                                    <block type="text" id="DtBZ^o9QygMriGsGp9{5">
                                      <field name="TEXT">&lt;dev style='color:#f01630'&gt; gesperrt&lt;/dev&gt;</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </xml>
              

              Da @paul53 als ausgewiesener JavaScript Experte ja auch hier im Thread unterwegs ist, kurze Hijacking Frage zu diesem Script - Warum wird mir im Script Editor "timeout" als Fehler unterstrichen?

              var timer = null;
              var sperre = false;
              
              on({id: "rflink.0.channels.Byron_1.SWITCH_05"}, function(obj) {
                  if(!sperre) {
                  sperre = true;
                 setState("vis.0.control.command", '{"instance": "FFFFFFFF", "data": "200_Webcam", "command": "changeView"}');
                 if(timer) clearTimeout(timer);
                 timer = setTimeout(function () {
                    setState("vis.0.control.command", '{"instance": "FFFFFFFF", "data": "001_Main", "command": "changeView"}');
                 }, 20000);
                  timeout = setTimeout(function () {
                  setState("alexa2.0.Echo-Devices.G070RQ13813305NG.Commands.speak-volume"/*volume*/, 90, true);
                  }, 500);
                  timeout = setTimeout(function () {
                  setState("alexa2.0.Echo-Devices.G070RQ13813305NG.Commands.speak"/*speak*/, 'Es hat an der Haustür geklingelt');
                  }, 1000);
                  timeout = setTimeout(function () {
                  setState("alexa2.0.Echo-Devices.G070RQ13813305NG.Commands.speak-volume"/*volume*/, 40, true);
                  }, 1500);
                  setTimeout(function() {
                     sperre = false;
                  }, 5000); 
                }
              });
              

              ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

              1 Antwort Letzte Antwort
              0
              • GarganoG Offline
                GarganoG Offline
                Gargano
                schrieb am zuletzt editiert von
                #126

                @jb_sullivan sagte in Mathe-Genie gesucht (Kurvenberechnung):

                Warum wird mir im Script Editor "timeout" als Fehler unterstrichen?

                timeout ist nicht definiert, setz mal ein var in Zeile 12 davor.

                JB_SullivanJ 1 Antwort Letzte Antwort
                0
                • GarganoG Gargano

                  @jb_sullivan sagte in Mathe-Genie gesucht (Kurvenberechnung):

                  Warum wird mir im Script Editor "timeout" als Fehler unterstrichen?

                  timeout ist nicht definiert, setz mal ein var in Zeile 12 davor.

                  JB_SullivanJ Offline
                  JB_SullivanJ Offline
                  JB_Sullivan
                  schrieb am zuletzt editiert von
                  #127

                  @gargano PERFEKT - das war es schon - alle roten Unterstreichungen sind weg. Funktioniert hat das Script aber trotzdem :face_with_rolling_eyes:

                  ioBroker auf Intel Core i3-5005U NUC und Windwos10 Pro

                  1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @steff Hier mal die aktuelle Variante:

                    Estimate_calc_07.png

                    Um es variabel zu halten habe ich anfangs die Eckdaten in Variable gesetzt.
                    Wobei bei mir seltsamerweise die Ausrichtung der Anlage um 15° nach Süd verschoben werden musste.
                    Für morgen habe ich es nur noch auf 10° Verschiebung eingestellt um den Effekt zu sehen

                    Trigger ist der aktuelle Erzeugungswert vom Wechselrichter.
                    Nur für die Kurve würde ein Cron im Minutenabstand reichen.

                    Nach dem Berechnungsteil schreibe ich es in einen Datenpunkt, der dann geloggt wird um den chart zu erstellen
                    Das ausgeblendete ist ein debug, der früher als output gedient hatte, bis es brauchbar war

                    Das Ganze ist gepant in einer bestehenden Überschussladeregelung eines E-Autos eine automatisierte An- und Abschaltung zu steuern, indem vor dem Anschalten geprüft wird, ob die Sonneneinstarhlung stabil ist, um voraussichtlich längere Zeit laden zu können

                    S Offline
                    S Offline
                    SirLance
                    schrieb am zuletzt editiert von
                    #128

                    @homoran nach langem suchen bin ich auf diesen Thread gestoßen und da würde ich gerne nachfragen wieso dein Haus richtung Osten die PV installiert hat? oder sind die 140° anders zu sehen? wenn ich da mein Haus nehme bin ich etwa 13° richtung osten von 0° süden gedreht. Dh. -13° da bekomme ich aber durch deine berechnung sehr schlechte werte raus.

                    Kann da jemand evtl noch aufklärung geben.

                    Vielen Dank

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • S SirLance

                      @homoran nach langem suchen bin ich auf diesen Thread gestoßen und da würde ich gerne nachfragen wieso dein Haus richtung Osten die PV installiert hat? oder sind die 140° anders zu sehen? wenn ich da mein Haus nehme bin ich etwa 13° richtung osten von 0° süden gedreht. Dh. -13° da bekomme ich aber durch deine berechnung sehr schlechte werte raus.

                      Kann da jemand evtl noch aufklärung geben.

                      Vielen Dank

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #129

                      @sirlance sagte in Mathe-Genie gesucht (Kurvenberechnung):

                      würde ich gerne nachfragen wieso dein Haus richtung Osten die PV installiert hat?

                      weil der Bauträger es so gebaut hat!

                      @sirlance sagte in Mathe-Genie gesucht (Kurvenberechnung):

                      ich etwa 13° richtung osten von 0° süden gedreht. Dh. -13°

                      so sieht aber die Windrose nicht aus!
                      du wärst nach 167° ausgerichtet

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      S 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @sirlance sagte in Mathe-Genie gesucht (Kurvenberechnung):

                        würde ich gerne nachfragen wieso dein Haus richtung Osten die PV installiert hat?

                        weil der Bauträger es so gebaut hat!

                        @sirlance sagte in Mathe-Genie gesucht (Kurvenberechnung):

                        ich etwa 13° richtung osten von 0° süden gedreht. Dh. -13°

                        so sieht aber die Windrose nicht aus!
                        du wärst nach 167° ausgerichtet

                        S Offline
                        S Offline
                        SirLance
                        schrieb am zuletzt editiert von
                        #130

                        @homoran Ok danke für die schnelle Antwort mal schauen was Grafana mir anzeigt nach dem heutigen Tag.

                        Momentan noch alles manuell aber wenn das dann funktioniert sollte es auch automatisiert laufen :).

                        Ich würde mich mal anbieten das skript etwas aufzuräumen und als js version hier rein packen wenn es für dich ok ist.

                        Die entsprechenden stellen für die Wallbox dann in functions auslagern dann kann sich das jeder selber so bauen wie er es braucht

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • S SirLance

                          @homoran Ok danke für die schnelle Antwort mal schauen was Grafana mir anzeigt nach dem heutigen Tag.

                          Momentan noch alles manuell aber wenn das dann funktioniert sollte es auch automatisiert laufen :).

                          Ich würde mich mal anbieten das skript etwas aufzuräumen und als js version hier rein packen wenn es für dich ok ist.

                          Die entsprechenden stellen für die Wallbox dann in functions auslagern dann kann sich das jeder selber so bauen wie er es braucht

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #131

                          @sirlance sagte in Mathe-Genie gesucht (Kurvenberechnung):

                          dann kann sich das jeder selber

                          wenn er denn js beherrscht.

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • F Offline
                            F Offline
                            FISO
                            schrieb am zuletzt editiert von
                            #132

                            PV.xlsm

                            Ich hab mal vor Äonen mich mit diesem Thema berschäftigt. Das ganze zu berechnen ist sehr komplex. Die ideale Methode wäre es eine Funktion zu finden, die bei jedem Datum bei jeder Koordinate etc die richtigen Werte ausspuckt. Wenn man das als Formel hätte, und in ein Koordinatensystem eintragen würde, könnte man wie MartyBr durch integration die Fläche = Ertrag berechnen.

                            Aber leider sind das nur ganz ganz grobe Näherungen die die sekundäre Strahlung komplett außer acht lässt. Die lässt sich auch nicht berechnen denn die ist von sehr vielen Faktoren abhängig (Wolkendicke, Beschaffenheit der Wolke (Viel Wasser?), Temperatur, Klarer Himmel (schlecht für anlagen die auf diffuses licht angewiesen sind, zb NO Anlagen im Winter) ;)

                            In dem Excel tool kannst koordinaten eingeben und er berechnet dann die Elevation und den Azimut der Sonne. Mit den Cos Funktionen kannste dann den Einstrahlungswinkel auf die Modulplatten berechnen. Die Solarkonstante ist auf der Erde ca. 1000W/m² (Im Weltraum 1300 ca).

                            Bedenke dass die Kurve immer kleiner ist als die Kurve von der PV, da hier eindeutig die Streustrahlung fehlt!

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            786

                            Online

                            32.4k

                            Benutzer

                            81.5k

                            Themen

                            1.3m

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

                            • Du hast noch kein Konto? Registrieren

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