Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    6
    1
    52

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

[Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
solaredgemodbusgrafana
607 Posts 91 Posters 214.6k Views 99 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H hennerich

    Hallo Forum,

    ich habe mich bewusst dafür entschieden, diesen Topic nicht unter der Kategorie Visualisierung zu posten, weil es hier primär um die Anbindung des SolarEdge Systems an ioBroker geht. Visualisierung kommt später bzw. ist hier nur am Rande ein Thema.
    Vorweg möchte ich sagen, dass ich ein einfacher Nutzer bin und weder tiefe Kenntnisse im SolarEdge Bereich noch im ioBroker habe. Alle Informationen habe ich mir entweder selbst erarbeitet oder User aus den Foren (hauptsächlich hier oder im Photofoltaikforum) haben für die gleichen Fragen die entsprechenden Antworten gefunden. Mir geht es in erster Linie darum, an einer Stelle alle für dieses Szenario notwendigen Informationen zu sammeln.

    Teil1 – Konfiguration Modbus Adapter
    Voraussetzungen:
    Ihr braucht natürlich in erster Linie erst einmal einen SolarEdge Wechselrichter. In meinem Fall ist das der SE25k Wechselrichter.
    Außerdem wird zwingend der Energiezähler mit Modbus Anschluss benötigt. Der Wechselrichter kann von Haus aus kein Modbus sprechen. Der Energiezähler kommt noch mit den jeweiligen Stromwandlern, die im Sicherungskasten verbaut werden. Ihr lasst das natürlich von einem Fachmann erledigen.

    Zu guter Letzt gehe ich davon aus, dass ihr den Wechselrichter in euer Heimnetz eingebunden habt und dieser IP technisch auch erreichbar ist. Falls ihr nicht wisst, welche IP Adresse euer Router per DHCP vergeben hat, lasst ihr euch das von eurem Solarteur sagen, die können in die Netzwerkkonfiguration des WR reinschauen oder ihr habt die App und könnt selbst nachschauen (nur mit aktiver Registrierung als Installateur möglich).
    a85f6f9a-572a-4e02-9dc0-00997160ceb6-grafik.png

    ioBroker Setup:
    Ihr habt natürlich schon ioBroker laufen und das System funktioniert ohne Fehler.
    Verwendete Versionen bei mir:
    6b412bf2-2be7-4ef9-a7af-37929627ed05-grafik.png

    625e80bb-8fc3-4246-adcd-50064eed004f-grafik.png

    Zuerst fügt ihr einen (weiteren) Modbus Adapter hinzu. Bei mir sind es mittlerweile 2 Stück, weil ich auch noch meine Heizung wie hier beschrieben angebunden habe.
    Danach wird der Adapter konfiguriert.
    659a1f77-527a-417b-ba4f-0e6d08ac6cef-grafik.png

    Partner IP Adresse ist die von eurem Wechselrichter.
    Der Port ist der default eingestellte Port für den Modbus im Wechselrichter, solltet ihr nicht ändern müssen.
    Die Geräte ID ist (in meinem Fall) die 1.
    64d4a8eb-7db9-4bc8-8637-9f560c540de3-grafik.png

    Wichtig! Trotz der Tatsache, dass bei mir der Energiezähler erfolgreich installiert wurde und mir mein Solarteur mitgeteilt hat, dass alles korrekt funktioniert war bei mir Modbus TCP nicht aktiviert. Darauf müsst ihr achten, sonst klappt keine Verbindung.
    ffd20662-65bf-4e55-902e-1f1e46835d4f-grafik.png

    Und noch was wichtiges! Wenn ihr nur die Verbindungseinstellungen vom Modbus im ioBroker konfiguriert habt und keine Daten, die ihr abrufen wollt, dann verbindet sich der Adapter auch nicht. Ich hab da ganz schön lange suchen müssen, bevor ich dazu eine Lösung hatte. Ich dachte immer, an meiner Konfiguration würde etwas nicht stimmen.

    Also richtet ihr mindestens eine Adresse unter Holding Register ein, die ihr abrufen wollt. Und bevor ihr das tut, schaut ihr erstmal in die dazugehörige SolarEdge Doku:
    Englisch (ist ausführlicher als die deutsche, ich verstehe nicht warum)
    Deutsch

    Ich beziehe mich jetzt an dieser Stelle mal auf die englische Dokumentation. Dort stehen ab der Seite 16 die erforderlichen Informationen.
    Auf der Seite 15 unten findet ihr aber noch eine weitere, wichtige Information, die ich bei mir leider überlesen (bzw. nicht verstanden hatte):
    The base Register Common Block is set to 40001 (MODBUS PLC address [base 1]) or 40000 (MODBUS Protocol Address [base 0]).

    In meinem Fall wird base 0 verwendet (fragt mich nicht warum und wieso) und das bedeutet, dass alle in der Doku stehenden Adressen um eins reduziert werden müssen.
    Beispiel:
    ID 40094 ist die gesamte, produzierte Energie in Wh und die muss dann im Modbus ioBroker die ID 40093 sein.

    Ihr müsst dann selbst entscheiden, welche Adressen ihr importieren möchtet und welche ihr nicht braucht.
    Hier hab ich euch mal meinen Export angehangen:

    deviceId;address;name;description;unit;type;len;factor;offset;role;room;poll;wp
    1;40000;C_SunSpec_ID;"Wert = ""SunS"" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte";;uint32be;2;1;0;value;;true;false
    1;40002;C_SunSpec_DID;Wert = 0x0001. Identifiziert dies eindeutig als einen SunSpec “Common Block“;;uint16be;1;1;0;value;;true;false
    1;40003;C_SunSpec_Länge;65 = Länge eines Blocks in 16-bit Registern;;uint16be;1;1;0;value;;true;false
    1;40004;C_Hersteller;"Bei SunSpec eingetragener Wert = ""SolarEdge""";;string;16;1;0;value;;true;false
    1;40020;C_Modell;Spezifischer SolarEdge Wert;;string;16;1;0;value;;true;false
    1;40044;C_Version;Spezifischer SolarEdge Wert;;string;8;1;0;value;;true;false
    1;40052;C_Seriennummer;Eindeutiger SolarEdge Wert;;string;16;1;0;value;;true;false
    1;40069;C_SunSpec_DID;101 = Einphasig, 102 = Spaltphase, 103 = Dreiphasig;;uint16be;1;1;0;value;;true;false
    1;40071;I_AC_Strom;AC-Gesamtstromwert;A;uint16be;1;1;0;value;;true;false
    1;40072;I_AC_StromA;AC-Phase A (L1) Stromwert;A;uint16be;1;1;0;value;;true;false
    1;40073;I_AC_StromB;AC-Phase B (L2) Stromwert;A;uint16be;1;1;0;value;;true;false
    1;40074;I_AC_StromC;AC-Phase C (L3) Stromwert;A;uint16be;1;1;0;value;;true;false
    1;40075;I_AC_Strom_SF;AC-Strom Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40083;I_AC_Leistung;AC-Leistungswert;W;uint16be;1;1;0;value;;true;false
    1;40084;I_AC_Leistung_SF;AC-Leistung Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40087;I_AC_VA;Scheinleistung;VA;uint16be;1;1;0;value;;true;false
    1;40088;I_AC_VA_SF;Scheinleistung Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40089;I_AC_VAR;Blindleistung;VAR;uint16be;1;1;0;value;;true;false
    1;40090;I_AC_VAR_SF;Blindleistung Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40091;I_AC_PF;Leistungsfaktor;%;uint16be;1;1;0;value;;true;false
    1;40092;I_AC_PF_SF;Leistungsfaktor Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40093;I_AC_Energie_WH;AC Gesamt-Energieproduktion;Wh;uint32be;2;1;0;value;;true;false
    1;40095;I_AC_Energie_WH_SF;AC Gesamtenergie Skalierungsfaktor;SF;uint16be;1;1;0;value;;true;false
    1;40096;I_DC_Strom;DC-Stromwert;A;uint16be;1;1;0;value;;true;false
    1;40097;I_DC_Strom_SF;DC-Strom Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40098;I_DC_Spannung;DC-Spannungswert;V;uint16be;1;1;0;value;;true;false
    1;40099;I_DC_Spannung_SF;DC-Spannung Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40100;I_DC_Leistung;DC-Leistungswert;W;uint16be;1;1;0;value;;true;false
    1;40101;I_DC_Leistung_SF;DC-Leistung Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40103;I_Temp_Kühler;Kühlkörpertemperatur;°C;uint16be;1;1;0;value;;true;false
    1;40106;I_Temp_SF;Kühlkörpertemperatur Skalierungsfaktor;SF;int16be;1;1;0;value;;true;false
    1;40107;I_Status;Betriebszustand (1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup);;uint16be;1;1;0;value;;true;false
    1;40108;I_Status_Anbieter;Anbieter-spezifischer Betriebszustand sowie Fehlercodes: 1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup;;uint16be;1;1;0;value;;true;false
    1;40123;C_Manufacturer;Meter manufacturer;;string;32;1;0;value;;true;false
    1;40139;C_Model;Meter model;;string;32;1;0;value;;true;false
    1;40155;C_Option;Export + Import, Production, consumption;;string;16;1;0;value;;true;false
    1;40190;M_AC_Current;AC Current (sum of active phases);A;uint16be;1;1;0;value;;true;false
    1;40194;M_AC_Current_S F;AC Current Scale Factor;SF;int16be;1;1;0;value;;true;false
    1;40206;M_AC_Power;Total Real Power (sum of active phases);W;int16be;1;1;0;value;;true;false
    1;40210;M_AC_Power_SF;AC Real Power Scale Factor;SF;int16be;1;1;0;value;;true;false
    1;40226;M_Exported;Total Exported Real Energy;Wh;uint32be;2;1;0;value;;true;false
    1;40234;M_Imported;Total Imported Real Energy;Wh;uint32be;2;1;0;value;;true;false
    1;40242;M_Energy_W_SF;Real Energy Scale Factor;SF;int16be;1;1;0;value;;true;false
    
    

    Ab der Seite 16 unten findet ihr die Adressen des Wechselrichters und 19 die Adressen für Meter 1 (also den Energiemesser). Meter 2 und 3 sind bei mir nicht vorhanden.
    So sieht das ganze jetzt bei mir aus:
    632bbb53-cb4b-4c4d-9301-35105e63dbe3-grafik.png

    Wenn ihr alles richtig gemacht habt, dann ist 1. Eure Modbus Instanz grün und ihr findet in den Objekten die ausgelesenen Werte.

    H Offline
    H Offline
    hennerich
    wrote on last edited by hennerich
    #2

    Teil2 – Werte umrechnen und in Grafana anzeigen

    Jetzt haben wir also die Werte im ioBroker. Wie gehts nun damit weiter?

    Zuerst einmal muss jeder für sich selbst entscheiden, welche Werte für ihn von Interesse sind. Ich für meinen Teil verwende die folgenden Werte:
    Wechselrichter

    • 40084: AC-Leistungswert in W (aktuelle PV Produktion)
    • 40093: AC Gesamt-Energieproduktion in Wh (also alles, was eure Anlage bisher erzeugt hat)
    • 40103: Kühlkörpertemperatur vom Wechselrichter in °C (man weiß ja nie)

    Energiezähler

    • 40206: Total Real Power (aktueller Netzbezug bzw. Einspeisung)
    • 40226: Total Exported Real Energy (was ihr heute erzeugt habt)
    • 40234: Total Imported Real Energy (was ihr heute aus dem Netz bezogen habt)

    Aus den letzten beiden Werte kann man den Eigenverbrauch heute berechnen.

    Dann müssen wir verstehen, dass SolarEdge für viele Werte noch Skalierungsfaktoren mitliefert. Auch das ist etwas, dass nur in der englischen Doku auftaucht. Dort steht nämlich:


    As an alternative to floating point format, values are represented by Integer values with a signed scale factor applied. The scale factor explicitly shifts the decimal point to left (negative value) or to the right (positive value).

    For example, a value “Value” may have an associated value “Value_SF”
    Value = “Value” * 10^ Value_SF for example:

    • For “Value” = 2071 and “Value_SF” = -2 Value = 2071*10^-2 = 20.71
    • For “Value” = 2071 and “Value_SF” = 2 Value = 2071*10^2 = 2071

    Man muss die Werte die man möchte also erst noch umrechnen. Und sie müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen. Dazu geht mein Dank an inkoFa aus dem PV Forum, der mir mit seiner Lösung dazu sehr weitergeholfen hat.

    Für den Wert 40084: AC-Leistungswert legt ihr folgendes JS Script an:

    function convertValue(value, factor) {
       if (value === null) return;
       if (factor === null) factor = 0;
       setState('Solar.Wechselrichter.PVLeistungAktuell', value * Math.pow(10, factor), true);
    }  
     
    createState('Solar.Wechselrichter.PVLeistungAktuell', {
    	name: 'PVLeistungAktuell',
    	unit: 'W',
    	min:  0,
    	type: 'number',
    	role: 'value.energy'
    }, function () {
    	on('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/, function(obj) {
    		var timeout = setTimeout(function () {
    			clearTimeout(timeout);
    			var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
    			convertValue(obj.state.val, factorState ? factorState.val : 0);
    		}, 100); 
    	});
    	var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
    	var valueState = getState('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/);
    	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
    });
    

    Für den Wert 40206: Total Real Power legt ihr folgendes JS Script an:

    function convertValue(value, factor) {
       if (value === null) return;
       if (factor === null) factor = 0;
       setState('Solar.Wechselrichter.ACTotalRealPower', value * Math.pow(10, factor), true);
    }  
     
    createState('Solar.Wechselrichter.ACTotalRealPower', {
    	name: 'ACTotalRealPower',
    	unit: 'W',
    	min:  -999999,
    	type: 'number',
    	role: 'value.energy'
    }, function () {
    	on('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/, function(obj) {
    		var timeout = setTimeout(function () {
    			clearTimeout(timeout);
    			var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
    			convertValue(obj.state.val, factorState ? factorState.val : 0);
    		}, 100); 
    	});
    	var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
    	var valueState = getState('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/);
    	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
    });
    

    Und für den Wert 40103: Kühlkörpertemperatur legt ihr folgendes JS Script an:

    function convertValue(value, factor) {
       if (value === null) return;
       if (factor === null) factor = 0;
       setState('Solar.Wechselrichter.TempWechselrichter', value * Math.pow(10, factor), true);
    }  
     
    createState('Solar.Wechselrichter.TempWechselrichter', {
    	name: 'TempWechselrichter',
    	unit: '°C',
    	min:  -999999,
    	type: 'number',
    	role: 'value.energy'
    }, function () {
    	on('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/, function(obj) {
    		var timeout = setTimeout(function () {
    			clearTimeout(timeout);
    			var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
    			convertValue(obj.state.val, factorState ? factorState.val : 0);
    		}, 100); 
    	});
    	var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
    	var valueState = getState('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/);
    	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
    });
    

    Jetzt könnt ihr mit den Umrechnungen die entsprechenden Objekte befüllen. Ich hab also ein Blockly Script Hausverbrauch angelegt:
    518582a6-ed9e-4ee9-a2da-a2d184bda8f4-grafik.png
    Importiert gerne folgendes:

    <xml xmlns="https://developers.google.com/blockly/xml">
     <block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-937" y="63">
       <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
       <field name="CONDITION">ne</field>
       <field name="ACK_CONDITION"></field>
       <statement name="STATEMENT">
         <block type="update" id="{8c)~K%7n5#35[IVg*CU">
           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
           <field name="OID">javascript.0.Solar.Wechselrichter.Hausverbrauch</field>
           <field name="WITH_DELAY">FALSE</field>
           <value name="VALUE">
             <block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/">
               <field name="OP">MINUS</field>
               <value name="A">
                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!{7/(]DX3lGP@Il`Y=E1">
                   <field name="NUM">1</field>
                 </shadow>
                 <block type="get_value" id="_;teC|IbrE2JD_fEN~js">
                   <field name="ATTR">val</field>
                   <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                 </block>
               </value>
               <value name="B">
                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="M:s(2P888iDd:XzoTo4p">
                   <field name="NUM">1</field>
                 </shadow>
                 <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p">
                   <field name="ATTR">val</field>
                   <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
                 </block>
               </value>
             </block>
           </value>
         </block>
       </statement>
     </block>
    </xml>
    

    Und das schreibt ihr z.B. in die InfluxDB, um den Wert im Grafana anzuzeigen:
    21df3f32-6689-48ea-93e1-65740130c347-grafik.png

    Ich versuche mal nach und nach noch Sachen hier zu ergänzen. Und eure Meinung dazu interessiert mich natürlich auch brennend. Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe? Wie sehen eure (PV) Dashboards aus, die ihr umgesetzt habt?

    Tutorial UVR1611 C.M.I. Integration
    Tutorial SolarEdge Integration via ModBus

    H lobomauL A E S 6 Replies Last reply
    5
    • H hennerich

      Teil2 – Werte umrechnen und in Grafana anzeigen

      Jetzt haben wir also die Werte im ioBroker. Wie gehts nun damit weiter?

      Zuerst einmal muss jeder für sich selbst entscheiden, welche Werte für ihn von Interesse sind. Ich für meinen Teil verwende die folgenden Werte:
      Wechselrichter

      • 40084: AC-Leistungswert in W (aktuelle PV Produktion)
      • 40093: AC Gesamt-Energieproduktion in Wh (also alles, was eure Anlage bisher erzeugt hat)
      • 40103: Kühlkörpertemperatur vom Wechselrichter in °C (man weiß ja nie)

      Energiezähler

      • 40206: Total Real Power (aktueller Netzbezug bzw. Einspeisung)
      • 40226: Total Exported Real Energy (was ihr heute erzeugt habt)
      • 40234: Total Imported Real Energy (was ihr heute aus dem Netz bezogen habt)

      Aus den letzten beiden Werte kann man den Eigenverbrauch heute berechnen.

      Dann müssen wir verstehen, dass SolarEdge für viele Werte noch Skalierungsfaktoren mitliefert. Auch das ist etwas, dass nur in der englischen Doku auftaucht. Dort steht nämlich:


      As an alternative to floating point format, values are represented by Integer values with a signed scale factor applied. The scale factor explicitly shifts the decimal point to left (negative value) or to the right (positive value).

      For example, a value “Value” may have an associated value “Value_SF”
      Value = “Value” * 10^ Value_SF for example:

      • For “Value” = 2071 and “Value_SF” = -2 Value = 2071*10^-2 = 20.71
      • For “Value” = 2071 and “Value_SF” = 2 Value = 2071*10^2 = 2071

      Man muss die Werte die man möchte also erst noch umrechnen. Und sie müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen. Dazu geht mein Dank an inkoFa aus dem PV Forum, der mir mit seiner Lösung dazu sehr weitergeholfen hat.

      Für den Wert 40084: AC-Leistungswert legt ihr folgendes JS Script an:

      function convertValue(value, factor) {
         if (value === null) return;
         if (factor === null) factor = 0;
         setState('Solar.Wechselrichter.PVLeistungAktuell', value * Math.pow(10, factor), true);
      }  
       
      createState('Solar.Wechselrichter.PVLeistungAktuell', {
      	name: 'PVLeistungAktuell',
      	unit: 'W',
      	min:  0,
      	type: 'number',
      	role: 'value.energy'
      }, function () {
      	on('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/, function(obj) {
      		var timeout = setTimeout(function () {
      			clearTimeout(timeout);
      			var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
      			convertValue(obj.state.val, factorState ? factorState.val : 0);
      		}, 100); 
      	});
      	var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
      	var valueState = getState('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/);
      	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
      });
      

      Für den Wert 40206: Total Real Power legt ihr folgendes JS Script an:

      function convertValue(value, factor) {
         if (value === null) return;
         if (factor === null) factor = 0;
         setState('Solar.Wechselrichter.ACTotalRealPower', value * Math.pow(10, factor), true);
      }  
       
      createState('Solar.Wechselrichter.ACTotalRealPower', {
      	name: 'ACTotalRealPower',
      	unit: 'W',
      	min:  -999999,
      	type: 'number',
      	role: 'value.energy'
      }, function () {
      	on('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/, function(obj) {
      		var timeout = setTimeout(function () {
      			clearTimeout(timeout);
      			var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
      			convertValue(obj.state.val, factorState ? factorState.val : 0);
      		}, 100); 
      	});
      	var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
      	var valueState = getState('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/);
      	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
      });
      

      Und für den Wert 40103: Kühlkörpertemperatur legt ihr folgendes JS Script an:

      function convertValue(value, factor) {
         if (value === null) return;
         if (factor === null) factor = 0;
         setState('Solar.Wechselrichter.TempWechselrichter', value * Math.pow(10, factor), true);
      }  
       
      createState('Solar.Wechselrichter.TempWechselrichter', {
      	name: 'TempWechselrichter',
      	unit: '°C',
      	min:  -999999,
      	type: 'number',
      	role: 'value.energy'
      }, function () {
      	on('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/, function(obj) {
      		var timeout = setTimeout(function () {
      			clearTimeout(timeout);
      			var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
      			convertValue(obj.state.val, factorState ? factorState.val : 0);
      		}, 100); 
      	});
      	var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
      	var valueState = getState('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/);
      	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
      });
      

      Jetzt könnt ihr mit den Umrechnungen die entsprechenden Objekte befüllen. Ich hab also ein Blockly Script Hausverbrauch angelegt:
      518582a6-ed9e-4ee9-a2da-a2d184bda8f4-grafik.png
      Importiert gerne folgendes:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-937" y="63">
         <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <statement name="STATEMENT">
           <block type="update" id="{8c)~K%7n5#35[IVg*CU">
             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
             <field name="OID">javascript.0.Solar.Wechselrichter.Hausverbrauch</field>
             <field name="WITH_DELAY">FALSE</field>
             <value name="VALUE">
               <block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/">
                 <field name="OP">MINUS</field>
                 <value name="A">
                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!{7/(]DX3lGP@Il`Y=E1">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="_;teC|IbrE2JD_fEN~js">
                     <field name="ATTR">val</field>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                   </block>
                 </value>
                 <value name="B">
                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="M:s(2P888iDd:XzoTo4p">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p">
                     <field name="ATTR">val</field>
                     <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
                   </block>
                 </value>
               </block>
             </value>
           </block>
         </statement>
       </block>
      </xml>
      

      Und das schreibt ihr z.B. in die InfluxDB, um den Wert im Grafana anzuzeigen:
      21df3f32-6689-48ea-93e1-65740130c347-grafik.png

      Ich versuche mal nach und nach noch Sachen hier zu ergänzen. Und eure Meinung dazu interessiert mich natürlich auch brennend. Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe? Wie sehen eure (PV) Dashboards aus, die ihr umgesetzt habt?

      H Offline
      H Offline
      hennerich
      wrote on last edited by hennerich
      #3

      Teil3 – Visualisierung (ob mit Grafana oder mit anderen Tools muss ich sehen)
      ongoing, erster Screenshot von meinem Grafana Dashboard (auch hier danke an inkoFa, das ist nämlich seine Idee gewesen).
      29780207-dc8d-4d73-bee0-8348d48a33c8-grafik.png

      HIer noch das Grafana json für einen Import.
      PV Anlage-1605288773411.json

      Damit ihr euch das auch nachbauen könnt, erkläre ich nachfolgend welche Einstellungen dafür notwendig sind. Der linke Block kommt von meiner Heizung, den lasse ich außen vor und konzentriere mich nur auf die PV Sachen.

      1. Graph PV
      Quellen aus der InfluxDB sind

      • PVLeistungAktuell -> gelber Graph
      • Hausverbrauch -> blauer Graph
      • TempWechselrichter -> orangener Graph
      • (Sonnenstand) -> gestrichelt grüne Linie

      Die ersten 3 Werte solltet ihr schon haben wenn ihr oben aus meinem Teil 2 die Sachen übernommen habt.

      Sonnenstand war ein fertiges JS Script:

      // calculates the sun position, path and power throughout the day
      // based on from http://www.stjarnhimlen.se/comp/tutorial.html
      // most var-names are identical to above tutorial
      // combined with Sonnenstand-Script: paul53, pix; 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
      // Angepasst ykuendig 12.02.17; stringify im log, ack = true bei setState und Diverses 
      
      var suncalc = require('suncalc'),
         result =  getObject("system.adapter.javascript.0"),
         lat =  result.native.latitude,
         long = result.native.longitude;
         log("long: " + long + " - lat: " + lat);
      
      var modtilt =       50;     //Dachneigung in Grad (Solar panel's tilt angle)
      var modazi =        285;    //Ausrichtung des Hauses in Grad zB SSW (Solar panel's azimut)
      var modsufrace =    148.0;   //Paneloberfläche in m2 (Solar panel's surface in sq. meters)
      var modeff =        0.211;  //Annäherung an Panel-Wirkungsgrad zB 18 Prozent (modules efficiency correction)
                                              // Hier kann an einem klaren Tag etwas geschraubt werden ;-)
      
      var altitude;       // Calculated Elevation
      var azimuth;        // Calculated Azimuth
      
      createState('javascript.0.Solar.Sonnenstand.Elevation', 0, {unit: '°'});
      createState('javascript.0.Solar.Sonnenstand.Azimut', 0, {unit: '°'});
      createState('javascript.0.Solar.Sonnenstand.PanelPossible', 0, {unit: 'W'});
      // ganz am Ende die setStates anpassen nicht vergessen!
      
      // Do not change below, until You know what You are doing!
      // ********************************************************
      
      Math.degrees = function(radians) {return radians * 180 / Math.PI;};
      Math.radians = function(degrees) {return degrees * Math.PI / 180;};
      
      function Sonnenstand_berechnen () {
         var now = new Date();
         var sunpos = suncalc.getPosition(now, lat, long);
         log("Script Sonnenstand; latitude : " + result.native.latitude + " / longitude: " + result.native.longitude,'debug');
         log("Script Sonnenstand; sunpos: " + JSON.stringify(sunpos),'debug');
      
         altitude = Math.degrees(sunpos.altitude);
         azimuth =  Math.degrees(sunpos.azimuth) + 180;
      
         // The intensity of the direct component of sunlight throughout each day can be determined as 
         // a function of air mass. based on: http://pveducation.org/pvcdrom/properties-of-sunlight/air-mass#formula
         var airmass = 1/Math.cos((90-altitude)*4*Math.asin(1)/360); 
      
         // Sincident is the intensity on a plane perpendicular to the sun's rays in units of kW/m2 and AM is the air mass.
         // The value of 1.353 kW/m2 is the solar constant and the number 0.7 arises from the fact that about 70% of the radiation incident on the atmosphere is transmitted
         // to the Earth. The extra power term of 0.678 is an empirical fit to the observed data and takes into account the non-uniformities in the atmospheric layers.
         // ykuendig: use different values because of pv instead thermal panels
         var Sincident = (1.367*Math.pow(0.78,Math.pow(airmass,0.6)));
         var fraction = Math.cos(altitude*4*Math.asin(1)/360)*Math.sin(modtilt*4*Math.asin(1)/360)*Math.cos(azimuth*4*Math.asin(1)/360-modazi*4*Math.asin(1)/360)+Math.sin(altitude*4*Math.asin(1)/360)*Math.cos(modtilt*4*Math.asin(1)/360);
      
         // W/m² light intensity on the module * module's surface
         var SmoduleInt = Sincident * fraction * modsufrace * 1000;
         if(SmoduleInt<0) {
             SmoduleInt =    0;
         }
         // Module Effective in relation of the efficiency of the used panel
         var SmoduleEff = SmoduleInt * modeff;
      
         if( altitude < 0 ) {
             SmoduleInt =    0;
             SmoduleEff =    0;
             altitude =      0;
         }
      
         log("Script Sonnenstand; Erfolgreich gelaufen, Werte akzeptiert", "info");
         log("Script Sonnenstand; airmass: " + airmass,"debug");
         log("Script Sonnenstand; azimuth: " + azimuth,"debug");
         log("Script Sonnenstand; altitude: " + altitude,"debug");
         log("Script Sonnenstand; SmoduleInt: " + SmoduleInt,"debug");
         log("Script Sonnenstand; SmoduleEff: " + SmoduleEff,"debug");
      
         // Change ID to the created States
         setState('javascript.0.Solar.Sonnenstand.Elevation'/*javascript 0 Solar Sonnenstand Elevation*/,altitude.toFixed(1), true);
         setState('javascript.0.Solar.Sonnenstand.Azimut'/*javascript 0 Solar Sonnenstand Azimut*/,azimuth.toFixed(), true);
         setState('javascript.0.Solar.Sonnenstand.PanelPossible'/*javascript 0 Solar Sonnenstand PanelPossible*/, SmoduleEff.toFixed(), true);
      }
      
      // -> Zyklisch
      
      schedule("*/10 * * * *", Sonnenstand_berechnen);
      Sonnenstand_berechnen(); // bei Scriptstart
      
      


      2. Graph PV Erzeugung in kWh
      Quelle aus der InfluxDB sind

      • PVErzeugteEnergieAktuell
        Blockly Script (PVBerechneTageswerte):

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="on_ext" id="y@lWX)*%NiA!ZGLd:;Q$" x="-687" y="87">
         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <value name="OID0">
           <shadow type="field_oid" id="9.%}C_f#R|xD+X-(7)r2">
             <field name="oid">modbus.1.holdingRegisters.40234_M_Imported</field>
           </shadow>
         </value>
         <statement name="STATEMENT">
           <block type="update" id="x.N~f*hrQxS~@9cMYoiE">
             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
             <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
             <field name="WITH_DELAY">FALSE</field>
             <value name="VALUE">
               <block type="math_arithmetic" id="D*z62x|?#F|Qe8hp+]U#">
                 <field name="OP">DIVIDE</field>
                 <value name="A">
                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="math_arithmetic" id="_0_3+_+SBF]n}Kb~ltP`">
                     <field name="OP">MINUS</field>
                     <value name="A">
                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                         <field name="NUM">1</field>
                       </shadow>
                       <block type="get_value" id="^.WWE79[swjNwM%X:zJ#">
                         <field name="ATTR">val</field>
                         <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                       </block>
                     </value>
                     <value name="B">
                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                         <field name="NUM">1</field>
                       </shadow>
                       <block type="get_value" id="rHO$M#tK%xLrylsZ-_T^">
                         <field name="ATTR">val</field>
                         <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <value name="B">
                   <shadow type="math_number" id="+9z/fggnWUX%RN-aCC}H">
                     <field name="NUM">1000</field>
                   </shadow>
                 </value>
               </block>
             </value>
           </block>
         </statement>
         <next>
           <block type="on_ext" id="J8C5.l@n=!ELlI4jb^Cv">
             <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <value name="OID0">
               <shadow type="field_oid" id="`;Z)LfB(n.m5UePJboM.">
                 <field name="oid">modbus.1.holdingRegisters.40226_M_Exported</field>
               </shadow>
             </value>
             <statement name="STATEMENT">
               <block type="update" id="3sKIv|]w==qqH!t]{]er">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="math_arithmetic" id="(V84_Uc.l7mo6_]Ndw=E">
                     <field name="OP">DIVIDE</field>
                     <value name="A">
                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                         <field name="NUM">1</field>
                       </shadow>
                       <block type="math_arithmetic" id="`wmR.[]:x(_|+Ks#Vjge">
                         <field name="OP">MINUS</field>
                         <value name="A">
                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="get_value" id="*?`QT7v~({Lk5}Q_W3Sp">
                             <field name="ATTR">val</field>
                             <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                           </block>
                         </value>
                         <value name="B">
                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="get_value" id="C/6|^=`oS?+z;ZgjfCQ8">
                             <field name="ATTR">val</field>
                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <value name="B">
                       <shadow type="math_number" id="{g~E#A,TtN32@J#cPfMw">
                         <field name="NUM">1000</field>
                       </shadow>
                     </value>
                   </block>
                 </value>
               </block>
             </statement>
             <next>
               <block type="on_ext" id="Pm$w:I$X8;ThSV?()/nh">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                 <field name="CONDITION">ne</field>
                 <field name="ACK_CONDITION"></field>
                 <value name="OID0">
                   <shadow type="field_oid" id="e66:C.|L}2q?[6@59){[">
                     <field name="oid">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                   </shadow>
                 </value>
                 <statement name="STATEMENT">
                   <block type="update" id="t1/a#un}^R;:mQVHr8jm">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                     <field name="WITH_DELAY">FALSE</field>
                     <value name="VALUE">
                       <block type="math_arithmetic" id="ND)2(danTD2neCrSu2JB">
                         <field name="OP">DIVIDE</field>
                         <value name="A">
                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="math_arithmetic" id="?`iltSk96+NT/#(xwS?Y">
                             <field name="OP">MINUS</field>
                             <value name="A">
                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="get_value" id="OFk=pk-c-W=Gi}w$_Y2;">
                                 <field name="ATTR">val</field>
                                 <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                               </block>
                             </value>
                             <value name="B">
                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="get_value" id="ghQY!ub_kT5!C:SD]!6C">
                                 <field name="ATTR">val</field>
                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <value name="B">
                           <shadow type="math_number" id=",*aj+DPuKR(z2t@soOmt">
                             <field name="NUM">1000</field>
                           </shadow>
                         </value>
                       </block>
                     </value>
                   </block>
                 </statement>
                 <next>
                   <block type="schedule" id="y@C$399x.Z9LJOobUceT">
                     <field name="SCHEDULE">{"time":{"exactTime":true,"start":"02:30"},"period":{"days":1}}</field>
                     <statement name="STATEMENT">
                       <block type="comment" id="yU_Y*jFn(V4*WirA3rTP">
                         <field name="COMMENT">Zaehler nachts zuruecksetzen</field>
                         <next>
                           <block type="update" id="ZmWWr!J?Q}zQ3xq78J:g">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="math_arithmetic" id="e5viXk6#Wkb/hqiz{WOa">
                                 <field name="OP">DIVIDE</field>
                                 <value name="A">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="math_arithmetic" id="n,)T9SU!pidKtCc7KB(7">
                                     <field name="OP">MINUS</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="qso(1r{,v2oE04.5]n]N">
                                         <field name="ATTR">val</field>
                                         <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="gjxk;XA/j|huHh)p77gz">
                                         <field name="ATTR">val</field>
                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow type="math_number" id="j+)1Y}_JluEc)ku?BZPj">
                                     <field name="NUM">1000</field>
                                   </shadow>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="update" id="_wV6dLC~S.Bo7pp4.Aj~">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="math_arithmetic" id="nf3~e!!BaO*iq}*Kfz*Z">
                                     <field name="OP">DIVIDE</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="math_arithmetic" id="Ul[,7Q;(q]k7yr{seCG@">
                                         <field name="OP">MINUS</field>
                                         <value name="A">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="P_)QxWEu)wh*,/yx$3#t">
                                             <field name="ATTR">val</field>
                                             <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="mFcJHv@,oR`k,4m?^}pH">
                                             <field name="ATTR">val</field>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="j]J$8,Mk[^f@_k`R(9Yt">
                                         <field name="NUM">1000</field>
                                       </shadow>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="update" id="~@8dfv@ELn2/H2IA=AmM">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="math_arithmetic" id="H5=db9;BV1SDP#{Xn01W">
                                         <field name="OP">DIVIDE</field>
                                         <value name="A">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_arithmetic" id="lQn$HnGJA]r@=SmpO1}O">
                                             <field name="OP">MINUS</field>
                                             <value name="A">
                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="get_value" id="Y#;DXy}HY5|D%74t]@o$">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="get_value" id="uZlP#=DTf:JC}=pj==8w">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="-9Wj3.9tCx|jW??D(3w-">
                                             <field name="NUM">1000</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      3. Gauge PV Leistung
      Quelle aus der InfluxDB sind

      • PVLeistungAktuell

      4. Stat Import/Export
      Quelle aus der InfluxDB sind

      • ACTotalRealPower

      5. Stat Hausverbrauch
      Quelle aus der InfluxDB sind

      • Hausverbrauch

      6. Stat Einspeisung heute
      Quelle aus der InfluxDB sind

      • PVExportierteEnergieAktuell -> siehe Blockly Script oben

      7. Stat PV Erzeugung heute
      Quelle aus der InfluxDB sind

      • PVErzeugteEnergieAktuell

      8. Stat Eigenverbrauch heute
      Quelle aus der InfluxDB sind

      • PVEigenverbrauchAktuell
        Blockly Script (PVEigenverbrauch):

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="on_ext" id="5M,hgtrmhy-Ix[8jnCFF" x="-788" y="138">
         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <value name="OID0">
           <shadow type="field_oid" id="yQ06)5*@k]/k#[*a^Z$^">
             <field name="oid">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
           </shadow>
         </value>
         <statement name="STATEMENT">
           <block type="update" id="1dc~gm$kBR3F64Q_j#}}">
             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
             <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
             <field name="WITH_DELAY">FALSE</field>
             <value name="VALUE">
               <block type="math_arithmetic" id="t|ASI*V*8O-@Hi69]^F^">
                 <field name="OP">MINUS</field>
                 <value name="A">
                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="xKx}z@cYh|gQm$K7_yI/">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="e$tM9C/J*|FAH|eZ{8lb">
                     <field name="ATTR">val</field>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                   </block>
                 </value>
                 <value name="B">
                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="S9|ObqahZ5YT5{CQPLO%">
                     <field name="NUM">1</field>
                   </shadow>
                   <block type="get_value" id="9IvPeD|%/z0+ql%M]qH3">
                     <field name="ATTR">val</field>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                   </block>
                 </value>
               </block>
             </value>
           </block>
         </statement>
       </block>
      </xml>
      

      9 Stat Nettobezug heute
      Quelle aus der InfluxDB sind

      • PVImpertierteEnergieAktuell -> siehe Blockly Script oben

      10 Stat Ersparnis Tag
      Quelle aus der InfluxDB sind

      • ErsparnisPVAnlageTag
        Blockly Script (Kosten):

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</variable>
         <variable id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</variable>
         <variable id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</variable>
         <variable id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</variable>
       </variables>
       <block type="variables_set" id="V;zBuc1uVM)2]%Q?uyMU" x="87" y="63">
         <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
         <value name="VALUE">
           <block type="math_number" id="MN*t)_!p7(nU)*,XUffX">
             <field name="NUM">0</field>
           </block>
         </value>
         <next>
           <block type="variables_set" id="HOw2PBH1W2Pdk~q+9LKS">
             <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
             <value name="VALUE">
               <block type="math_number" id="NS4W!jbM#yL9w,_+Y;Sb">
                 <field name="NUM">0</field>
               </block>
             </value>
             <next>
               <block type="schedule" id="zB3LggJ$B):d0vMCvcV@">
                 <field name="SCHEDULE">* * * * *</field>
                 <statement name="STATEMENT">
                   <block type="variables_set" id="OU|}`0y|`f?$X[S7)Q(T">
                     <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                     <value name="VALUE">
                       <block type="math_arithmetic" id="]zc-b@#.dpi9xIH{!^j4">
                         <field name="OP">MULTIPLY</field>
                         <value name="A">
                           <shadow type="math_number" id="F6vPG7tIk~J)w#B{%hW[">
                             <field name="NUM">0.0865</field>
                           </shadow>
                         </value>
                         <value name="B">
                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="math_arithmetic" id="Vj0@PQlxy3o|^kW{hr#n">
                             <field name="OP">DIVIDE</field>
                             <value name="A">
                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AA$RzH1s8p6dve[S_Dzc">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="math_arithmetic" id="4a-BI5U^#irTmft@kt+m">
                                 <field name="OP">MINUS</field>
                                 <value name="A">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="get_value" id="w^FX*3FD,_cX)yzvU5u_">
                                     <field name="ATTR">val</field>
                                     <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="variables_get" id="vzKhNhtii%*u4y+^vl14">
                                     <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <shadow type="math_number" id="6@{w}ka+@h(U_Z}3`msD">
                                 <field name="NUM">1000</field>
                               </shadow>
                             </value>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="variables_set" id="2XXblJ#5R/RdZ?T1`nn0">
                         <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                         <value name="VALUE">
                           <block type="math_arithmetic" id="(S;+yowKA|O}d]gV7%Gs">
                             <field name="OP">MULTIPLY</field>
                             <value name="A">
                               <shadow type="math_number" id="VY|hI}:5E|u%y|wIv;*9">
                                 <field name="NUM">0.28</field>
                               </shadow>
                             </value>
                             <value name="B">
                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="math_arithmetic" id="gfHo1Xv~P:_$J2r.;4?/">
                                 <field name="OP">DIVIDE</field>
                                 <value name="A">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="{f8_M5v4E.foY4Gpxc.K">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="math_arithmetic" id="fK2sd4~f3k;4,(?o/j.Q">
                                     <field name="OP">MINUS</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="l:6]qx@gC/k8#*FjLU3+">
                                         <field name="ATTR">val</field>
                                         <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="1mY?IW+Z%GG].kX%^-p]">
                                         <field name="ATTR">val</field>
                                         <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow type="math_number" id="Ohtl=}3+MEsA~;q#NH%j">
                                     <field name="NUM">1000</field>
                                   </shadow>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="update" id="}YPw`(xCpX(FQ:FfGasv">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTotal</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="math_arithmetic" id="5ITK|.I9IAoHhOp_Tfpu">
                                 <field name="OP">ADD</field>
                                 <value name="A">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-OIq=i/E/tnQr9=,E%aC">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="variables_get" id="^1v{)YbGWlXcNT9dA}-n">
                                     <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AtYn15(;S%;+)k)QS8W]">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="math_arithmetic" id="GOEgI43fkbKJXQIl]EuF">
                                     <field name="OP">ADD</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="n6iab!w_VihL-dvLvzl@">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="#Zr%D,Y*Fgw-tIh+9JkQ">
                                         <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Pptf%9vnV8f1gb[}Ya@a">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="5dg4pd~(FZ{tfICf[Tj/">
                                         <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="update" id="]L)lmNygUn}[y(fd1/Sd">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTag</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="math_arithmetic" id="$0LJ$9Q:YSZzD8y;I@0F">
                                     <field name="OP">ADD</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Toy:d*),adcVSo+K_lqK">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="math_arithmetic" id="CI1z)B4@89?(44`2MNzF">
                                         <field name="OP">MULTIPLY</field>
                                         <value name="A">
                                           <shadow type="math_number" id="/-}D,;4^+[TW`9?M91Q8">
                                             <field name="NUM">0.0865</field>
                                           </shadow>
                                         </value>
                                         <value name="B">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="zZVo$tldMrv1m$Ptw{jk">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="BSa!^BO(?_}H^-.Om9}r">
                                             <field name="ATTR">val</field>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="mVYu@[@=0wdc|cBIF%Uv">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="math_arithmetic" id="rRNhB[=y@lb?i0gfgs{h">
                                         <field name="OP">MULTIPLY</field>
                                         <value name="A">
                                           <shadow type="math_number" id="GzzK$:v.k5g;Y_]$wD-e">
                                             <field name="NUM">0.28</field>
                                           </shadow>
                                         </value>
                                         <value name="B">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-N*PGWro,12S`6=xGo!J">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="+[xzdM[bfEzXwO|EuCXt">
                                             <field name="ATTR">val</field>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      11 Stat Ersparnis Total
      Quelle aus der InfluxDB sind

      • ErsparnisPVAnlageTotal -> siehe Blockly Script oben

      Und hier noch das Blockly für PvErzeugteEnergieTag:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="schedule" id="?E~kcU0bFAPBr#8X[9Ct" x="-312" y="63">
         <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}</field>
         <statement name="STATEMENT">
           <block type="debug" id="]6=Vt7hsQU72ZzTI{(}$">
             <field name="Severity">debug</field>
             <value name="TEXT">
               <shadow type="text" id="65m?5!q#rJl|T?[}O1oQ">
                 <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
               </shadow>
             </value>
             <next>
               <block type="update" id="V^ZmST?[g8:!{Zf;QCH~">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="get_value" id="3T@bw6.[![xO6a[ilRNw">
                     <field name="ATTR">val</field>
                     <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                   </block>
                 </value>
                 <next>
                   <block type="update" id="W;76rKmS~WWjq^PF]pVA">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                     <field name="WITH_DELAY">FALSE</field>
                     <value name="VALUE">
                       <block type="get_value" id="5fUwQ8sFhmTtZY:ohQ0n">
                         <field name="ATTR">val</field>
                         <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                       </block>
                     </value>
                     <next>
                       <block type="update" id="~-n4R,^5y_bEx/r~4ou3">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                         <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="get_value" id="4Eqn%o(3UE9bGH]~rfO?">
                             <field name="ATTR">val</field>
                             <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                           </block>
                         </value>
                         <next>
                           <block type="update" id="Jy3cadEAVu#.qV~77KTX" disabled="true">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="math_number" id="aF,ieDq~(k]rM{732-%R">
                                 <field name="NUM">0</field>
                               </block>
                             </value>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </statement>
         <next>
           <block type="schedule" id="Kh%yZsQ}8hIIOXi)mvts">
             <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}</field>
             <statement name="STATEMENT">
               <block type="debug" id="mh=V/qM!U!j}:QI?~/B}">
                 <field name="Severity">debug</field>
                 <value name="TEXT">
                   <shadow type="text" id="KZK}6p%YYswdB_o6?SQW">
                     <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                   </shadow>
                 </value>
                 <next>
                   <block type="update" id="2Qc-2ES-q3=NkAz0Pqv:">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                     <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                     <field name="WITH_DELAY">FALSE</field>
                     <value name="VALUE">
                       <block type="get_value" id="D@/b;fd@f6uT8rTP/{%c">
                         <field name="ATTR">val</field>
                         <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                       </block>
                     </value>
                     <next>
                       <block type="update" id="{nC67B?Dq065X]zdY_;%">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                         <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="get_value" id="Fo}I9_Wdy`B9A?k%zWYC">
                             <field name="ATTR">val</field>
                             <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                           </block>
                         </value>
                         <next>
                           <block type="update" id="K_Po!y[{wL+ejEOn@7#=">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="get_value" id="*MR^,L`biRH^?ma2ik~E">
                                 <field name="ATTR">val</field>
                                 <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                               </block>
                             </value>
                             <next>
                               <block type="update" id="XA8LZ[F)Q:L-Pdjji,;*" disabled="true">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="math_number" id="Nl+pd_mIr(9/@X~o{Y]@">
                                     <field name="NUM">0</field>
                                   </block>
                                 </value>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </statement>
             <next>
               <block type="schedule" id="u.71Z=3nhv`i-UJ$X@@k">
                 <field name="SCHEDULE">{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}</field>
                 <statement name="STATEMENT">
                   <block type="debug" id="0G1JB|Ur#*:*w(@nr9+N">
                     <field name="Severity">debug</field>
                     <value name="TEXT">
                       <shadow type="text" id="XaK7Pz1epQ4ezA|H=d8p">
                         <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                       </shadow>
                     </value>
                     <next>
                       <block type="update" id="8|$NEoJOFI?8/O4]kGkT">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                         <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="get_value" id="I/$M}OVw;+pmAFg_l|ZY">
                             <field name="ATTR">val</field>
                             <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                           </block>
                         </value>
                         <next>
                           <block type="update" id="TefH)T=^2,k1g?Bor;t{">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="get_value" id="jey.5SwVHT*,jgUjR{WC">
                                 <field name="ATTR">val</field>
                                 <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                               </block>
                             </value>
                             <next>
                               <block type="update" id="Jl5s+I=#hSS#_1m83T!C" disabled="true">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="get_value" id="iM}^=!W}ktWgU3@RbvrQ">
                                     <field name="ATTR">val</field>
                                     <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                   </block>
                                 </value>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      Korrekturen und coole neue Ideen sind gerne gesehen

      Tutorial UVR1611 C.M.I. Integration
      Tutorial SolarEdge Integration via ModBus

      O A J T LongbowL 5 Replies Last reply
      4
      • H hennerich

        Teil3 – Visualisierung (ob mit Grafana oder mit anderen Tools muss ich sehen)
        ongoing, erster Screenshot von meinem Grafana Dashboard (auch hier danke an inkoFa, das ist nämlich seine Idee gewesen).
        29780207-dc8d-4d73-bee0-8348d48a33c8-grafik.png

        HIer noch das Grafana json für einen Import.
        PV Anlage-1605288773411.json

        Damit ihr euch das auch nachbauen könnt, erkläre ich nachfolgend welche Einstellungen dafür notwendig sind. Der linke Block kommt von meiner Heizung, den lasse ich außen vor und konzentriere mich nur auf die PV Sachen.

        1. Graph PV
        Quellen aus der InfluxDB sind

        • PVLeistungAktuell -> gelber Graph
        • Hausverbrauch -> blauer Graph
        • TempWechselrichter -> orangener Graph
        • (Sonnenstand) -> gestrichelt grüne Linie

        Die ersten 3 Werte solltet ihr schon haben wenn ihr oben aus meinem Teil 2 die Sachen übernommen habt.

        Sonnenstand war ein fertiges JS Script:

        // calculates the sun position, path and power throughout the day
        // based on from http://www.stjarnhimlen.se/comp/tutorial.html
        // most var-names are identical to above tutorial
        // combined with Sonnenstand-Script: paul53, pix; 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
        // Angepasst ykuendig 12.02.17; stringify im log, ack = true bei setState und Diverses 
        
        var suncalc = require('suncalc'),
           result =  getObject("system.adapter.javascript.0"),
           lat =  result.native.latitude,
           long = result.native.longitude;
           log("long: " + long + " - lat: " + lat);
        
        var modtilt =       50;     //Dachneigung in Grad (Solar panel's tilt angle)
        var modazi =        285;    //Ausrichtung des Hauses in Grad zB SSW (Solar panel's azimut)
        var modsufrace =    148.0;   //Paneloberfläche in m2 (Solar panel's surface in sq. meters)
        var modeff =        0.211;  //Annäherung an Panel-Wirkungsgrad zB 18 Prozent (modules efficiency correction)
                                                // Hier kann an einem klaren Tag etwas geschraubt werden ;-)
        
        var altitude;       // Calculated Elevation
        var azimuth;        // Calculated Azimuth
        
        createState('javascript.0.Solar.Sonnenstand.Elevation', 0, {unit: '°'});
        createState('javascript.0.Solar.Sonnenstand.Azimut', 0, {unit: '°'});
        createState('javascript.0.Solar.Sonnenstand.PanelPossible', 0, {unit: 'W'});
        // ganz am Ende die setStates anpassen nicht vergessen!
        
        // Do not change below, until You know what You are doing!
        // ********************************************************
        
        Math.degrees = function(radians) {return radians * 180 / Math.PI;};
        Math.radians = function(degrees) {return degrees * Math.PI / 180;};
        
        function Sonnenstand_berechnen () {
           var now = new Date();
           var sunpos = suncalc.getPosition(now, lat, long);
           log("Script Sonnenstand; latitude : " + result.native.latitude + " / longitude: " + result.native.longitude,'debug');
           log("Script Sonnenstand; sunpos: " + JSON.stringify(sunpos),'debug');
        
           altitude = Math.degrees(sunpos.altitude);
           azimuth =  Math.degrees(sunpos.azimuth) + 180;
        
           // The intensity of the direct component of sunlight throughout each day can be determined as 
           // a function of air mass. based on: http://pveducation.org/pvcdrom/properties-of-sunlight/air-mass#formula
           var airmass = 1/Math.cos((90-altitude)*4*Math.asin(1)/360); 
        
           // Sincident is the intensity on a plane perpendicular to the sun's rays in units of kW/m2 and AM is the air mass.
           // The value of 1.353 kW/m2 is the solar constant and the number 0.7 arises from the fact that about 70% of the radiation incident on the atmosphere is transmitted
           // to the Earth. The extra power term of 0.678 is an empirical fit to the observed data and takes into account the non-uniformities in the atmospheric layers.
           // ykuendig: use different values because of pv instead thermal panels
           var Sincident = (1.367*Math.pow(0.78,Math.pow(airmass,0.6)));
           var fraction = Math.cos(altitude*4*Math.asin(1)/360)*Math.sin(modtilt*4*Math.asin(1)/360)*Math.cos(azimuth*4*Math.asin(1)/360-modazi*4*Math.asin(1)/360)+Math.sin(altitude*4*Math.asin(1)/360)*Math.cos(modtilt*4*Math.asin(1)/360);
        
           // W/m² light intensity on the module * module's surface
           var SmoduleInt = Sincident * fraction * modsufrace * 1000;
           if(SmoduleInt<0) {
               SmoduleInt =    0;
           }
           // Module Effective in relation of the efficiency of the used panel
           var SmoduleEff = SmoduleInt * modeff;
        
           if( altitude < 0 ) {
               SmoduleInt =    0;
               SmoduleEff =    0;
               altitude =      0;
           }
        
           log("Script Sonnenstand; Erfolgreich gelaufen, Werte akzeptiert", "info");
           log("Script Sonnenstand; airmass: " + airmass,"debug");
           log("Script Sonnenstand; azimuth: " + azimuth,"debug");
           log("Script Sonnenstand; altitude: " + altitude,"debug");
           log("Script Sonnenstand; SmoduleInt: " + SmoduleInt,"debug");
           log("Script Sonnenstand; SmoduleEff: " + SmoduleEff,"debug");
        
           // Change ID to the created States
           setState('javascript.0.Solar.Sonnenstand.Elevation'/*javascript 0 Solar Sonnenstand Elevation*/,altitude.toFixed(1), true);
           setState('javascript.0.Solar.Sonnenstand.Azimut'/*javascript 0 Solar Sonnenstand Azimut*/,azimuth.toFixed(), true);
           setState('javascript.0.Solar.Sonnenstand.PanelPossible'/*javascript 0 Solar Sonnenstand PanelPossible*/, SmoduleEff.toFixed(), true);
        }
        
        // -> Zyklisch
        
        schedule("*/10 * * * *", Sonnenstand_berechnen);
        Sonnenstand_berechnen(); // bei Scriptstart
        
        


        2. Graph PV Erzeugung in kWh
        Quelle aus der InfluxDB sind

        • PVErzeugteEnergieAktuell
          Blockly Script (PVBerechneTageswerte):

        <xml xmlns="https://developers.google.com/blockly/xml">
         <block type="on_ext" id="y@lWX)*%NiA!ZGLd:;Q$" x="-687" y="87">
           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="9.%}C_f#R|xD+X-(7)r2">
               <field name="oid">modbus.1.holdingRegisters.40234_M_Imported</field>
             </shadow>
           </value>
           <statement name="STATEMENT">
             <block type="update" id="x.N~f*hrQxS~@9cMYoiE">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="math_arithmetic" id="D*z62x|?#F|Qe8hp+]U#">
                   <field name="OP">DIVIDE</field>
                   <value name="A">
                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                       <field name="NUM">1</field>
                     </shadow>
                     <block type="math_arithmetic" id="_0_3+_+SBF]n}Kb~ltP`">
                       <field name="OP">MINUS</field>
                       <value name="A">
                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="get_value" id="^.WWE79[swjNwM%X:zJ#">
                           <field name="ATTR">val</field>
                           <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                         </block>
                       </value>
                       <value name="B">
                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="get_value" id="rHO$M#tK%xLrylsZ-_T^">
                           <field name="ATTR">val</field>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="B">
                     <shadow type="math_number" id="+9z/fggnWUX%RN-aCC}H">
                       <field name="NUM">1000</field>
                     </shadow>
                   </value>
                 </block>
               </value>
             </block>
           </statement>
           <next>
             <block type="on_ext" id="J8C5.l@n=!ELlI4jb^Cv">
               <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
               <field name="CONDITION">ne</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="`;Z)LfB(n.m5UePJboM.">
                   <field name="oid">modbus.1.holdingRegisters.40226_M_Exported</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="update" id="3sKIv|]w==qqH!t]{]er">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="math_arithmetic" id="(V84_Uc.l7mo6_]Ndw=E">
                       <field name="OP">DIVIDE</field>
                       <value name="A">
                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="math_arithmetic" id="`wmR.[]:x(_|+Ks#Vjge">
                           <field name="OP">MINUS</field>
                           <value name="A">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="get_value" id="*?`QT7v~({Lk5}Q_W3Sp">
                               <field name="ATTR">val</field>
                               <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                             </block>
                           </value>
                           <value name="B">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="get_value" id="C/6|^=`oS?+z;ZgjfCQ8">
                               <field name="ATTR">val</field>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="B">
                         <shadow type="math_number" id="{g~E#A,TtN32@J#cPfMw">
                           <field name="NUM">1000</field>
                         </shadow>
                       </value>
                     </block>
                   </value>
                 </block>
               </statement>
               <next>
                 <block type="on_ext" id="Pm$w:I$X8;ThSV?()/nh">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="e66:C.|L}2q?[6@59){[">
                       <field name="oid">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="update" id="t1/a#un}^R;:mQVHr8jm">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="math_arithmetic" id="ND)2(danTD2neCrSu2JB">
                           <field name="OP">DIVIDE</field>
                           <value name="A">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="math_arithmetic" id="?`iltSk96+NT/#(xwS?Y">
                               <field name="OP">MINUS</field>
                               <value name="A">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="get_value" id="OFk=pk-c-W=Gi}w$_Y2;">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="get_value" id="ghQY!ub_kT5!C:SD]!6C">
                                   <field name="ATTR">val</field>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id=",*aj+DPuKR(z2t@soOmt">
                               <field name="NUM">1000</field>
                             </shadow>
                           </value>
                         </block>
                       </value>
                     </block>
                   </statement>
                   <next>
                     <block type="schedule" id="y@C$399x.Z9LJOobUceT">
                       <field name="SCHEDULE">{"time":{"exactTime":true,"start":"02:30"},"period":{"days":1}}</field>
                       <statement name="STATEMENT">
                         <block type="comment" id="yU_Y*jFn(V4*WirA3rTP">
                           <field name="COMMENT">Zaehler nachts zuruecksetzen</field>
                           <next>
                             <block type="update" id="ZmWWr!J?Q}zQ3xq78J:g">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="math_arithmetic" id="e5viXk6#Wkb/hqiz{WOa">
                                   <field name="OP">DIVIDE</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="n,)T9SU!pidKtCc7KB(7">
                                       <field name="OP">MINUS</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="qso(1r{,v2oE04.5]n]N">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="gjxk;XA/j|huHh)p77gz">
                                           <field name="ATTR">val</field>
                                           <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number" id="j+)1Y}_JluEc)ku?BZPj">
                                       <field name="NUM">1000</field>
                                     </shadow>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="_wV6dLC~S.Bo7pp4.Aj~">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_arithmetic" id="nf3~e!!BaO*iq}*Kfz*Z">
                                       <field name="OP">DIVIDE</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="Ul[,7Q;(q]k7yr{seCG@">
                                           <field name="OP">MINUS</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="P_)QxWEu)wh*,/yx$3#t">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="mFcJHv@,oR`k,4m?^}pH">
                                               <field name="ATTR">val</field>
                                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow type="math_number" id="j]J$8,Mk[^f@_k`R(9Yt">
                                           <field name="NUM">1000</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="update" id="~@8dfv@ELn2/H2IA=AmM">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="H5=db9;BV1SDP#{Xn01W">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="lQn$HnGJA]r@=SmpO1}O">
                                               <field name="OP">MINUS</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="Y#;DXy}HY5|D%74t]@o$">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="uZlP#=DTf:JC}=pj==8w">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="-9Wj3.9tCx|jW??D(3w-">
                                               <field name="NUM">1000</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        3. Gauge PV Leistung
        Quelle aus der InfluxDB sind

        • PVLeistungAktuell

        4. Stat Import/Export
        Quelle aus der InfluxDB sind

        • ACTotalRealPower

        5. Stat Hausverbrauch
        Quelle aus der InfluxDB sind

        • Hausverbrauch

        6. Stat Einspeisung heute
        Quelle aus der InfluxDB sind

        • PVExportierteEnergieAktuell -> siehe Blockly Script oben

        7. Stat PV Erzeugung heute
        Quelle aus der InfluxDB sind

        • PVErzeugteEnergieAktuell

        8. Stat Eigenverbrauch heute
        Quelle aus der InfluxDB sind

        • PVEigenverbrauchAktuell
          Blockly Script (PVEigenverbrauch):

        <xml xmlns="https://developers.google.com/blockly/xml">
         <block type="on_ext" id="5M,hgtrmhy-Ix[8jnCFF" x="-788" y="138">
           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="yQ06)5*@k]/k#[*a^Z$^">
               <field name="oid">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
             </shadow>
           </value>
           <statement name="STATEMENT">
             <block type="update" id="1dc~gm$kBR3F64Q_j#}}">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="math_arithmetic" id="t|ASI*V*8O-@Hi69]^F^">
                   <field name="OP">MINUS</field>
                   <value name="A">
                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="xKx}z@cYh|gQm$K7_yI/">
                       <field name="NUM">1</field>
                     </shadow>
                     <block type="get_value" id="e$tM9C/J*|FAH|eZ{8lb">
                       <field name="ATTR">val</field>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                     </block>
                   </value>
                   <value name="B">
                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="S9|ObqahZ5YT5{CQPLO%">
                       <field name="NUM">1</field>
                     </shadow>
                     <block type="get_value" id="9IvPeD|%/z0+ql%M]qH3">
                       <field name="ATTR">val</field>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </statement>
         </block>
        </xml>
        

        9 Stat Nettobezug heute
        Quelle aus der InfluxDB sind

        • PVImpertierteEnergieAktuell -> siehe Blockly Script oben

        10 Stat Ersparnis Tag
        Quelle aus der InfluxDB sind

        • ErsparnisPVAnlageTag
          Blockly Script (Kosten):

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</variable>
           <variable id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</variable>
           <variable id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</variable>
           <variable id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</variable>
         </variables>
         <block type="variables_set" id="V;zBuc1uVM)2]%Q?uyMU" x="87" y="63">
           <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
           <value name="VALUE">
             <block type="math_number" id="MN*t)_!p7(nU)*,XUffX">
               <field name="NUM">0</field>
             </block>
           </value>
           <next>
             <block type="variables_set" id="HOw2PBH1W2Pdk~q+9LKS">
               <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
               <value name="VALUE">
                 <block type="math_number" id="NS4W!jbM#yL9w,_+Y;Sb">
                   <field name="NUM">0</field>
                 </block>
               </value>
               <next>
                 <block type="schedule" id="zB3LggJ$B):d0vMCvcV@">
                   <field name="SCHEDULE">* * * * *</field>
                   <statement name="STATEMENT">
                     <block type="variables_set" id="OU|}`0y|`f?$X[S7)Q(T">
                       <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                       <value name="VALUE">
                         <block type="math_arithmetic" id="]zc-b@#.dpi9xIH{!^j4">
                           <field name="OP">MULTIPLY</field>
                           <value name="A">
                             <shadow type="math_number" id="F6vPG7tIk~J)w#B{%hW[">
                               <field name="NUM">0.0865</field>
                             </shadow>
                           </value>
                           <value name="B">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="math_arithmetic" id="Vj0@PQlxy3o|^kW{hr#n">
                               <field name="OP">DIVIDE</field>
                               <value name="A">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AA$RzH1s8p6dve[S_Dzc">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="math_arithmetic" id="4a-BI5U^#irTmft@kt+m">
                                   <field name="OP">MINUS</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="get_value" id="w^FX*3FD,_cX)yzvU5u_">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="variables_get" id="vzKhNhtii%*u4y+^vl14">
                                       <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="B">
                                 <shadow type="math_number" id="6@{w}ka+@h(U_Z}3`msD">
                                   <field name="NUM">1000</field>
                                 </shadow>
                               </value>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="variables_set" id="2XXblJ#5R/RdZ?T1`nn0">
                           <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                           <value name="VALUE">
                             <block type="math_arithmetic" id="(S;+yowKA|O}d]gV7%Gs">
                               <field name="OP">MULTIPLY</field>
                               <value name="A">
                                 <shadow type="math_number" id="VY|hI}:5E|u%y|wIv;*9">
                                   <field name="NUM">0.28</field>
                                 </shadow>
                               </value>
                               <value name="B">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="math_arithmetic" id="gfHo1Xv~P:_$J2r.;4?/">
                                   <field name="OP">DIVIDE</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="{f8_M5v4E.foY4Gpxc.K">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="fK2sd4~f3k;4,(?o/j.Q">
                                       <field name="OP">MINUS</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="l:6]qx@gC/k8#*FjLU3+">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="1mY?IW+Z%GG].kX%^-p]">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number" id="Ohtl=}3+MEsA~;q#NH%j">
                                       <field name="NUM">1000</field>
                                     </shadow>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="}YPw`(xCpX(FQ:FfGasv">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTotal</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="math_arithmetic" id="5ITK|.I9IAoHhOp_Tfpu">
                                   <field name="OP">ADD</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-OIq=i/E/tnQr9=,E%aC">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="variables_get" id="^1v{)YbGWlXcNT9dA}-n">
                                       <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AtYn15(;S%;+)k)QS8W]">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="GOEgI43fkbKJXQIl]EuF">
                                       <field name="OP">ADD</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="n6iab!w_VihL-dvLvzl@">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="variables_get" id="#Zr%D,Y*Fgw-tIh+9JkQ">
                                           <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Pptf%9vnV8f1gb[}Ya@a">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="variables_get" id="5dg4pd~(FZ{tfICf[Tj/">
                                           <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="]L)lmNygUn}[y(fd1/Sd">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_arithmetic" id="$0LJ$9Q:YSZzD8y;I@0F">
                                       <field name="OP">ADD</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Toy:d*),adcVSo+K_lqK">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="CI1z)B4@89?(44`2MNzF">
                                           <field name="OP">MULTIPLY</field>
                                           <value name="A">
                                             <shadow type="math_number" id="/-}D,;4^+[TW`9?M91Q8">
                                               <field name="NUM">0.0865</field>
                                             </shadow>
                                           </value>
                                           <value name="B">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="zZVo$tldMrv1m$Ptw{jk">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="BSa!^BO(?_}H^-.Om9}r">
                                               <field name="ATTR">val</field>
                                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="mVYu@[@=0wdc|cBIF%Uv">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="rRNhB[=y@lb?i0gfgs{h">
                                           <field name="OP">MULTIPLY</field>
                                           <value name="A">
                                             <shadow type="math_number" id="GzzK$:v.k5g;Y_]$wD-e">
                                               <field name="NUM">0.28</field>
                                             </shadow>
                                           </value>
                                           <value name="B">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-N*PGWro,12S`6=xGo!J">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="+[xzdM[bfEzXwO|EuCXt">
                                               <field name="ATTR">val</field>
                                               <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        11 Stat Ersparnis Total
        Quelle aus der InfluxDB sind

        • ErsparnisPVAnlageTotal -> siehe Blockly Script oben

        Und hier noch das Blockly für PvErzeugteEnergieTag:

        <xml xmlns="https://developers.google.com/blockly/xml">
         <block type="schedule" id="?E~kcU0bFAPBr#8X[9Ct" x="-312" y="63">
           <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}</field>
           <statement name="STATEMENT">
             <block type="debug" id="]6=Vt7hsQU72ZzTI{(}$">
               <field name="Severity">debug</field>
               <value name="TEXT">
                 <shadow type="text" id="65m?5!q#rJl|T?[}O1oQ">
                   <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                 </shadow>
               </value>
               <next>
                 <block type="update" id="V^ZmST?[g8:!{Zf;QCH~">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="get_value" id="3T@bw6.[![xO6a[ilRNw">
                       <field name="ATTR">val</field>
                       <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                     </block>
                   </value>
                   <next>
                     <block type="update" id="W;76rKmS~WWjq^PF]pVA">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="get_value" id="5fUwQ8sFhmTtZY:ohQ0n">
                           <field name="ATTR">val</field>
                           <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                         </block>
                       </value>
                       <next>
                         <block type="update" id="~-n4R,^5y_bEx/r~4ou3">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="get_value" id="4Eqn%o(3UE9bGH]~rfO?">
                               <field name="ATTR">val</field>
                               <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="Jy3cadEAVu#.qV~77KTX" disabled="true">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="math_number" id="aF,ieDq~(k]rM{732-%R">
                                   <field name="NUM">0</field>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </statement>
           <next>
             <block type="schedule" id="Kh%yZsQ}8hIIOXi)mvts">
               <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}</field>
               <statement name="STATEMENT">
                 <block type="debug" id="mh=V/qM!U!j}:QI?~/B}">
                   <field name="Severity">debug</field>
                   <value name="TEXT">
                     <shadow type="text" id="KZK}6p%YYswdB_o6?SQW">
                       <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                     </shadow>
                   </value>
                   <next>
                     <block type="update" id="2Qc-2ES-q3=NkAz0Pqv:">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="get_value" id="D@/b;fd@f6uT8rTP/{%c">
                           <field name="ATTR">val</field>
                           <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                         </block>
                       </value>
                       <next>
                         <block type="update" id="{nC67B?Dq065X]zdY_;%">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="get_value" id="Fo}I9_Wdy`B9A?k%zWYC">
                               <field name="ATTR">val</field>
                               <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="K_Po!y[{wL+ejEOn@7#=">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="get_value" id="*MR^,L`biRH^?ma2ik~E">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="XA8LZ[F)Q:L-Pdjji,;*" disabled="true">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="math_number" id="Nl+pd_mIr(9/@X~o{Y]@">
                                       <field name="NUM">0</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </statement>
               <next>
                 <block type="schedule" id="u.71Z=3nhv`i-UJ$X@@k">
                   <field name="SCHEDULE">{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}</field>
                   <statement name="STATEMENT">
                     <block type="debug" id="0G1JB|Ur#*:*w(@nr9+N">
                       <field name="Severity">debug</field>
                       <value name="TEXT">
                         <shadow type="text" id="XaK7Pz1epQ4ezA|H=d8p">
                           <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                         </shadow>
                       </value>
                       <next>
                         <block type="update" id="8|$NEoJOFI?8/O4]kGkT">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="get_value" id="I/$M}OVw;+pmAFg_l|ZY">
                               <field name="ATTR">val</field>
                               <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="TefH)T=^2,k1g?Bor;t{">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="get_value" id="jey.5SwVHT*,jgUjR{WC">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="Jl5s+I=#hSS#_1m83T!C" disabled="true">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="get_value" id="iM}^=!W}ktWgU3@RbvrQ">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        Korrekturen und coole neue Ideen sind gerne gesehen

        O Offline
        O Offline
        Okidoki3009
        wrote on last edited by
        #4

        @hennerich Vielen Dank für das tolle Tutorial!
        Hat mir sehr geholfen:+1: :+1:

        1 Reply Last reply
        0
        • H hennerich

          Teil2 – Werte umrechnen und in Grafana anzeigen

          Jetzt haben wir also die Werte im ioBroker. Wie gehts nun damit weiter?

          Zuerst einmal muss jeder für sich selbst entscheiden, welche Werte für ihn von Interesse sind. Ich für meinen Teil verwende die folgenden Werte:
          Wechselrichter

          • 40084: AC-Leistungswert in W (aktuelle PV Produktion)
          • 40093: AC Gesamt-Energieproduktion in Wh (also alles, was eure Anlage bisher erzeugt hat)
          • 40103: Kühlkörpertemperatur vom Wechselrichter in °C (man weiß ja nie)

          Energiezähler

          • 40206: Total Real Power (aktueller Netzbezug bzw. Einspeisung)
          • 40226: Total Exported Real Energy (was ihr heute erzeugt habt)
          • 40234: Total Imported Real Energy (was ihr heute aus dem Netz bezogen habt)

          Aus den letzten beiden Werte kann man den Eigenverbrauch heute berechnen.

          Dann müssen wir verstehen, dass SolarEdge für viele Werte noch Skalierungsfaktoren mitliefert. Auch das ist etwas, dass nur in der englischen Doku auftaucht. Dort steht nämlich:


          As an alternative to floating point format, values are represented by Integer values with a signed scale factor applied. The scale factor explicitly shifts the decimal point to left (negative value) or to the right (positive value).

          For example, a value “Value” may have an associated value “Value_SF”
          Value = “Value” * 10^ Value_SF for example:

          • For “Value” = 2071 and “Value_SF” = -2 Value = 2071*10^-2 = 20.71
          • For “Value” = 2071 and “Value_SF” = 2 Value = 2071*10^2 = 2071

          Man muss die Werte die man möchte also erst noch umrechnen. Und sie müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen. Dazu geht mein Dank an inkoFa aus dem PV Forum, der mir mit seiner Lösung dazu sehr weitergeholfen hat.

          Für den Wert 40084: AC-Leistungswert legt ihr folgendes JS Script an:

          function convertValue(value, factor) {
             if (value === null) return;
             if (factor === null) factor = 0;
             setState('Solar.Wechselrichter.PVLeistungAktuell', value * Math.pow(10, factor), true);
          }  
           
          createState('Solar.Wechselrichter.PVLeistungAktuell', {
          	name: 'PVLeistungAktuell',
          	unit: 'W',
          	min:  0,
          	type: 'number',
          	role: 'value.energy'
          }, function () {
          	on('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/, function(obj) {
          		var timeout = setTimeout(function () {
          			clearTimeout(timeout);
          			var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
          			convertValue(obj.state.val, factorState ? factorState.val : 0);
          		}, 100); 
          	});
          	var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
          	var valueState = getState('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/);
          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
          });
          

          Für den Wert 40206: Total Real Power legt ihr folgendes JS Script an:

          function convertValue(value, factor) {
             if (value === null) return;
             if (factor === null) factor = 0;
             setState('Solar.Wechselrichter.ACTotalRealPower', value * Math.pow(10, factor), true);
          }  
           
          createState('Solar.Wechselrichter.ACTotalRealPower', {
          	name: 'ACTotalRealPower',
          	unit: 'W',
          	min:  -999999,
          	type: 'number',
          	role: 'value.energy'
          }, function () {
          	on('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/, function(obj) {
          		var timeout = setTimeout(function () {
          			clearTimeout(timeout);
          			var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
          			convertValue(obj.state.val, factorState ? factorState.val : 0);
          		}, 100); 
          	});
          	var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
          	var valueState = getState('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/);
          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
          });
          

          Und für den Wert 40103: Kühlkörpertemperatur legt ihr folgendes JS Script an:

          function convertValue(value, factor) {
             if (value === null) return;
             if (factor === null) factor = 0;
             setState('Solar.Wechselrichter.TempWechselrichter', value * Math.pow(10, factor), true);
          }  
           
          createState('Solar.Wechselrichter.TempWechselrichter', {
          	name: 'TempWechselrichter',
          	unit: '°C',
          	min:  -999999,
          	type: 'number',
          	role: 'value.energy'
          }, function () {
          	on('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/, function(obj) {
          		var timeout = setTimeout(function () {
          			clearTimeout(timeout);
          			var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
          			convertValue(obj.state.val, factorState ? factorState.val : 0);
          		}, 100); 
          	});
          	var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
          	var valueState = getState('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/);
          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
          });
          

          Jetzt könnt ihr mit den Umrechnungen die entsprechenden Objekte befüllen. Ich hab also ein Blockly Script Hausverbrauch angelegt:
          518582a6-ed9e-4ee9-a2da-a2d184bda8f4-grafik.png
          Importiert gerne folgendes:

          <xml xmlns="https://developers.google.com/blockly/xml">
           <block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-937" y="63">
             <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <statement name="STATEMENT">
               <block type="update" id="{8c)~K%7n5#35[IVg*CU">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">javascript.0.Solar.Wechselrichter.Hausverbrauch</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/">
                     <field name="OP">MINUS</field>
                     <value name="A">
                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!{7/(]DX3lGP@Il`Y=E1">
                         <field name="NUM">1</field>
                       </shadow>
                       <block type="get_value" id="_;teC|IbrE2JD_fEN~js">
                         <field name="ATTR">val</field>
                         <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                       </block>
                     </value>
                     <value name="B">
                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="M:s(2P888iDd:XzoTo4p">
                         <field name="NUM">1</field>
                       </shadow>
                       <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p">
                         <field name="ATTR">val</field>
                         <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </statement>
           </block>
          </xml>
          

          Und das schreibt ihr z.B. in die InfluxDB, um den Wert im Grafana anzuzeigen:
          21df3f32-6689-48ea-93e1-65740130c347-grafik.png

          Ich versuche mal nach und nach noch Sachen hier zu ergänzen. Und eure Meinung dazu interessiert mich natürlich auch brennend. Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe? Wie sehen eure (PV) Dashboards aus, die ihr umgesetzt habt?

          lobomauL Offline
          lobomauL Offline
          lobomau
          wrote on last edited by lobomau
          #5

          @hennerich du hast bestimmt auch viele DP, die du in influxDB speicherst!? Kennst du das Problem, dass beim Auswählen des DP nur so ca. 120 DP angezeigt werden? Ist ja alphabetisch... ich komme nur bis "G". Kann man die Anzahl der angezeigten DP irgendwo ändern?

          Edit: so sieht es dann aus. Ich komme nicht tiefer...
          grafana.gif

          Host: NUC8i3 mit Proxmox:

          • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
          • Slave: Pi4
          H 1 Reply Last reply
          0
          • lobomauL lobomau

            @hennerich du hast bestimmt auch viele DP, die du in influxDB speicherst!? Kennst du das Problem, dass beim Auswählen des DP nur so ca. 120 DP angezeigt werden? Ist ja alphabetisch... ich komme nur bis "G". Kann man die Anzahl der angezeigten DP irgendwo ändern?

            Edit: so sieht es dann aus. Ich komme nicht tiefer...
            grafana.gif

            H Offline
            H Offline
            hennerich
            wrote on last edited by
            #6

            @lobomau
            Naja, so viele hab ich gar nicht ;-)
            Spontan fällt mir dazu ein, dass du einfach mal oben im Suchfeld den Anfang deines Datenpunktes eingeben könntest und dann unten in der Liste in Echtzeit gefiltert wird.
            Also einfach mal go-e.0. eingeben. Geht das?

            Tutorial UVR1611 C.M.I. Integration
            Tutorial SolarEdge Integration via ModBus

            lobomauL 1 Reply Last reply
            1
            • H hennerich

              @lobomau
              Naja, so viele hab ich gar nicht ;-)
              Spontan fällt mir dazu ein, dass du einfach mal oben im Suchfeld den Anfang deines Datenpunktes eingeben könntest und dann unten in der Liste in Echtzeit gefiltert wird.
              Also einfach mal go-e.0. eingeben. Geht das?

              lobomauL Offline
              lobomauL Offline
              lobomau
              wrote on last edited by lobomau
              #7

              @hennerich genial. Geht so!
              Ich habe "alles" probiert und stundenlang in Foren gesucht. Nix. Das die Lösung so einfach ist.... man man man...

              Host: NUC8i3 mit Proxmox:

              • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
              • Slave: Pi4
              1 Reply Last reply
              1
              • H hennerich

                Teil3 – Visualisierung (ob mit Grafana oder mit anderen Tools muss ich sehen)
                ongoing, erster Screenshot von meinem Grafana Dashboard (auch hier danke an inkoFa, das ist nämlich seine Idee gewesen).
                29780207-dc8d-4d73-bee0-8348d48a33c8-grafik.png

                HIer noch das Grafana json für einen Import.
                PV Anlage-1605288773411.json

                Damit ihr euch das auch nachbauen könnt, erkläre ich nachfolgend welche Einstellungen dafür notwendig sind. Der linke Block kommt von meiner Heizung, den lasse ich außen vor und konzentriere mich nur auf die PV Sachen.

                1. Graph PV
                Quellen aus der InfluxDB sind

                • PVLeistungAktuell -> gelber Graph
                • Hausverbrauch -> blauer Graph
                • TempWechselrichter -> orangener Graph
                • (Sonnenstand) -> gestrichelt grüne Linie

                Die ersten 3 Werte solltet ihr schon haben wenn ihr oben aus meinem Teil 2 die Sachen übernommen habt.

                Sonnenstand war ein fertiges JS Script:

                // calculates the sun position, path and power throughout the day
                // based on from http://www.stjarnhimlen.se/comp/tutorial.html
                // most var-names are identical to above tutorial
                // combined with Sonnenstand-Script: paul53, pix; 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
                // Angepasst ykuendig 12.02.17; stringify im log, ack = true bei setState und Diverses 
                
                var suncalc = require('suncalc'),
                   result =  getObject("system.adapter.javascript.0"),
                   lat =  result.native.latitude,
                   long = result.native.longitude;
                   log("long: " + long + " - lat: " + lat);
                
                var modtilt =       50;     //Dachneigung in Grad (Solar panel's tilt angle)
                var modazi =        285;    //Ausrichtung des Hauses in Grad zB SSW (Solar panel's azimut)
                var modsufrace =    148.0;   //Paneloberfläche in m2 (Solar panel's surface in sq. meters)
                var modeff =        0.211;  //Annäherung an Panel-Wirkungsgrad zB 18 Prozent (modules efficiency correction)
                                                        // Hier kann an einem klaren Tag etwas geschraubt werden ;-)
                
                var altitude;       // Calculated Elevation
                var azimuth;        // Calculated Azimuth
                
                createState('javascript.0.Solar.Sonnenstand.Elevation', 0, {unit: '°'});
                createState('javascript.0.Solar.Sonnenstand.Azimut', 0, {unit: '°'});
                createState('javascript.0.Solar.Sonnenstand.PanelPossible', 0, {unit: 'W'});
                // ganz am Ende die setStates anpassen nicht vergessen!
                
                // Do not change below, until You know what You are doing!
                // ********************************************************
                
                Math.degrees = function(radians) {return radians * 180 / Math.PI;};
                Math.radians = function(degrees) {return degrees * Math.PI / 180;};
                
                function Sonnenstand_berechnen () {
                   var now = new Date();
                   var sunpos = suncalc.getPosition(now, lat, long);
                   log("Script Sonnenstand; latitude : " + result.native.latitude + " / longitude: " + result.native.longitude,'debug');
                   log("Script Sonnenstand; sunpos: " + JSON.stringify(sunpos),'debug');
                
                   altitude = Math.degrees(sunpos.altitude);
                   azimuth =  Math.degrees(sunpos.azimuth) + 180;
                
                   // The intensity of the direct component of sunlight throughout each day can be determined as 
                   // a function of air mass. based on: http://pveducation.org/pvcdrom/properties-of-sunlight/air-mass#formula
                   var airmass = 1/Math.cos((90-altitude)*4*Math.asin(1)/360); 
                
                   // Sincident is the intensity on a plane perpendicular to the sun's rays in units of kW/m2 and AM is the air mass.
                   // The value of 1.353 kW/m2 is the solar constant and the number 0.7 arises from the fact that about 70% of the radiation incident on the atmosphere is transmitted
                   // to the Earth. The extra power term of 0.678 is an empirical fit to the observed data and takes into account the non-uniformities in the atmospheric layers.
                   // ykuendig: use different values because of pv instead thermal panels
                   var Sincident = (1.367*Math.pow(0.78,Math.pow(airmass,0.6)));
                   var fraction = Math.cos(altitude*4*Math.asin(1)/360)*Math.sin(modtilt*4*Math.asin(1)/360)*Math.cos(azimuth*4*Math.asin(1)/360-modazi*4*Math.asin(1)/360)+Math.sin(altitude*4*Math.asin(1)/360)*Math.cos(modtilt*4*Math.asin(1)/360);
                
                   // W/m² light intensity on the module * module's surface
                   var SmoduleInt = Sincident * fraction * modsufrace * 1000;
                   if(SmoduleInt<0) {
                       SmoduleInt =    0;
                   }
                   // Module Effective in relation of the efficiency of the used panel
                   var SmoduleEff = SmoduleInt * modeff;
                
                   if( altitude < 0 ) {
                       SmoduleInt =    0;
                       SmoduleEff =    0;
                       altitude =      0;
                   }
                
                   log("Script Sonnenstand; Erfolgreich gelaufen, Werte akzeptiert", "info");
                   log("Script Sonnenstand; airmass: " + airmass,"debug");
                   log("Script Sonnenstand; azimuth: " + azimuth,"debug");
                   log("Script Sonnenstand; altitude: " + altitude,"debug");
                   log("Script Sonnenstand; SmoduleInt: " + SmoduleInt,"debug");
                   log("Script Sonnenstand; SmoduleEff: " + SmoduleEff,"debug");
                
                   // Change ID to the created States
                   setState('javascript.0.Solar.Sonnenstand.Elevation'/*javascript 0 Solar Sonnenstand Elevation*/,altitude.toFixed(1), true);
                   setState('javascript.0.Solar.Sonnenstand.Azimut'/*javascript 0 Solar Sonnenstand Azimut*/,azimuth.toFixed(), true);
                   setState('javascript.0.Solar.Sonnenstand.PanelPossible'/*javascript 0 Solar Sonnenstand PanelPossible*/, SmoduleEff.toFixed(), true);
                }
                
                // -> Zyklisch
                
                schedule("*/10 * * * *", Sonnenstand_berechnen);
                Sonnenstand_berechnen(); // bei Scriptstart
                
                


                2. Graph PV Erzeugung in kWh
                Quelle aus der InfluxDB sind

                • PVErzeugteEnergieAktuell
                  Blockly Script (PVBerechneTageswerte):

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <block type="on_ext" id="y@lWX)*%NiA!ZGLd:;Q$" x="-687" y="87">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="9.%}C_f#R|xD+X-(7)r2">
                       <field name="oid">modbus.1.holdingRegisters.40234_M_Imported</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="update" id="x.N~f*hrQxS~@9cMYoiE">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="math_arithmetic" id="D*z62x|?#F|Qe8hp+]U#">
                           <field name="OP">DIVIDE</field>
                           <value name="A">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="math_arithmetic" id="_0_3+_+SBF]n}Kb~ltP`">
                               <field name="OP">MINUS</field>
                               <value name="A">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="get_value" id="^.WWE79[swjNwM%X:zJ#">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="get_value" id="rHO$M#tK%xLrylsZ-_T^">
                                   <field name="ATTR">val</field>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id="+9z/fggnWUX%RN-aCC}H">
                               <field name="NUM">1000</field>
                             </shadow>
                           </value>
                         </block>
                       </value>
                     </block>
                   </statement>
                   <next>
                     <block type="on_ext" id="J8C5.l@n=!ELlI4jb^Cv">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                       <field name="CONDITION">ne</field>
                       <field name="ACK_CONDITION"></field>
                       <value name="OID0">
                         <shadow type="field_oid" id="`;Z)LfB(n.m5UePJboM.">
                           <field name="oid">modbus.1.holdingRegisters.40226_M_Exported</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="update" id="3sKIv|]w==qqH!t]{]er">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="math_arithmetic" id="(V84_Uc.l7mo6_]Ndw=E">
                               <field name="OP">DIVIDE</field>
                               <value name="A">
                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="math_arithmetic" id="`wmR.[]:x(_|+Ks#Vjge">
                                   <field name="OP">MINUS</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="get_value" id="*?`QT7v~({Lk5}Q_W3Sp">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="get_value" id="C/6|^=`oS?+z;ZgjfCQ8">
                                       <field name="ATTR">val</field>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="B">
                                 <shadow type="math_number" id="{g~E#A,TtN32@J#cPfMw">
                                   <field name="NUM">1000</field>
                                 </shadow>
                               </value>
                             </block>
                           </value>
                         </block>
                       </statement>
                       <next>
                         <block type="on_ext" id="Pm$w:I$X8;ThSV?()/nh">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="e66:C.|L}2q?[6@59){[">
                               <field name="oid">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="update" id="t1/a#un}^R;:mQVHr8jm">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="math_arithmetic" id="ND)2(danTD2neCrSu2JB">
                                   <field name="OP">DIVIDE</field>
                                   <value name="A">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="?`iltSk96+NT/#(xwS?Y">
                                       <field name="OP">MINUS</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="OFk=pk-c-W=Gi}w$_Y2;">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="get_value" id="ghQY!ub_kT5!C:SD]!6C">
                                           <field name="ATTR">val</field>
                                           <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number" id=",*aj+DPuKR(z2t@soOmt">
                                       <field name="NUM">1000</field>
                                     </shadow>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </statement>
                           <next>
                             <block type="schedule" id="y@C$399x.Z9LJOobUceT">
                               <field name="SCHEDULE">{"time":{"exactTime":true,"start":"02:30"},"period":{"days":1}}</field>
                               <statement name="STATEMENT">
                                 <block type="comment" id="yU_Y*jFn(V4*WirA3rTP">
                                   <field name="COMMENT">Zaehler nachts zuruecksetzen</field>
                                   <next>
                                     <block type="update" id="ZmWWr!J?Q}zQ3xq78J:g">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="e5viXk6#Wkb/hqiz{WOa">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="n,)T9SU!pidKtCc7KB(7">
                                               <field name="OP">MINUS</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="qso(1r{,v2oE04.5]n]N">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="gjxk;XA/j|huHh)p77gz">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="j+)1Y}_JluEc)ku?BZPj">
                                               <field name="NUM">1000</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="update" id="_wV6dLC~S.Bo7pp4.Aj~">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="math_arithmetic" id="nf3~e!!BaO*iq}*Kfz*Z">
                                               <field name="OP">DIVIDE</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="math_arithmetic" id="Ul[,7Q;(q]k7yr{seCG@">
                                                   <field name="OP">MINUS</field>
                                                   <value name="A">
                                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="P_)QxWEu)wh*,/yx$3#t">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="mFcJHv@,oR`k,4m?^}pH">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="j]J$8,Mk[^f@_k`R(9Yt">
                                                   <field name="NUM">1000</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="update" id="~@8dfv@ELn2/H2IA=AmM">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="math_arithmetic" id="H5=db9;BV1SDP#{Xn01W">
                                                   <field name="OP">DIVIDE</field>
                                                   <value name="A">
                                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="math_arithmetic" id="lQn$HnGJA]r@=SmpO1}O">
                                                       <field name="OP">MINUS</field>
                                                       <value name="A">
                                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="get_value" id="Y#;DXy}HY5|D%74t]@o$">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="get_value" id="uZlP#=DTf:JC}=pj==8w">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="-9Wj3.9tCx|jW??D(3w-">
                                                       <field name="NUM">1000</field>
                                                     </shadow>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                3. Gauge PV Leistung
                Quelle aus der InfluxDB sind

                • PVLeistungAktuell

                4. Stat Import/Export
                Quelle aus der InfluxDB sind

                • ACTotalRealPower

                5. Stat Hausverbrauch
                Quelle aus der InfluxDB sind

                • Hausverbrauch

                6. Stat Einspeisung heute
                Quelle aus der InfluxDB sind

                • PVExportierteEnergieAktuell -> siehe Blockly Script oben

                7. Stat PV Erzeugung heute
                Quelle aus der InfluxDB sind

                • PVErzeugteEnergieAktuell

                8. Stat Eigenverbrauch heute
                Quelle aus der InfluxDB sind

                • PVEigenverbrauchAktuell
                  Blockly Script (PVEigenverbrauch):

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <block type="on_ext" id="5M,hgtrmhy-Ix[8jnCFF" x="-788" y="138">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="yQ06)5*@k]/k#[*a^Z$^">
                       <field name="oid">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="update" id="1dc~gm$kBR3F64Q_j#}}">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="math_arithmetic" id="t|ASI*V*8O-@Hi69]^F^">
                           <field name="OP">MINUS</field>
                           <value name="A">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="xKx}z@cYh|gQm$K7_yI/">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="get_value" id="e$tM9C/J*|FAH|eZ{8lb">
                               <field name="ATTR">val</field>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                             </block>
                           </value>
                           <value name="B">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="S9|ObqahZ5YT5{CQPLO%">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="get_value" id="9IvPeD|%/z0+ql%M]qH3">
                               <field name="ATTR">val</field>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </statement>
                 </block>
                </xml>
                

                9 Stat Nettobezug heute
                Quelle aus der InfluxDB sind

                • PVImpertierteEnergieAktuell -> siehe Blockly Script oben

                10 Stat Ersparnis Tag
                Quelle aus der InfluxDB sind

                • ErsparnisPVAnlageTag
                  Blockly Script (Kosten):

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</variable>
                   <variable id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</variable>
                   <variable id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</variable>
                   <variable id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</variable>
                 </variables>
                 <block type="variables_set" id="V;zBuc1uVM)2]%Q?uyMU" x="87" y="63">
                   <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                   <value name="VALUE">
                     <block type="math_number" id="MN*t)_!p7(nU)*,XUffX">
                       <field name="NUM">0</field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="HOw2PBH1W2Pdk~q+9LKS">
                       <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                       <value name="VALUE">
                         <block type="math_number" id="NS4W!jbM#yL9w,_+Y;Sb">
                           <field name="NUM">0</field>
                         </block>
                       </value>
                       <next>
                         <block type="schedule" id="zB3LggJ$B):d0vMCvcV@">
                           <field name="SCHEDULE">* * * * *</field>
                           <statement name="STATEMENT">
                             <block type="variables_set" id="OU|}`0y|`f?$X[S7)Q(T">
                               <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                               <value name="VALUE">
                                 <block type="math_arithmetic" id="]zc-b@#.dpi9xIH{!^j4">
                                   <field name="OP">MULTIPLY</field>
                                   <value name="A">
                                     <shadow type="math_number" id="F6vPG7tIk~J)w#B{%hW[">
                                       <field name="NUM">0.0865</field>
                                     </shadow>
                                   </value>
                                   <value name="B">
                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="Vj0@PQlxy3o|^kW{hr#n">
                                       <field name="OP">DIVIDE</field>
                                       <value name="A">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AA$RzH1s8p6dve[S_Dzc">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="4a-BI5U^#irTmft@kt+m">
                                           <field name="OP">MINUS</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="get_value" id="w^FX*3FD,_cX)yzvU5u_">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="vzKhNhtii%*u4y+^vl14">
                                               <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow type="math_number" id="6@{w}ka+@h(U_Z}3`msD">
                                           <field name="NUM">1000</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="2XXblJ#5R/RdZ?T1`nn0">
                                   <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                   <value name="VALUE">
                                     <block type="math_arithmetic" id="(S;+yowKA|O}d]gV7%Gs">
                                       <field name="OP">MULTIPLY</field>
                                       <value name="A">
                                         <shadow type="math_number" id="VY|hI}:5E|u%y|wIv;*9">
                                           <field name="NUM">0.28</field>
                                         </shadow>
                                       </value>
                                       <value name="B">
                                         <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_arithmetic" id="gfHo1Xv~P:_$J2r.;4?/">
                                           <field name="OP">DIVIDE</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="{f8_M5v4E.foY4Gpxc.K">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="fK2sd4~f3k;4,(?o/j.Q">
                                               <field name="OP">MINUS</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="l:6]qx@gC/k8#*FjLU3+">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="1mY?IW+Z%GG].kX%^-p]">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number" id="Ohtl=}3+MEsA~;q#NH%j">
                                               <field name="NUM">1000</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="update" id="}YPw`(xCpX(FQ:FfGasv">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTotal</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_arithmetic" id="5ITK|.I9IAoHhOp_Tfpu">
                                           <field name="OP">ADD</field>
                                           <value name="A">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-OIq=i/E/tnQr9=,E%aC">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="^1v{)YbGWlXcNT9dA}-n">
                                               <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AtYn15(;S%;+)k)QS8W]">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="GOEgI43fkbKJXQIl]EuF">
                                               <field name="OP">ADD</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="n6iab!w_VihL-dvLvzl@">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="variables_get" id="#Zr%D,Y*Fgw-tIh+9JkQ">
                                                   <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Pptf%9vnV8f1gb[}Ya@a">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="variables_get" id="5dg4pd~(FZ{tfICf[Tj/">
                                                   <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="update" id="]L)lmNygUn}[y(fd1/Sd">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTag</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="math_arithmetic" id="$0LJ$9Q:YSZzD8y;I@0F">
                                               <field name="OP">ADD</field>
                                               <value name="A">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Toy:d*),adcVSo+K_lqK">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="math_arithmetic" id="CI1z)B4@89?(44`2MNzF">
                                                   <field name="OP">MULTIPLY</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="/-}D,;4^+[TW`9?M91Q8">
                                                       <field name="NUM">0.0865</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="B">
                                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="zZVo$tldMrv1m$Ptw{jk">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="BSa!^BO(?_}H^-.Om9}r">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="mVYu@[@=0wdc|cBIF%Uv">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="math_arithmetic" id="rRNhB[=y@lb?i0gfgs{h">
                                                   <field name="OP">MULTIPLY</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="GzzK$:v.k5g;Y_]$wD-e">
                                                       <field name="NUM">0.28</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="B">
                                                     <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-N*PGWro,12S`6=xGo!J">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="+[xzdM[bfEzXwO|EuCXt">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                11 Stat Ersparnis Total
                Quelle aus der InfluxDB sind

                • ErsparnisPVAnlageTotal -> siehe Blockly Script oben

                Und hier noch das Blockly für PvErzeugteEnergieTag:

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <block type="schedule" id="?E~kcU0bFAPBr#8X[9Ct" x="-312" y="63">
                   <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}</field>
                   <statement name="STATEMENT">
                     <block type="debug" id="]6=Vt7hsQU72ZzTI{(}$">
                       <field name="Severity">debug</field>
                       <value name="TEXT">
                         <shadow type="text" id="65m?5!q#rJl|T?[}O1oQ">
                           <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                         </shadow>
                       </value>
                       <next>
                         <block type="update" id="V^ZmST?[g8:!{Zf;QCH~">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="get_value" id="3T@bw6.[![xO6a[ilRNw">
                               <field name="ATTR">val</field>
                               <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="W;76rKmS~WWjq^PF]pVA">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="get_value" id="5fUwQ8sFhmTtZY:ohQ0n">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="~-n4R,^5y_bEx/r~4ou3">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="get_value" id="4Eqn%o(3UE9bGH]~rfO?">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="update" id="Jy3cadEAVu#.qV~77KTX" disabled="true">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_number" id="aF,ieDq~(k]rM{732-%R">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </statement>
                   <next>
                     <block type="schedule" id="Kh%yZsQ}8hIIOXi)mvts">
                       <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}</field>
                       <statement name="STATEMENT">
                         <block type="debug" id="mh=V/qM!U!j}:QI?~/B}">
                           <field name="Severity">debug</field>
                           <value name="TEXT">
                             <shadow type="text" id="KZK}6p%YYswdB_o6?SQW">
                               <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                             </shadow>
                           </value>
                           <next>
                             <block type="update" id="2Qc-2ES-q3=NkAz0Pqv:">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="get_value" id="D@/b;fd@f6uT8rTP/{%c">
                                   <field name="ATTR">val</field>
                                   <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="{nC67B?Dq065X]zdY_;%">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="get_value" id="Fo}I9_Wdy`B9A?k%zWYC">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="update" id="K_Po!y[{wL+ejEOn@7#=">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="get_value" id="*MR^,L`biRH^?ma2ik~E">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="update" id="XA8LZ[F)Q:L-Pdjji,;*" disabled="true">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="math_number" id="Nl+pd_mIr(9/@X~o{Y]@">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                       <next>
                         <block type="schedule" id="u.71Z=3nhv`i-UJ$X@@k">
                           <field name="SCHEDULE">{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}</field>
                           <statement name="STATEMENT">
                             <block type="debug" id="0G1JB|Ur#*:*w(@nr9+N">
                               <field name="Severity">debug</field>
                               <value name="TEXT">
                                 <shadow type="text" id="XaK7Pz1epQ4ezA|H=d8p">
                                   <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                                 </shadow>
                               </value>
                               <next>
                                 <block type="update" id="8|$NEoJOFI?8/O4]kGkT">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="get_value" id="I/$M}OVw;+pmAFg_l|ZY">
                                       <field name="ATTR">val</field>
                                       <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="update" id="TefH)T=^2,k1g?Bor;t{">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="get_value" id="jey.5SwVHT*,jgUjR{WC">
                                           <field name="ATTR">val</field>
                                           <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="update" id="Jl5s+I=#hSS#_1m83T!C" disabled="true">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="get_value" id="iM}^=!W}ktWgU3@RbvrQ">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                Korrekturen und coole neue Ideen sind gerne gesehen

                A Offline
                A Offline
                Aare 07
                wrote on last edited by
                #8

                @hennerich sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                Grafana Dashboard

                Hallo Hennerich
                Sieht super aus Dein Dashbord.
                Die PV Erzeugung 3 Wochen unten rechts kriege ich nicht hin.
                Kannst Du die Konfig mal erläutern, der Rest gerne auch..

                Raspi 4 SSD ioBroker

                H 1 Reply Last reply
                0
                • A Aare 07

                  @hennerich sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                  Grafana Dashboard

                  Hallo Hennerich
                  Sieht super aus Dein Dashbord.
                  Die PV Erzeugung 3 Wochen unten rechts kriege ich nicht hin.
                  Kannst Du die Konfig mal erläutern, der Rest gerne auch..

                  H Offline
                  H Offline
                  hennerich
                  wrote on last edited by
                  #9

                  @Aare-07
                  Habs im Teil 3 mal ergänzt. Schau mal, ob du damit weiter kommst.

                  Tutorial UVR1611 C.M.I. Integration
                  Tutorial SolarEdge Integration via ModBus

                  A 1 Reply Last reply
                  0
                  • H hennerich

                    @Aare-07
                    Habs im Teil 3 mal ergänzt. Schau mal, ob du damit weiter kommst.

                    A Offline
                    A Offline
                    Aare 07
                    wrote on last edited by
                    #10

                    @hennerich
                    Supergenial die Infofülle. Danke!
                    Wo ich grad keinen Durchblick habe und die Frage hinzielte war betreffend der Visualisierung in Grafana.
                    Wie machst Du von diesen Zehntagesverlaufsbalken in Grafana?
                    Die Frage ging in die Richtung: Hast du Screenshot oder SQL Sniplet und Dashborad Einstellung der Abfrage in Grafana?
                    Ich bringe die schöne Vergleichsgrafik der letzten x Tage nicht hin...

                    Raspi 4 SSD ioBroker

                    H 1 Reply Last reply
                    0
                    • A Aare 07

                      @hennerich
                      Supergenial die Infofülle. Danke!
                      Wo ich grad keinen Durchblick habe und die Frage hinzielte war betreffend der Visualisierung in Grafana.
                      Wie machst Du von diesen Zehntagesverlaufsbalken in Grafana?
                      Die Frage ging in die Richtung: Hast du Screenshot oder SQL Sniplet und Dashborad Einstellung der Abfrage in Grafana?
                      Ich bringe die schöne Vergleichsgrafik der letzten x Tage nicht hin...

                      H Offline
                      H Offline
                      hennerich
                      wrote on last edited by
                      #11

                      @Aare-07
                      Ich hab mal ein json aus dem Grafana exportiert (siehe Teil 3 oben). Klappt das mit dem Import?

                      Tutorial UVR1611 C.M.I. Integration
                      Tutorial SolarEdge Integration via ModBus

                      A 1 Reply Last reply
                      0
                      • H hennerich

                        @Aare-07
                        Ich hab mal ein json aus dem Grafana exportiert (siehe Teil 3 oben). Klappt das mit dem Import?

                        A Offline
                        A Offline
                        Aare 07
                        wrote on last edited by
                        #12

                        @hennerich
                        Ja Import hat geklappt und hilft weiter. Danke!

                        Raspi 4 SSD ioBroker

                        1 Reply Last reply
                        0
                        • H hennerich

                          Teil2 – Werte umrechnen und in Grafana anzeigen

                          Jetzt haben wir also die Werte im ioBroker. Wie gehts nun damit weiter?

                          Zuerst einmal muss jeder für sich selbst entscheiden, welche Werte für ihn von Interesse sind. Ich für meinen Teil verwende die folgenden Werte:
                          Wechselrichter

                          • 40084: AC-Leistungswert in W (aktuelle PV Produktion)
                          • 40093: AC Gesamt-Energieproduktion in Wh (also alles, was eure Anlage bisher erzeugt hat)
                          • 40103: Kühlkörpertemperatur vom Wechselrichter in °C (man weiß ja nie)

                          Energiezähler

                          • 40206: Total Real Power (aktueller Netzbezug bzw. Einspeisung)
                          • 40226: Total Exported Real Energy (was ihr heute erzeugt habt)
                          • 40234: Total Imported Real Energy (was ihr heute aus dem Netz bezogen habt)

                          Aus den letzten beiden Werte kann man den Eigenverbrauch heute berechnen.

                          Dann müssen wir verstehen, dass SolarEdge für viele Werte noch Skalierungsfaktoren mitliefert. Auch das ist etwas, dass nur in der englischen Doku auftaucht. Dort steht nämlich:


                          As an alternative to floating point format, values are represented by Integer values with a signed scale factor applied. The scale factor explicitly shifts the decimal point to left (negative value) or to the right (positive value).

                          For example, a value “Value” may have an associated value “Value_SF”
                          Value = “Value” * 10^ Value_SF for example:

                          • For “Value” = 2071 and “Value_SF” = -2 Value = 2071*10^-2 = 20.71
                          • For “Value” = 2071 and “Value_SF” = 2 Value = 2071*10^2 = 2071

                          Man muss die Werte die man möchte also erst noch umrechnen. Und sie müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen. Dazu geht mein Dank an inkoFa aus dem PV Forum, der mir mit seiner Lösung dazu sehr weitergeholfen hat.

                          Für den Wert 40084: AC-Leistungswert legt ihr folgendes JS Script an:

                          function convertValue(value, factor) {
                             if (value === null) return;
                             if (factor === null) factor = 0;
                             setState('Solar.Wechselrichter.PVLeistungAktuell', value * Math.pow(10, factor), true);
                          }  
                           
                          createState('Solar.Wechselrichter.PVLeistungAktuell', {
                          	name: 'PVLeistungAktuell',
                          	unit: 'W',
                          	min:  0,
                          	type: 'number',
                          	role: 'value.energy'
                          }, function () {
                          	on('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/, function(obj) {
                          		var timeout = setTimeout(function () {
                          			clearTimeout(timeout);
                          			var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
                          			convertValue(obj.state.val, factorState ? factorState.val : 0);
                          		}, 100); 
                          	});
                          	var factorState = getState('modbus.1.holdingRegisters.40084_I_AC_Leistung_SF'/*AC-Leistung Skalierungsfaktor*/);
                          	var valueState = getState('modbus.1.holdingRegisters.40083_I_AC_Leistung'/*AC-Leistungswert*/);
                          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
                          });
                          

                          Für den Wert 40206: Total Real Power legt ihr folgendes JS Script an:

                          function convertValue(value, factor) {
                             if (value === null) return;
                             if (factor === null) factor = 0;
                             setState('Solar.Wechselrichter.ACTotalRealPower', value * Math.pow(10, factor), true);
                          }  
                           
                          createState('Solar.Wechselrichter.ACTotalRealPower', {
                          	name: 'ACTotalRealPower',
                          	unit: 'W',
                          	min:  -999999,
                          	type: 'number',
                          	role: 'value.energy'
                          }, function () {
                          	on('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/, function(obj) {
                          		var timeout = setTimeout(function () {
                          			clearTimeout(timeout);
                          			var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
                          			convertValue(obj.state.val, factorState ? factorState.val : 0);
                          		}, 100); 
                          	});
                          	var factorState = getState('modbus.1.holdingRegisters.40210_M_AC_Power_SF'/*AC Real Power Scale Factor*/);
                          	var valueState = getState('modbus.1.holdingRegisters.40206_M_AC_Power'/*Total Real Power (sum of active phases)*/);
                          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
                          });
                          

                          Und für den Wert 40103: Kühlkörpertemperatur legt ihr folgendes JS Script an:

                          function convertValue(value, factor) {
                             if (value === null) return;
                             if (factor === null) factor = 0;
                             setState('Solar.Wechselrichter.TempWechselrichter', value * Math.pow(10, factor), true);
                          }  
                           
                          createState('Solar.Wechselrichter.TempWechselrichter', {
                          	name: 'TempWechselrichter',
                          	unit: '°C',
                          	min:  -999999,
                          	type: 'number',
                          	role: 'value.energy'
                          }, function () {
                          	on('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/, function(obj) {
                          		var timeout = setTimeout(function () {
                          			clearTimeout(timeout);
                          			var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
                          			convertValue(obj.state.val, factorState ? factorState.val : 0);
                          		}, 100); 
                          	});
                          	var factorState = getState('modbus.1.holdingRegisters.40106_I_Temp_SF'/*Kühlkörpertemperatur Skalierungsfaktor*/);
                          	var valueState = getState('modbus.1.holdingRegisters.40103_I_Temp_Kühler'/*Kühlkörpertemperatur*/);
                          	convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
                          });
                          

                          Jetzt könnt ihr mit den Umrechnungen die entsprechenden Objekte befüllen. Ich hab also ein Blockly Script Hausverbrauch angelegt:
                          518582a6-ed9e-4ee9-a2da-a2d184bda8f4-grafik.png
                          Importiert gerne folgendes:

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-937" y="63">
                             <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
                             <field name="CONDITION">ne</field>
                             <field name="ACK_CONDITION"></field>
                             <statement name="STATEMENT">
                               <block type="update" id="{8c)~K%7n5#35[IVg*CU">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">javascript.0.Solar.Wechselrichter.Hausverbrauch</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/">
                                     <field name="OP">MINUS</field>
                                     <value name="A">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!{7/(]DX3lGP@Il`Y=E1">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="_;teC|IbrE2JD_fEN~js">
                                         <field name="ATTR">val</field>
                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="M:s(2P888iDd:XzoTo4p">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p">
                                         <field name="ATTR">val</field>
                                         <field name="OID">javascript.0.Solar.Wechselrichter.ACTotalRealPower</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                           </block>
                          </xml>
                          

                          Und das schreibt ihr z.B. in die InfluxDB, um den Wert im Grafana anzuzeigen:
                          21df3f32-6689-48ea-93e1-65740130c347-grafik.png

                          Ich versuche mal nach und nach noch Sachen hier zu ergänzen. Und eure Meinung dazu interessiert mich natürlich auch brennend. Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe? Wie sehen eure (PV) Dashboards aus, die ihr umgesetzt habt?

                          A Offline
                          A Offline
                          Aare 07
                          wrote on last edited by
                          #13

                          @hennerich sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                          Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe?

                          Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen. Berechnung sowas wie dein Sonnenstand Script mit der Wetterprognose verknüpft. Beispiel hier https://www.photovoltaikforum.com/thread/128698-pimp-my-autarkiegrad-eigenverbrauch-optimieren-pv-ertrag-via-kurzzeitprognosen-d/ aus DWD Opendata https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L . Oder alternativ einfacher gesteuert vom gelieferten Wettericon eines vorhandenen Wetteradapters.
                          Ziel: Wenn für morgen keine Sonne vorausgesagt ist heize ich mit der Wärmepumpe mit günstigerem Nachtstrom. Wenn Sonne vorausgesagt ist warte ich mit dem füllen des Puffers auf den PV Ertrag des kommenden Tages. Da meine Scriptfähigleiten sehr rudimentär sind befürchte ich dass das noch sehr lange dauern wird (oder hoffe dass ein gewiefter Scripter die Idee umsetzt ;) )

                          Raspi 4 SSD ioBroker

                          H S 2 Replies Last reply
                          2
                          • A Aare 07

                            @hennerich sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                            Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe?

                            Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen. Berechnung sowas wie dein Sonnenstand Script mit der Wetterprognose verknüpft. Beispiel hier https://www.photovoltaikforum.com/thread/128698-pimp-my-autarkiegrad-eigenverbrauch-optimieren-pv-ertrag-via-kurzzeitprognosen-d/ aus DWD Opendata https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L . Oder alternativ einfacher gesteuert vom gelieferten Wettericon eines vorhandenen Wetteradapters.
                            Ziel: Wenn für morgen keine Sonne vorausgesagt ist heize ich mit der Wärmepumpe mit günstigerem Nachtstrom. Wenn Sonne vorausgesagt ist warte ich mit dem füllen des Puffers auf den PV Ertrag des kommenden Tages. Da meine Scriptfähigleiten sehr rudimentär sind befürchte ich dass das noch sehr lange dauern wird (oder hoffe dass ein gewiefter Scripter die Idee umsetzt ;) )

                            H Offline
                            H Offline
                            hennerich
                            wrote on last edited by
                            #14

                            @Aare-07
                            Interessant. Sowas ähnliches hatte ich auch vor. Allerdings nicht mit meiner WP sondern mit einem Heizstab. Ich wollte vermeiden, dass die WP bei schwankender Leistung immer Strom aus dem Netz beziehen muss, weil die Mindestlaufzeit 15min beträgt. Und wenn immer mal wieder Wolken durchziehen und bei Sonne das Signal WP AN kommt, verbrauche ich bestimmt zu viel Netzstrom. Daher der (stufenlos regelbare) Heizstab. Aber die Anlage muss erstmal paar Monate laufen, damit ich ein Gefühl dafür bekomme.

                            Tutorial UVR1611 C.M.I. Integration
                            Tutorial SolarEdge Integration via ModBus

                            1 Reply Last reply
                            0
                            • H hennerich

                              Teil3 – Visualisierung (ob mit Grafana oder mit anderen Tools muss ich sehen)
                              ongoing, erster Screenshot von meinem Grafana Dashboard (auch hier danke an inkoFa, das ist nämlich seine Idee gewesen).
                              29780207-dc8d-4d73-bee0-8348d48a33c8-grafik.png

                              HIer noch das Grafana json für einen Import.
                              PV Anlage-1605288773411.json

                              Damit ihr euch das auch nachbauen könnt, erkläre ich nachfolgend welche Einstellungen dafür notwendig sind. Der linke Block kommt von meiner Heizung, den lasse ich außen vor und konzentriere mich nur auf die PV Sachen.

                              1. Graph PV
                              Quellen aus der InfluxDB sind

                              • PVLeistungAktuell -> gelber Graph
                              • Hausverbrauch -> blauer Graph
                              • TempWechselrichter -> orangener Graph
                              • (Sonnenstand) -> gestrichelt grüne Linie

                              Die ersten 3 Werte solltet ihr schon haben wenn ihr oben aus meinem Teil 2 die Sachen übernommen habt.

                              Sonnenstand war ein fertiges JS Script:

                              // calculates the sun position, path and power throughout the day
                              // based on from http://www.stjarnhimlen.se/comp/tutorial.html
                              // most var-names are identical to above tutorial
                              // combined with Sonnenstand-Script: paul53, pix; 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
                              // Angepasst ykuendig 12.02.17; stringify im log, ack = true bei setState und Diverses 
                              
                              var suncalc = require('suncalc'),
                                 result =  getObject("system.adapter.javascript.0"),
                                 lat =  result.native.latitude,
                                 long = result.native.longitude;
                                 log("long: " + long + " - lat: " + lat);
                              
                              var modtilt =       50;     //Dachneigung in Grad (Solar panel's tilt angle)
                              var modazi =        285;    //Ausrichtung des Hauses in Grad zB SSW (Solar panel's azimut)
                              var modsufrace =    148.0;   //Paneloberfläche in m2 (Solar panel's surface in sq. meters)
                              var modeff =        0.211;  //Annäherung an Panel-Wirkungsgrad zB 18 Prozent (modules efficiency correction)
                                                                      // Hier kann an einem klaren Tag etwas geschraubt werden ;-)
                              
                              var altitude;       // Calculated Elevation
                              var azimuth;        // Calculated Azimuth
                              
                              createState('javascript.0.Solar.Sonnenstand.Elevation', 0, {unit: '°'});
                              createState('javascript.0.Solar.Sonnenstand.Azimut', 0, {unit: '°'});
                              createState('javascript.0.Solar.Sonnenstand.PanelPossible', 0, {unit: 'W'});
                              // ganz am Ende die setStates anpassen nicht vergessen!
                              
                              // Do not change below, until You know what You are doing!
                              // ********************************************************
                              
                              Math.degrees = function(radians) {return radians * 180 / Math.PI;};
                              Math.radians = function(degrees) {return degrees * Math.PI / 180;};
                              
                              function Sonnenstand_berechnen () {
                                 var now = new Date();
                                 var sunpos = suncalc.getPosition(now, lat, long);
                                 log("Script Sonnenstand; latitude : " + result.native.latitude + " / longitude: " + result.native.longitude,'debug');
                                 log("Script Sonnenstand; sunpos: " + JSON.stringify(sunpos),'debug');
                              
                                 altitude = Math.degrees(sunpos.altitude);
                                 azimuth =  Math.degrees(sunpos.azimuth) + 180;
                              
                                 // The intensity of the direct component of sunlight throughout each day can be determined as 
                                 // a function of air mass. based on: http://pveducation.org/pvcdrom/properties-of-sunlight/air-mass#formula
                                 var airmass = 1/Math.cos((90-altitude)*4*Math.asin(1)/360); 
                              
                                 // Sincident is the intensity on a plane perpendicular to the sun's rays in units of kW/m2 and AM is the air mass.
                                 // The value of 1.353 kW/m2 is the solar constant and the number 0.7 arises from the fact that about 70% of the radiation incident on the atmosphere is transmitted
                                 // to the Earth. The extra power term of 0.678 is an empirical fit to the observed data and takes into account the non-uniformities in the atmospheric layers.
                                 // ykuendig: use different values because of pv instead thermal panels
                                 var Sincident = (1.367*Math.pow(0.78,Math.pow(airmass,0.6)));
                                 var fraction = Math.cos(altitude*4*Math.asin(1)/360)*Math.sin(modtilt*4*Math.asin(1)/360)*Math.cos(azimuth*4*Math.asin(1)/360-modazi*4*Math.asin(1)/360)+Math.sin(altitude*4*Math.asin(1)/360)*Math.cos(modtilt*4*Math.asin(1)/360);
                              
                                 // W/m² light intensity on the module * module's surface
                                 var SmoduleInt = Sincident * fraction * modsufrace * 1000;
                                 if(SmoduleInt<0) {
                                     SmoduleInt =    0;
                                 }
                                 // Module Effective in relation of the efficiency of the used panel
                                 var SmoduleEff = SmoduleInt * modeff;
                              
                                 if( altitude < 0 ) {
                                     SmoduleInt =    0;
                                     SmoduleEff =    0;
                                     altitude =      0;
                                 }
                              
                                 log("Script Sonnenstand; Erfolgreich gelaufen, Werte akzeptiert", "info");
                                 log("Script Sonnenstand; airmass: " + airmass,"debug");
                                 log("Script Sonnenstand; azimuth: " + azimuth,"debug");
                                 log("Script Sonnenstand; altitude: " + altitude,"debug");
                                 log("Script Sonnenstand; SmoduleInt: " + SmoduleInt,"debug");
                                 log("Script Sonnenstand; SmoduleEff: " + SmoduleEff,"debug");
                              
                                 // Change ID to the created States
                                 setState('javascript.0.Solar.Sonnenstand.Elevation'/*javascript 0 Solar Sonnenstand Elevation*/,altitude.toFixed(1), true);
                                 setState('javascript.0.Solar.Sonnenstand.Azimut'/*javascript 0 Solar Sonnenstand Azimut*/,azimuth.toFixed(), true);
                                 setState('javascript.0.Solar.Sonnenstand.PanelPossible'/*javascript 0 Solar Sonnenstand PanelPossible*/, SmoduleEff.toFixed(), true);
                              }
                              
                              // -> Zyklisch
                              
                              schedule("*/10 * * * *", Sonnenstand_berechnen);
                              Sonnenstand_berechnen(); // bei Scriptstart
                              
                              


                              2. Graph PV Erzeugung in kWh
                              Quelle aus der InfluxDB sind

                              • PVErzeugteEnergieAktuell
                                Blockly Script (PVBerechneTageswerte):

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <block type="on_ext" id="y@lWX)*%NiA!ZGLd:;Q$" x="-687" y="87">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                 <field name="CONDITION">ne</field>
                                 <field name="ACK_CONDITION"></field>
                                 <value name="OID0">
                                   <shadow type="field_oid" id="9.%}C_f#R|xD+X-(7)r2">
                                     <field name="oid">modbus.1.holdingRegisters.40234_M_Imported</field>
                                   </shadow>
                                 </value>
                                 <statement name="STATEMENT">
                                   <block type="update" id="x.N~f*hrQxS~@9cMYoiE">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="math_arithmetic" id="D*z62x|?#F|Qe8hp+]U#">
                                         <field name="OP">DIVIDE</field>
                                         <value name="A">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_arithmetic" id="_0_3+_+SBF]n}Kb~ltP`">
                                             <field name="OP">MINUS</field>
                                             <value name="A">
                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="get_value" id="^.WWE79[swjNwM%X:zJ#">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="get_value" id="rHO$M#tK%xLrylsZ-_T^">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number" id="+9z/fggnWUX%RN-aCC}H">
                                             <field name="NUM">1000</field>
                                           </shadow>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                                 <next>
                                   <block type="on_ext" id="J8C5.l@n=!ELlI4jb^Cv">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                     <field name="CONDITION">ne</field>
                                     <field name="ACK_CONDITION"></field>
                                     <value name="OID0">
                                       <shadow type="field_oid" id="`;Z)LfB(n.m5UePJboM.">
                                         <field name="oid">modbus.1.holdingRegisters.40226_M_Exported</field>
                                       </shadow>
                                     </value>
                                     <statement name="STATEMENT">
                                       <block type="update" id="3sKIv|]w==qqH!t]{]er">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="math_arithmetic" id="(V84_Uc.l7mo6_]Ndw=E">
                                             <field name="OP">DIVIDE</field>
                                             <value name="A">
                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="math_arithmetic" id="`wmR.[]:x(_|+Ks#Vjge">
                                                 <field name="OP">MINUS</field>
                                                 <value name="A">
                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="get_value" id="*?`QT7v~({Lk5}Q_W3Sp">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="get_value" id="C/6|^=`oS?+z;ZgjfCQ8">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow type="math_number" id="{g~E#A,TtN32@J#cPfMw">
                                                 <field name="NUM">1000</field>
                                               </shadow>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="on_ext" id="Pm$w:I$X8;ThSV?()/nh">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <value name="OID0">
                                           <shadow type="field_oid" id="e66:C.|L}2q?[6@59){[">
                                             <field name="oid">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                           </shadow>
                                         </value>
                                         <statement name="STATEMENT">
                                           <block type="update" id="t1/a#un}^R;:mQVHr8jm">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="math_arithmetic" id="ND)2(danTD2neCrSu2JB">
                                                 <field name="OP">DIVIDE</field>
                                                 <value name="A">
                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="math_arithmetic" id="?`iltSk96+NT/#(xwS?Y">
                                                     <field name="OP">MINUS</field>
                                                     <value name="A">
                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="get_value" id="OFk=pk-c-W=Gi}w$_Y2;">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="get_value" id="ghQY!ub_kT5!C:SD]!6C">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <shadow type="math_number" id=",*aj+DPuKR(z2t@soOmt">
                                                     <field name="NUM">1000</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="schedule" id="y@C$399x.Z9LJOobUceT">
                                             <field name="SCHEDULE">{"time":{"exactTime":true,"start":"02:30"},"period":{"days":1}}</field>
                                             <statement name="STATEMENT">
                                               <block type="comment" id="yU_Y*jFn(V4*WirA3rTP">
                                                 <field name="COMMENT">Zaehler nachts zuruecksetzen</field>
                                                 <next>
                                                   <block type="update" id="ZmWWr!J?Q}zQ3xq78J:g">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="math_arithmetic" id="e5viXk6#Wkb/hqiz{WOa">
                                                         <field name="OP">DIVIDE</field>
                                                         <value name="A">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="math_arithmetic" id="n,)T9SU!pidKtCc7KB(7">
                                                             <field name="OP">MINUS</field>
                                                             <value name="A">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="get_value" id="qso(1r{,v2oE04.5]n]N">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="get_value" id="gjxk;XA/j|huHh)p77gz">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow type="math_number" id="j+)1Y}_JluEc)ku?BZPj">
                                                             <field name="NUM">1000</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="_wV6dLC~S.Bo7pp4.Aj~">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="math_arithmetic" id="nf3~e!!BaO*iq}*Kfz*Z">
                                                             <field name="OP">DIVIDE</field>
                                                             <value name="A">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_arithmetic" id="Ul[,7Q;(q]k7yr{seCG@">
                                                                 <field name="OP">MINUS</field>
                                                                 <value name="A">
                                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="get_value" id="P_)QxWEu)wh*,/yx$3#t">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="get_value" id="mFcJHv@,oR`k,4m?^}pH">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow type="math_number" id="j]J$8,Mk[^f@_k`R(9Yt">
                                                                 <field name="NUM">1000</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="update" id="~@8dfv@ELn2/H2IA=AmM">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieAktuell</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="math_arithmetic" id="H5=db9;BV1SDP#{Xn01W">
                                                                 <field name="OP">DIVIDE</field>
                                                                 <value name="A">
                                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="$LhQAF.]o#4@Xh5`EAeM">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="math_arithmetic" id="lQn$HnGJA]r@=SmpO1}O">
                                                                     <field name="OP">MINUS</field>
                                                                     <value name="A">
                                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="HdAZmZam!E1M(bmm*0$n">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="get_value" id="Y#;DXy}HY5|D%74t]@o$">
                                                                         <field name="ATTR">val</field>
                                                                         <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="B">
                                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="~W}+q464q`s+|e;)%}jr">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="get_value" id="uZlP#=DTf:JC}=pj==8w">
                                                                         <field name="ATTR">val</field>
                                                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow type="math_number" id="-9Wj3.9tCx|jW??D(3w-">
                                                                     <field name="NUM">1000</field>
                                                                   </shadow>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                              </xml>
                              

                              3. Gauge PV Leistung
                              Quelle aus der InfluxDB sind

                              • PVLeistungAktuell

                              4. Stat Import/Export
                              Quelle aus der InfluxDB sind

                              • ACTotalRealPower

                              5. Stat Hausverbrauch
                              Quelle aus der InfluxDB sind

                              • Hausverbrauch

                              6. Stat Einspeisung heute
                              Quelle aus der InfluxDB sind

                              • PVExportierteEnergieAktuell -> siehe Blockly Script oben

                              7. Stat PV Erzeugung heute
                              Quelle aus der InfluxDB sind

                              • PVErzeugteEnergieAktuell

                              8. Stat Eigenverbrauch heute
                              Quelle aus der InfluxDB sind

                              • PVEigenverbrauchAktuell
                                Blockly Script (PVEigenverbrauch):

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <block type="on_ext" id="5M,hgtrmhy-Ix[8jnCFF" x="-788" y="138">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                 <field name="CONDITION">ne</field>
                                 <field name="ACK_CONDITION"></field>
                                 <value name="OID0">
                                   <shadow type="field_oid" id="yQ06)5*@k]/k#[*a^Z$^">
                                     <field name="oid">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                                   </shadow>
                                 </value>
                                 <statement name="STATEMENT">
                                   <block type="update" id="1dc~gm$kBR3F64Q_j#}}">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="math_arithmetic" id="t|ASI*V*8O-@Hi69]^F^">
                                         <field name="OP">MINUS</field>
                                         <value name="A">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="xKx}z@cYh|gQm$K7_yI/">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="e$tM9C/J*|FAH|eZ{8lb">
                                             <field name="ATTR">val</field>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="S9|ObqahZ5YT5{CQPLO%">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="get_value" id="9IvPeD|%/z0+ql%M]qH3">
                                             <field name="ATTR">val</field>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                              </xml>
                              

                              9 Stat Nettobezug heute
                              Quelle aus der InfluxDB sind

                              • PVImpertierteEnergieAktuell -> siehe Blockly Script oben

                              10 Stat Ersparnis Tag
                              Quelle aus der InfluxDB sind

                              • ErsparnisPVAnlageTag
                                Blockly Script (Kosten):

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <variables>
                                 <variable id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</variable>
                                 <variable id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</variable>
                                 <variable id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</variable>
                                 <variable id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</variable>
                               </variables>
                               <block type="variables_set" id="V;zBuc1uVM)2]%Q?uyMU" x="87" y="63">
                                 <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                                 <value name="VALUE">
                                   <block type="math_number" id="MN*t)_!p7(nU)*,XUffX">
                                     <field name="NUM">0</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="HOw2PBH1W2Pdk~q+9LKS">
                                     <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                                     <value name="VALUE">
                                       <block type="math_number" id="NS4W!jbM#yL9w,_+Y;Sb">
                                         <field name="NUM">0</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="schedule" id="zB3LggJ$B):d0vMCvcV@">
                                         <field name="SCHEDULE">* * * * *</field>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="OU|}`0y|`f?$X[S7)Q(T">
                                             <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                                             <value name="VALUE">
                                               <block type="math_arithmetic" id="]zc-b@#.dpi9xIH{!^j4">
                                                 <field name="OP">MULTIPLY</field>
                                                 <value name="A">
                                                   <shadow type="math_number" id="F6vPG7tIk~J)w#B{%hW[">
                                                     <field name="NUM">0.0865</field>
                                                   </shadow>
                                                 </value>
                                                 <value name="B">
                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="math_arithmetic" id="Vj0@PQlxy3o|^kW{hr#n">
                                                     <field name="OP">DIVIDE</field>
                                                     <value name="A">
                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AA$RzH1s8p6dve[S_Dzc">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="math_arithmetic" id="4a-BI5U^#irTmft@kt+m">
                                                         <field name="OP">MINUS</field>
                                                         <value name="A">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="get_value" id="w^FX*3FD,_cX)yzvU5u_">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="variables_get" id="vzKhNhtii%*u4y+^vl14">
                                                             <field name="VAR" id="G,3~x-$y}bZpvg,B)c4@">zaehlerstandVorErweiterunginWh</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <shadow type="math_number" id="6@{w}ka+@h(U_Z}3`msD">
                                                         <field name="NUM">1000</field>
                                                       </shadow>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="variables_set" id="2XXblJ#5R/RdZ?T1`nn0">
                                                 <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                                 <value name="VALUE">
                                                   <block type="math_arithmetic" id="(S;+yowKA|O}d]gV7%Gs">
                                                     <field name="OP">MULTIPLY</field>
                                                     <value name="A">
                                                       <shadow type="math_number" id="VY|hI}:5E|u%y|wIv;*9">
                                                         <field name="NUM">0.28</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="B">
                                                       <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="oOjLpAv;cD1vURKs-+^*">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                       <block type="math_arithmetic" id="gfHo1Xv~P:_$J2r.;4?/">
                                                         <field name="OP">DIVIDE</field>
                                                         <value name="A">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="{f8_M5v4E.foY4Gpxc.K">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="math_arithmetic" id="fK2sd4~f3k;4,(?o/j.Q">
                                                             <field name="OP">MINUS</field>
                                                             <value name="A">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="!}!uz);7qw:GessR=Atf">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="get_value" id="l:6]qx@gC/k8#*FjLU3+">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="cL~EW9lC0KKmZaJ#`ydT">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="get_value" id="1mY?IW+Z%GG].kX%^-p]">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow type="math_number" id="Ohtl=}3+MEsA~;q#NH%j">
                                                             <field name="NUM">1000</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="update" id="}YPw`(xCpX(FQ:FfGasv">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTotal</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="math_arithmetic" id="5ITK|.I9IAoHhOp_Tfpu">
                                                         <field name="OP">ADD</field>
                                                         <value name="A">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-OIq=i/E/tnQr9=,E%aC">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="variables_get" id="^1v{)YbGWlXcNT9dA}-n">
                                                             <field name="VAR" id=":YJ`-i5/BCwOPU0eAA_h">eigenverbrauchInEur</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="AtYn15(;S%;+)k)QS8W]">
                                                             <field name="NUM">1</field>
                                                           </shadow>
                                                           <block type="math_arithmetic" id="GOEgI43fkbKJXQIl]EuF">
                                                             <field name="OP">ADD</field>
                                                             <value name="A">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="n6iab!w_VihL-dvLvzl@">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="variables_get" id="#Zr%D,Y*Fgw-tIh+9JkQ">
                                                                 <field name="VAR" id="XuQ7aQui3+nJ(w,6PbtP">verguetungEinspeisung</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Pptf%9vnV8f1gb[}Ya@a">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="variables_get" id="5dg4pd~(FZ{tfICf[Tj/">
                                                                 <field name="VAR" id="RH9EQm/A27)/5,f9!!.a">alteVerguetunginEuro</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="]L)lmNygUn}[y(fd1/Sd">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">javascript.0.Verbrauchszaehler.ErsparnisPVAnlageTag</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="math_arithmetic" id="$0LJ$9Q:YSZzD8y;I@0F">
                                                             <field name="OP">ADD</field>
                                                             <value name="A">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Toy:d*),adcVSo+K_lqK">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_arithmetic" id="CI1z)B4@89?(44`2MNzF">
                                                                 <field name="OP">MULTIPLY</field>
                                                                 <value name="A">
                                                                   <shadow type="math_number" id="/-}D,;4^+[TW`9?M91Q8">
                                                                     <field name="NUM">0.0865</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="zZVo$tldMrv1m$Ptw{jk">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="get_value" id="BSa!^BO(?_}H^-.Om9}r">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieAktuell</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="mVYu@[@=0wdc|cBIF%Uv">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_arithmetic" id="rRNhB[=y@lb?i0gfgs{h">
                                                                 <field name="OP">MULTIPLY</field>
                                                                 <value name="A">
                                                                   <shadow type="math_number" id="GzzK$:v.k5g;Y_]$wD-e">
                                                                     <field name="NUM">0.28</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="-N*PGWro,12S`6=xGo!J">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="get_value" id="+[xzdM[bfEzXwO|EuCXt">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVEigenverbrauchAktuell</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                              </xml>
                              

                              11 Stat Ersparnis Total
                              Quelle aus der InfluxDB sind

                              • ErsparnisPVAnlageTotal -> siehe Blockly Script oben

                              Und hier noch das Blockly für PvErzeugteEnergieTag:

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <block type="schedule" id="?E~kcU0bFAPBr#8X[9Ct" x="-312" y="63">
                                 <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:59"},"period":{"days":1}}</field>
                                 <statement name="STATEMENT">
                                   <block type="debug" id="]6=Vt7hsQU72ZzTI{(}$">
                                     <field name="Severity">debug</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="65m?5!q#rJl|T?[}O1oQ">
                                         <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                                       </shadow>
                                     </value>
                                     <next>
                                       <block type="update" id="V^ZmST?[g8:!{Zf;QCH~">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="get_value" id="3T@bw6.[![xO6a[ilRNw">
                                             <field name="ATTR">val</field>
                                             <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="update" id="W;76rKmS~WWjq^PF]pVA">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="get_value" id="5fUwQ8sFhmTtZY:ohQ0n">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="update" id="~-n4R,^5y_bEx/r~4ou3">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="get_value" id="4Eqn%o(3UE9bGH]~rfO?">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="update" id="Jy3cadEAVu#.qV~77KTX" disabled="true">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="math_number" id="aF,ieDq~(k]rM{732-%R">
                                                         <field name="NUM">0</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                                 <next>
                                   <block type="schedule" id="Kh%yZsQ}8hIIOXi)mvts">
                                     <field name="SCHEDULE">{"time":{"exactTime":true,"start":"23:58"},"period":{"days":1}}</field>
                                     <statement name="STATEMENT">
                                       <block type="debug" id="mh=V/qM!U!j}:QI?~/B}">
                                         <field name="Severity">debug</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="KZK}6p%YYswdB_o6?SQW">
                                             <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                                           </shadow>
                                         </value>
                                         <next>
                                           <block type="update" id="2Qc-2ES-q3=NkAz0Pqv:">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="get_value" id="D@/b;fd@f6uT8rTP/{%c">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="update" id="{nC67B?Dq065X]zdY_;%">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="get_value" id="Fo}I9_Wdy`B9A?k%zWYC">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="update" id="K_Po!y[{wL+ejEOn@7#=">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="get_value" id="*MR^,L`biRH^?ma2ik~E">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="XA8LZ[F)Q:L-Pdjji,;*" disabled="true">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">javascript.0.Solar.ErsparnisAnlageTag</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="math_number" id="Nl+pd_mIr(9/@X~o{Y]@">
                                                             <field name="NUM">0</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="schedule" id="u.71Z=3nhv`i-UJ$X@@k">
                                         <field name="SCHEDULE">{"time":{"exactTime":true,"start":"00:00"},"period":{"days":1}}</field>
                                         <statement name="STATEMENT">
                                           <block type="debug" id="0G1JB|Ur#*:*w(@nr9+N">
                                             <field name="Severity">debug</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="XaK7Pz1epQ4ezA|H=d8p">
                                                 <field name="TEXT">Erzeugungswerte zurückgesetzt</field>
                                               </shadow>
                                             </value>
                                             <next>
                                               <block type="update" id="8|$NEoJOFI?8/O4]kGkT">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">javascript.0.Solar.Wechselrichter.PVErzeugteEnergieTag</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="get_value" id="I/$M}OVw;+pmAFg_l|ZY">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">modbus.1.holdingRegisters.40093_I_AC_Energie_WH</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="update" id="TefH)T=^2,k1g?Bor;t{">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.Solar.Wechselrichter.PVExportierteEnergieTag</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="get_value" id="jey.5SwVHT*,jgUjR{WC">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">modbus.1.holdingRegisters.40226_M_Exported</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="Jl5s+I=#hSS#_1m83T!C" disabled="true">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">javascript.0.Solar.Wechselrichter.PVImportierteEnergieTag</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="get_value" id="iM}^=!W}ktWgU3@RbvrQ">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">modbus.1.holdingRegisters.40234_M_Imported</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                              </xml>
                              

                              Korrekturen und coole neue Ideen sind gerne gesehen

                              J Offline
                              J Offline
                              Jockel_Bln
                              wrote on last edited by
                              #15

                              @hennerich Vielen Dank für die Mühe hier! Das hat mir, als absoluter Anfänger, sehr geholfen :+1:
                              Eine Frage hätte ich dazu noch: Wie hast Du es hinbekommen, dass bei dem Panel "PV Erzeugung in kWh" der aktuelle Tag (Balken) in kompletter Breite angezeigt wird und sich nicht im Laufe des Tages langsam von rechts reinschiebt?
                              Egal was ich in Grafana schon versucht habe, sieht es immernoch so aus:
                              verbrauch.JPG

                              Vielen Dank im Voraus!
                              Gruß Jörg

                              H 1 Reply Last reply
                              0
                              • J Jockel_Bln

                                @hennerich Vielen Dank für die Mühe hier! Das hat mir, als absoluter Anfänger, sehr geholfen :+1:
                                Eine Frage hätte ich dazu noch: Wie hast Du es hinbekommen, dass bei dem Panel "PV Erzeugung in kWh" der aktuelle Tag (Balken) in kompletter Breite angezeigt wird und sich nicht im Laufe des Tages langsam von rechts reinschiebt?
                                Egal was ich in Grafana schon versucht habe, sieht es immernoch so aus:
                                verbrauch.JPG

                                Vielen Dank im Voraus!
                                Gruß Jörg

                                H Offline
                                H Offline
                                hennerich
                                wrote on last edited by
                                #16

                                @Jockel_Bln
                                Öhh, hmm, du hast aber nur eine Datenquelle eingebunden, richtig?
                                476a5247-65ae-4a81-a58a-91d94305a24c-image.png

                                Ansonsten hier mal meine Konfig:
                                a7f0407b-3f7a-40f6-b285-1cfebce5e974-image.png

                                ffc81118-1910-44b7-b23a-323c882e24fc-image.png

                                0d7314e4-9de5-4e03-98bf-2740afad293c-image.png

                                4471f75a-432d-4158-b534-6eb49dc0e122-image.png

                                Grüße
                                Henri

                                Tutorial UVR1611 C.M.I. Integration
                                Tutorial SolarEdge Integration via ModBus

                                J 1 Reply Last reply
                                0
                                • H hennerich

                                  @Jockel_Bln
                                  Öhh, hmm, du hast aber nur eine Datenquelle eingebunden, richtig?
                                  476a5247-65ae-4a81-a58a-91d94305a24c-image.png

                                  Ansonsten hier mal meine Konfig:
                                  a7f0407b-3f7a-40f6-b285-1cfebce5e974-image.png

                                  ffc81118-1910-44b7-b23a-323c882e24fc-image.png

                                  0d7314e4-9de5-4e03-98bf-2740afad293c-image.png

                                  4471f75a-432d-4158-b534-6eb49dc0e122-image.png

                                  Grüße
                                  Henri

                                  J Offline
                                  J Offline
                                  Jockel_Bln
                                  wrote on last edited by Jockel_Bln
                                  #17

                                  @hennerich
                                  Nein, ich habe drei Datenquellen eingebunden, wobei ich den Gesamtverbrauch hinter den gestapelten Balken "versteckt" habe.
                                  Bei mir sieht es ein bissl anders aus.
                                  1.JPG

                                  2.JPG

                                  3.JPG
                                  Die Datenreihen sind fortlaufende Zählerstände, deshalb SELECT max("value") - min("value")
                                  Bei GROUP BY time(1d,-1h) fill(null) mustte ich -1h eintragen, da die Ausgabewerte sonst nicht stimmen, da sich Grafana scheinbar nicht um die Zeitzohne schert und einfach UTC nimmt. So stimmten die Verbrauchswerte nicht, da die Zeit zwischen 0:00 und 01:00 Uhr immer dem Vortag zugerechnet wurde.

                                  Die übrige Config des Panels, Display usw, ist bei mir bis auf Stacking gleich.

                                  Mir war nur so, als wenn die Anzeige nach Mitternacht gleich um einen Tag nach links springt. Aber vielleicht habe ich mich auch geirrt. Ist halt nicht so ganz schön, wenn der aktuelle Tag anfangs nur als schmaler Balken langsam ins Bild kommt.
                                  Bei deinem Bild oben ist der aktuelle Tag ja auch schon komplett sichtbar, obwohl es ja erst nach 11:00 Uhr zu sein scheint.
                                  Aber egal, ich bin schon forh, dass ich überhaupt was hinbekommen habe.
                                  In meinem Alter (knappe 60) dauert die Lernphase ja immer etwas länger :wink:

                                  Gruß Jörg

                                  EDIT sagt:
                                  Gerade habe ich noch irgendwo aufgeschnappt, dass der Eintrag GROUP BY time(1d,-1h) fill(null) zwar funktioniert, aber zur Sommerzeit auf -2h geändert werde müsste.
                                  Deshalb ist es besser den Versatz nicht einzutragen und stattdessen GROUP BY time(1d) fill(null) tz('Europe/Berlin')
                                  Somit braucht man sich um die Zeitumstellung nicht mehr zu sorgen.

                                  1 Reply Last reply
                                  2
                                  • A Aare 07

                                    @hennerich sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                    Habt ihr andere Dinge umgesetzt? Leitet ihr Infos aus anderen Werten ab, die ich noch gar nicht auf dem Schirm habe?

                                    Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen. Berechnung sowas wie dein Sonnenstand Script mit der Wetterprognose verknüpft. Beispiel hier https://www.photovoltaikforum.com/thread/128698-pimp-my-autarkiegrad-eigenverbrauch-optimieren-pv-ertrag-via-kurzzeitprognosen-d/ aus DWD Opendata https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L . Oder alternativ einfacher gesteuert vom gelieferten Wettericon eines vorhandenen Wetteradapters.
                                    Ziel: Wenn für morgen keine Sonne vorausgesagt ist heize ich mit der Wärmepumpe mit günstigerem Nachtstrom. Wenn Sonne vorausgesagt ist warte ich mit dem füllen des Puffers auf den PV Ertrag des kommenden Tages. Da meine Scriptfähigleiten sehr rudimentär sind befürchte ich dass das noch sehr lange dauern wird (oder hoffe dass ein gewiefter Scripter die Idee umsetzt ;) )

                                    S Offline
                                    S Offline
                                    sol21
                                    wrote on last edited by
                                    #18

                                    @Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                    Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen.

                                    Mich hatte es auch gestört, dass die Wärmepumpe kurz vor Sonnenaufgang lief und kurze Zeit später viel Strom vom Dach kam. Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

                                    Grundsätzlich hebe ich die Temperatur Nachts nicht an, sondern sperre die Wärmepumpe. Ich habe Angst dass die Wärmepumpe in einem ungünstigen Arbeitspunkt kommt und so lasse ich die Wärme etwas abfalle (nur soviel, dass es nicht kalt wird) und heize sobald die Sonne kommt nach. Ich habe aber auch keine Speicher.

                                    Ablauf:
                                    Ab einer bestimmten Zeit in der Nacht sperre ich die WP, wenn der Wetterbericht "Sonne" ankündigt.


                                    Verwenden den Adapter "DasWetter.com" und schaue ob um 9:00Uhr weniger als 60% Wolken vorhergesagt werden. Sonst sperre ich die WP für heute nicht.
                                    Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)

                                    Sobald genügend Sonne vom Dach kommt hebe ich die Sperre wieder auf und die WP fängt automatisch an zu laufen, da die Heiztemperatur mittlerweile zu tief ist.


                                    ich verwende da keine Sonnenstand-Scripte oder so. Ich habe mit der PV-Anlage ja einen grossen "Sensor" und der berücksichtig den Schatten von den Nachbarhäusern gleich mit.

                                    Ist die Vorhersage "falsch" und die Sonne kommt einfach nicht, stelle ich das fest und hebe die Sperre wieder auf.

                                    Dies ist bei mir bei Nebel z.B. häuftig der Fall. Früher hatte ich einfach ein Zeit (10:00Uhr) an welcher ich die Sperre auf jeden Fall zurückgesetzt hatte.
                                    In der Zwischenzeit schaue ich, wann sie in den letzten 7 Tagen kam und setze spätestens 30min später die Sperre zurück. Damit muss ich mich wieder nicht um die Nachbarhäuser, Jahreszeit oder Sommer-/Winterzeit kümmern.

                                    A 1 Reply Last reply
                                    1
                                    • S sol21

                                      @Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                      Was ich plane ist die voraussichtliche PV Leistung von morgen zu berücksichtigen.

                                      Mich hatte es auch gestört, dass die Wärmepumpe kurz vor Sonnenaufgang lief und kurze Zeit später viel Strom vom Dach kam. Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

                                      Grundsätzlich hebe ich die Temperatur Nachts nicht an, sondern sperre die Wärmepumpe. Ich habe Angst dass die Wärmepumpe in einem ungünstigen Arbeitspunkt kommt und so lasse ich die Wärme etwas abfalle (nur soviel, dass es nicht kalt wird) und heize sobald die Sonne kommt nach. Ich habe aber auch keine Speicher.

                                      Ablauf:
                                      Ab einer bestimmten Zeit in der Nacht sperre ich die WP, wenn der Wetterbericht "Sonne" ankündigt.


                                      Verwenden den Adapter "DasWetter.com" und schaue ob um 9:00Uhr weniger als 60% Wolken vorhergesagt werden. Sonst sperre ich die WP für heute nicht.
                                      Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)

                                      Sobald genügend Sonne vom Dach kommt hebe ich die Sperre wieder auf und die WP fängt automatisch an zu laufen, da die Heiztemperatur mittlerweile zu tief ist.


                                      ich verwende da keine Sonnenstand-Scripte oder so. Ich habe mit der PV-Anlage ja einen grossen "Sensor" und der berücksichtig den Schatten von den Nachbarhäusern gleich mit.

                                      Ist die Vorhersage "falsch" und die Sonne kommt einfach nicht, stelle ich das fest und hebe die Sperre wieder auf.

                                      Dies ist bei mir bei Nebel z.B. häuftig der Fall. Früher hatte ich einfach ein Zeit (10:00Uhr) an welcher ich die Sperre auf jeden Fall zurückgesetzt hatte.
                                      In der Zwischenzeit schaue ich, wann sie in den letzten 7 Tagen kam und setze spätestens 30min später die Sperre zurück. Damit muss ich mich wieder nicht um die Nachbarhäuser, Jahreszeit oder Sommer-/Winterzeit kümmern.

                                      A Offline
                                      A Offline
                                      Aare 07
                                      wrote on last edited by
                                      #19

                                      @sol21 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                      Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

                                      Danke für den Ansatz, gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.
                                      Da ich nicht so der Scripter bin, wäre es Dir möglich die verschiedenen Script-Snipnets hier einzustellen?
                                      Gruss Aare

                                      Raspi 4 SSD ioBroker

                                      S 1 Reply Last reply
                                      0
                                      • A Aare 07

                                        @sol21 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                        Versuche mal meinen Ansatz zu beschreiben (vielleicht hilft es jemandem).

                                        Danke für den Ansatz, gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.
                                        Da ich nicht so der Scripter bin, wäre es Dir möglich die verschiedenen Script-Snipnets hier einzustellen?
                                        Gruss Aare

                                        S Offline
                                        S Offline
                                        sol21
                                        wrote on last edited by
                                        #20

                                        @Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:

                                        ... gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.

                                        Du meinst diesen Teil: "Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)"?
                                        Da schaue ich auf Isttemperatur morgens um 0.30Uhr uns setzen den Startpunkt der Sperre wie folgt:
                                        ![Bild Text](Bild Link)61573323-232e-48ed-a496-933f4708c89b-grafik.png

                                        Z 1 Reply Last reply
                                        1
                                        • C Offline
                                          C Offline
                                          cybtrash
                                          wrote on last edited by
                                          #21

                                          Hallo,

                                          vielen Dank für dieses Tutorial. Leider habe ich das Problem, dass nachts, wenn keine Stromerzeugung ist, unter "holdingRegisters.40083_I_AC_Leistung" weiterhin Zahlen angezeigt werden (bei mir wechselnd zwischen ~30 Watt und ~650 Watt). Das ist natürlich falsch.

                                          Tagsüber stimmen die Werte aber mit den Daten aus der App überein und sind realistisch.

                                          Kennt jemand das Problem?

                                          J 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          324

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe