NEWS
Solaredge Adapter (Photovoltaikanlage)
-
Hi @has3nb3inmh und @cybtrash
@has3nb3inmh said in Solaredge Adapter (Photovoltaikanlage):
Wie komm ich an die Daten der Batterie und die aktuelle PV-Leistung-DC. Ich habe nun schon tagelang gegoogelt und alles was ich bisher gefunden habe, funktioniert nicht.
Seid Ihr da weiter gekommen?
Ich lese leider immer nur vom Problem, aber nicht von der Lösung.
Ich würde ebenfalls gerne die PV-Produktion aus den Modbus-Daten ermitteln.
Sobald meine BYD LVS8.0 an meinem SE10k-RWS entladen wird, werden sind die Leistungswerte in der AC oder DC-Leistung enthalten. Siehe https://www.photovoltaikforum.com/thread/156602-se10k-rws-byd-lvs-8-0-fehlerhafte-produktionswerte
Was tun? Habt Ihr's gelöst oder aufgegeben? Wenn ja - wie?
Gruß,
Oli -
@soeni said in Solaredge Adapter (Photovoltaikanlage):
Hat jemand die Akkuwerte schon über Modbus auslesen können? Mir ist das mit IObroker nicht gelungen, obwohl ich ein Phytonscript gefunden habe, mit dem es geht. Irgendwas scheint nicht zu passen aber ich finde die Ursache nicht.
Akkuwerte auslesen klappt hier mit meinem SE10k-RWS+BYD8.0LVS:
Gruß,
Oli -
Hier mal mein aktueller Stand mit Solaredge SE10K und Solaredge Stromsensor und BYD LVS 24.0:
deviceId address name description unit type len factor offset formula role room poll wp isScale 1 40045 C_Version Spezifischer SolarEdge Wert string 8 1 0 value true false false 1 40069 C_Geräteadresse Modbus-ID der entsprechenden Einheit uint16be 1 1 0 value true false false 1 40072 I_AC_Strom AC-Gesamtstromwert A uint16be 1 1 0 value true false false 1 40073 I_AC_StromA AC-Phase A (L1) Stromwert A uint16be 1 1 0 value true false false 1 40074 I_AC_StromB AC-Phase B (L2) Stromwert A uint16be 1 1 0 value true false false 1 40075 I_AC_StromC AC-Phase C (L3) Stromwert A uint16be 1 1 0 value true false false 1 40076 I_AC_Strom_SF AC-Strom Skalierungsfaktor int16be 1 1 0 value true false false 1 40080 I_AC_SpannungAN AC-Spannung Phase A-N (L1-N) Wert V uint16be 1 1 0 value true false false 1 40081 I_AC_SpannungBN AC-Spannung Phase B-N (L2-N) Wert V uint16be 1 1 0 value true false false 1 40082 I_AC_SpannungCN AC-Spannung Phase C-N (L3-N) Wert V uint16be 1 1 0 value true false false 1 40083 I_AC_Spannung_SF AC-Spannung Skalierungsfaktor V int16be 1 1 0 value true false false 1 40084 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 value true false false 1 40085 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor int16be 1 1 0 value true false false 1 40086 I_AC_Frequenz Frequenzwert Hz uint16be 1 1 0 value true false false 1 40087 I_AC_Frequenz_SF Frequenz Skalierungsfaktor int16be 1 1 0 value true false false 1 40088 I_AC_VA Scheinleistung VA uint16be 1 1 0 value true false false 1 40089 I_AC_VA_SF Scheinleistung Skalierungsfaktor int16be 1 1 0 value true false false 1 40090 I_AC_VAR Blindleistung VAR uint16be 1 1 0 value true false false 1 40091 I_AC_VAR_SF Blindleistung Skalierungsfaktor int16be 1 1 0 value true false false 1 40092 I_AC_PF Leistungsfaktor % uint16be 1 1 0 value true false false 1 40093 I_AC_PF_SF Leistungsfaktor Skalierungsfaktor int16be 1 1 0 value true false false 1 40094 I_AC_Energie_WH AC Gesamt-Energieproduktion Wh uint32be 2 1 0 value true false false 1 40096 I_AC_Energie_WH_SF AC Gesamtenergie Skalierungsfaktor uint16be 1 1 0 value true false false 1 40097 I_DC_Strom DC-Stromwert A uint16be 1 1 0 value true false false 1 40098 I_DC_Strom_SF DC-Strom Skalierungsfaktor int16be 1 1 0 value true false false 1 40099 I_DC_Spannung DC-Spannungswert V uint16be 1 1 0 value true false false 1 40100 I_DC_Spannung_SF DC-Spannung Skalierungsfaktor int16be 1 1 0 value true false false 1 40101 I_DC_Leistung DC-Leistungswert W uint16be 1 1 0 value true false false 1 40102 I_DC_Leistung_SF DC-Leistung Skalierungsfaktor int16be 1 1 0 value true false false 1 40104 I_Temp_Kühler Kühlkörpertemperatur °C uint16be 1 1 0 value true false false 1 40107 I_Temp_SF Kühlkörpertemperatur Skalierungsfaktor int16be 1 1 0 value true false false 1 40108 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 false 1 40109 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 false 1 40207 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 value true false false 1 40211 M_AC_Power_SF AC Real Power Scale Factor uint16be 1 1 0 value true false false 1 40227 M_Exported Total Exported Real Energy Wh uint32be 2 1 0 value true false false 1 40243 M_Energy_W_SF Real Energy Scale Factor uint16be 1 1 0 value true false false 1 40235 M_Imported Total Imported Real Energy Wh uint32be 2 1 0 value true false false 1 102837 Speicher_Ladung Speicher Ladeleistung W floatsw 2 1 0 value true false false 1 102853 Speicher_SoC Speicher SoC % floatsw 2 1 0 value false false false 1 102855 Speicher_Betriebszustand Speicher Betriebszustand (1: Aus 3: Laden 4: Entladen 6: Erhaltungsladen) uint16be 1 1 0 value false false false
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</variable> <variable type="timeout" id="timeout3">timeout3</variable> <variable type="timeout" id="timeout">timeout</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="timeout" id="timeout4">timeout4</variable> <variable id="WorYn/,IEi?5LB02:/u(">Tagesexport</variable> </variables> <block type="on" id="h0R1-xJM4c@2!dlRFUVh" x="-862" y="-412"> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="CUJCPT^XfqY.?x%vz#qx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Hausverbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="?gqf6yiK6:w_-gnl?vK=" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="0!R/%4MiEj7z}^1W@T4{"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="bEgyBi7j5G4UcmQI$E!R"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="~h-J~R5+.T(dK^u3L2o6"> <field name="NUM">1</field> </shadow> <block type="get_value" id="#,l0L@@(6QPtobIL.,)D"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Solaranlage_Leistung_AC</field> </block> </value> <value name="B"> <shadow type="math_number" id="(N)k{jXTtf66OjKCXz81"> <field name="NUM">1</field> </shadow> <block type="on_source" id="jjI].bSj3-w`-/G?Ikmj"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LH#AE/5^Llm38`I6Dmb_"> <field name="NUM">0</field> </shadow> <block type="math_arithmetic" id="cs.Gq5YgzU|cgSli|Bz7"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="lS%;T8L,efb.)D[,Fc);"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="hnJsBCn,uUygiB:h4^Yr"> <field name="NUM">1</field> </shadow> <block type="get_value" id="7mrKPWc:)+o*z6?K6Jt!"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> <block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-878" y="-133"> <field name="OID">modbus.0.holdingRegisters.40101_I_DC_Leistung</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="Fy`6%1}jrkR7yIR7j,bM"> <field name="NAME">timeout3</field> <next> <block type="timeouts_settimeout" id="wALq,KRZ=OkTgnFRodgg"> <field name="NAME">timeout3</field> <field name="DELAY">200</field> <field name="UNIT">ms</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.Solaranlage_Leistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="aW3|`$R[cHnB1`5vSAO9"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="nbb7@I/VW7I*Gaam79/3"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/"> <field name="OP">MULTIPLY</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">modbus.0.holdingRegisters.40101_I_DC_Leistung</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="math_single" id="/]%B9azJMI,TVYWo.Q;d"> <field name="OP">POW10</field> <value name="NUM"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="T+;~SGgPH[32R+:S}|M!"> <field name="NUM">0</field> </shadow> <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40102_I_DC_Leistung_SF</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="AMHTnIFMZSH{c?XHv6wc"> <value name="IF0"> <block type="logic_compare" id=",/Kaam=))V5#8x2cy/^U"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="Z_gIo`c(ugW{zweU*.{m"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung</field> </block> </value> <value name="B"> <block type="get_value" id="*5L=}2cS1KyS-$RK2taz"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Rekordleistung</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=".}yz|vaKEtGn2gvt{;05"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Rekordleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="b`^e^!0g:!MO|-jQ:OL;"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> <block type="on" id=";^6GWeYut-nhxE.AUz(J" x="638" y="-87"> <field name="OID">javascript.0.Solaranlage_Leistung.Solaranlage_Leistung_AC</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="Gs=D7_=`mu:`=4!jZ(~|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Solarproduktion</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="58Ed/#VdCRb5rn(4K3I]"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="on_source" id="MwMuZ[$0nBN3Il#TISIt"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="bc^^;uU?=/FCEfAx*7v*"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> </block> </value> </block> </statement> </block> <block type="on" id="OW-oQ:0bZs;!3`6XQKkI" x="-912" y="262"> <field name="OID">modbus.0.holdingRegisters.40084_I_AC_Leistung</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="q%_Egu!g4KOn/2L[!vgy"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id=":u3%41op%^Qu(+C|xTa|"> <field name="NAME">timeout</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="update" id="zTY~AAkdT)%4e-pY~s-S"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Solaranlage_Leistung_AC</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="m#;LA^NEnsP_BkDH$q3?"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="g|pp9td2yix@H)mxq$k4"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="[r$qB!.gW+ScSRB*A/0B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="P`39pThCR];?Nz[%u*-t"> <field name="NUM">1</field> </shadow> <block type="get_value" id="MG/~ix^7B/9x[U!3^{S^"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40084_I_AC_Leistung</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_single" id="Zuf+:;;wNJTP.mQ(@()W"> <field name="OP">POW10</field> <value name="NUM"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">0</field> </shadow> <block type="get_value" id="7H:ZX/fDSSnbEy^:MzBW"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40085_I_AC_Leistung_SF</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="on" id="7uzz?/X?Dx,ZWT{bKG~F" x="637" y="238"> <field name="OID">modbus.0.holdingRegisters.40094_I_AC_Energie_WH</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="=QV~miJO1Wh54BU:yn9k"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Produktion_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="Le/MYT{jKjV,/-CAhdt]"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="x$Q]Wx5dgsp.[!Z.zjU9"> <field name="NUM">1</field> </shadow> <block type="on_source" id="Ws%b!85tg4cNWB+6P5,9"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="=?Y(P`};PeefHO^j,G9`"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Produktion_bis_gestern</field> </block> </value> </block> </value> </block> </statement> </block> <block type="on" id="7LhdcCvQAF6O?)Cv97k)" x="637" y="463"> <field name="OID">modbus.0.holdingRegisters.40227_M_Exported</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="SMc99VNnv~47wAw8Ja61"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Einspeisung_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="H*N]9D.GI!,6UFVsB%;;"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="on_source" id="~wB}0V^`a9=E-2`s4$Zf"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="JIjbe+JJ04ks^Tzy0?Ol"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Einspeisung_bis_gestern</field> </block> </value> </block> </value> </block> </statement> </block> <block type="on" id="~]arppNs^XXX+ogQa_Tt" x="-913" y="563"> <field name="OID">modbus.0.holdingRegisters.40099_I_DC_Spannung</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="W4v}YD7/%?$ihkB[oW[}"> <field name="NAME">timeout2</field> <next> <block type="timeouts_settimeout" id="=x_cR,-y@7ewNLd/(7Se"> <field name="NAME">timeout2</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="update" id="LKPuUYW*+`YGF=3ujyV%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.DC_Spannung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="yDm+i2kefR/*BPE(=@Dx"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="``b;Gbd-Ok^kf/Uh^TNR"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="t-R#;+3MLXA}/IAdbVa5"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40099_I_DC_Spannung</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_single" id="}ML#Z==2!uV]`AT%)Dt+"> <field name="OP">POW10</field> <value name="NUM"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">0</field> </shadow> <block type="get_value" id="xMgK%)@glo{L?2iCJ|8t"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40100_I_DC_Spannung_SF</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="on" id="n{`D$LM(h6ta669z@~Kt" x="638" y="688"> <field name="OID">modbus.0.holdingRegisters.40235_M_Imported</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="update" id="fgXCk=ZzM%3/[x,3,fnI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Zukauf_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="K*rP]yKwOE0#6jabz`Fg"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="on_source" id="Ua3+ZJa?$mQl3RT=|ki$"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="ioU+G_=SoxAOa@]7o[+@"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Zukauf_bis_gestern</field> </block> </value> </block> </value> </block> </statement> </block> <block type="on" id="AMoQM|9_7.?pRlj-2f+F" x="-913" y="862"> <field name="OID">modbus.0.holdingRegisters.40207_M_AC_Power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="`eaycN2^]x3,7OqBp+XA"> <field name="NAME">timeout4</field> <next> <block type="timeouts_settimeout" id="pU1`kX}:Mt~}~yk|D|-B"> <field name="NAME">timeout4</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="update" id="nO-Uij_JKuz`o31}+~Xq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="{16GkXCaAvHkJNNq.p*8"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Mh]LJ0Ph5.KPgmy#53cx"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="_cQbA{tL-X*PH0MT@)KT"> <field name="NUM">1</field> </shadow> <block type="math_round" id="!fNg?|Xohw/saU;-P5#3"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="tr?dnsdQanXZveeKSo#l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="5l.*;j7j_?s[q;-T;ufT"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40207_M_AC_Power</field> </block> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_single" id="g:Sp5XLI{utoE[7k-f{5"> <field name="OP">POW10</field> <value name="NUM"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number"> <field name="NUM">0</field> </shadow> <block type="get_value" id="[sHni@a$PTh6.}1)I1ji"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40211_M_AC_Power_SF</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> <block type="schedule" id="$B-)n0[qMqqLA6ns(R+K" x="637" y="937"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="control" id="reprX/Mnv8+b+5a;Z7rZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Einspeisung_bis_gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="FdK8V/G~rkFAq.i1^-4X"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40227_M_Exported</field> </block> </value> <next> <block type="control" id="G!Zs)5d7mGeF/r4LiX#["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Zukauf_bis_gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="6*3-_~6EWQylKYg2kJ1X"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40235_M_Imported</field> </block> </value> <next> <block type="control" id="5k%A(5jYs1ig;%x7yXey"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Produktion_bis_gestern</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="hN-yDyrqW2gW{BW8OBbz"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40094_I_AC_Energie_WH</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="on" id="B-_%d7kFurSe,QbSSfDB" x="-863" y="1138"> <field name="OID">modbus.0.holdingRegisters.40108_I_Status</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="NIS;BHH+H-j-MFE|Qd.^"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="KS.1QBkU=]eIKHGTfzAH"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="1etJ_}@`id3*WnvF$R37"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="W+N_V!qm^t7U$)LjLT-3"> <field name="NUM">4</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="A?=)$7_|D$REWIqVc]6x" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="$;dn4aU[=%sh4)fm0_e)"> <field name="TEXT">Solaranlage hat die Produktion gestartet ☀️</field> </shadow> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="mn]y,X.td5=n5[uC,ZLt"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="R+3T;D(MQ6.z}^,_L5@2"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="KU=1])[x@}0#lD82vBj*"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="telegram" id="1)Ufu%C[E+3.p||g%f6_"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="lP$.My$bXceZE*.e5;se"> <field name="TEXT">Solaranlage stellt die Produktion ein 🌒</field> </shadow> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="iDw3qV.cPXtOnxUN|}!]"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="If$f?BO0hTL!DQ6P+~6]"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Sfn8]o{he?_h{]R3%@w8"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO2"> <block type="telegram" id="l-~;uMDquQf}!k@^imR/"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="6aD|z$p+/GQ-0GK!Jl/e"> <field name="TEXT">Solaranlage meldet einen Fehler! 😱</field> </shadow> </value> </block> </statement> </block> </statement> </block> <block type="astro" id="PA{J4`LUgb*QNbna=Wn^" x="-36" y="1206"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> <statement name="STATEMENT"> <block type="variables_set" id="nsVZY14,vB~GV3zqLA?w"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> <value name="VALUE"> <block type="math_rndfixed" id="B;C%6l7`6R8CB9Q,Yqe("> <field name="n">1</field> <value name="x"> <shadow type="math_number" id=":luhIPZf8eYAq0B0Lvv$"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="miL)JXF:KkEk!Q$CpWX?"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="/qYj3Nk4_XW;4G0BcZ`I"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="APsnJy)D[H4HGby/--iF"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="uFIB//Cpu7d04w1ZZ[dD"> <field name="NUM">1</field> </shadow> <block type="get_value" id="S`n*O^}zi}5`iySBYy@@"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40094_I_AC_Energie_WH</field> </block> </value> <value name="B"> <shadow type="math_number" id="z(knQ3vuCW3onpW`gJ9{"> <field name="NUM">1</field> </shadow> <block type="get_value" id="[aP9+hl``r1PD~w6}Vm:"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Produktion_bis_gestern</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="RUo/URN?DO}kIX^@Chlc"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="UPTiew:jrYndxI.2=`rb"> <field name="VAR" id="WorYn/,IEi?5LB02:/u(">Tagesexport</field> <value name="VALUE"> <block type="math_rndfixed" id="l-.Uqt@TO=R8:Qb[?JH4"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="VC2iM){}sS$0U0HfUxZv"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="yU%:UQkU?)E;Ybki-.EY"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="_law3uZ9kpHEEDh;$ue/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="%PBlf]`+#$I1WOGGW:n?"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40227_M_Exported</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!@RI[o.hdO3_/!BOt0I;"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Einspeisung_bis_gestern</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="cK?GMkVlEh?4r-o{i}gR"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="telegram" id="?u}%Vs`~(6}eITS`e[Fh"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="HL{dRSIDt~=(%R^yrnMh"> <field name="TEXT">Solaranlage heute </field> </shadow> <block type="text_join" id="k:*shzux+X+e+yK{{p7)"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="0^_~ezUH)Qou%#s$RET?"> <field name="TEXT">Die Solaranlage hat heute </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="q-cguqU$)umnuYw)Z?*_"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> </block> </value> <value name="ADD2"> <block type="text" id="?ywq8fy9_7c3Yl1(OBz}"> <field name="TEXT"> kWh produziert ☀️ und </field> </block> </value> <value name="ADD3"> <block type="variables_get" id="|39ijp:`E@FYF?!YZgd."> <field name="VAR" id="WorYn/,IEi?5LB02:/u(">Tagesexport</field> </block> </value> <value name="ADD4"> <block type="text" id="C(O`P9UJ]ZWO+a@^9rlc"> <field name="TEXT"> kWh eingespiesen</field> </block> </value> </block> </value> <next> <block type="controls_if" id="sImv$.B4K+bZyG@z?y66"> <value name="IF0"> <block type="logic_compare" id="o,Dk@N2_L.8EVDMEhc^_"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="PSjrvcw9Lz`3Rldib.93"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> </block> </value> <value name="B"> <block type="get_value" id=";{Xwsr6/+xc.1{kS]YQg"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Rekord_Tagesleistung</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="z0c_%eHv+]3nh43[*PbH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Rekord_Tagesleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Ce:6b5,ZbVbo]9UDPoo-"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> </block> </value> <next> <block type="control" id="G#=qXdAb8oQk;oZ/-!(W"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Leistung.Rekord_Tagesleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Vzu|Ikzr*)M?0j#=}r3*"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> </block> </value> <next> <block type="telegram" id="#fhym!.#EP~ZPw~.zn`("> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="o#j%_SeEerjYWZ;[L3+C"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Dk?hsuD@H~PJ@)|X05Gi"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="D!j2^I@m:}CXLQ7NrcY1"> <field name="TEXT">Neue Rekord-Tagesleistung der Solaranlage! ☀️</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="goiOPsjXPSmpL95e^kv+"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="variables_get" id=":l(.XREPon]%[CEpJ:G0"> <field name="VAR" id="nNqB1b6bK3yOaF{%=r67">Tagesleistung</field> </block> </value> <value name="ADD3"> <block type="text" id=",g@EgJr!eYDmfF).GOvE"> <field name="TEXT"> kWh</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Statusbericht per Alexa abfragen:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="yVq_yl6H*v?=l%;j-=@n">Speicherladung</variable> <variable id=",nIjO4mQyc*.a`#gSy7d">Einspeisung</variable> <variable id="rli+H4BKh^Z1[uy??0b-">Statusbericht_Text</variable> </variables> <block type="on" id="8K9ayuc7yIo!w#nG0II(" x="241" y="97"> <field name="OID">javascript.0.Solaranlage_Statusbericht</field> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="?8*[m@OYvEfhfGkZEfvp"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Solaranlage_Statusbericht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=",3=QtuDm1r8EjEIDpD*,"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="controls_if" id="8O`[X0ccXu4=poasos-E"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="xjz,3c5K{ddq!anx1OL4"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="A}(hU65BS-5aS6=[x/FJ"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="VA[-`no?3}x}T{h=?:Vx"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> <value name="B"> <block type="math_number" id="21wS6v)ba1tO|c#mz*qu"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="RMNv96-wE_0JYIw]]E%("> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="6Zb4LJB+N?hTy7ZJ-48d"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> <value name="B"> <block type="math_number" id="hYjFgxqQ_*WpB1F(sc{{"> <field name="NUM">-500</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="PICh0MX;(m+|bX+swZ2~"> <field name="VAR" id="yVq_yl6H*v?=l%;j-=@n">Speicherladung</field> <value name="VALUE"> <block type="text" id="4U|HAj0EWo$Kbma#OCgN"> <field name="TEXT"></field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="p!en$ptpk]4Y$|+h]VT`"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="KtutV)f6CGj$_*BYhI*5"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> <value name="B"> <block type="math_number" id="(tSF{NtI=7*dcUzQ0Eat"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="_~]H7_7N{0cp9r4%G)=4"> <field name="VAR" id="yVq_yl6H*v?=l%;j-=@n">Speicherladung</field> <value name="VALUE"> <block type="text_join" id="i6yk+/s/8,Ka9(cUfN]="> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="R-7UcKN-==Eer=hVb,$u"> <field name="TEXT">Der Speicher wird mit </field> </block> </value> <value name="ADD1"> <block type="math_single" id="rw:d[{4$/TwN%_DGaQlJ"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="t!sF1n*-.d2DO:6-=;^:"> <field name="NUM">9</field> </shadow> <block type="math_rndfixed" id="isc,6Datfbf.U7fp1^!e"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="LIdNnM#%S9;DjP1(_LBs"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="GK0=z$$-Z_dwJkzQsS*o"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> <value name="B"> <shadow type="math_number" id="jebSv7nL_bxmo)uo9$B5"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="na-j7TEGV0kL,!gwI}pb"> <field name="TEXT"> Kilowatt geladen.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="6VRBu/V8%FY{{B+Jg;}B"> <field name="Type">\n</field> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="F`J-Redx^c/-0G`eG!V@"> <field name="VAR" id="yVq_yl6H*v?=l%;j-=@n">Speicherladung</field> <value name="VALUE"> <block type="text_join" id="{Vcpa#5|;jhGKZ;[]a23"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="*e|iIw`tn@elV0ypp;/|"> <field name="TEXT">Wir entladen den Speicher mit </field> </block> </value> <value name="ADD1"> <block type="math_single" id=",.)BEa^hD2vX+gsSw3t)"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="vQs.e{jI=s|=s)$7$46J"> <field name="NUM">9</field> </shadow> <block type="math_rndfixed" id="YcrfPM]2U2T~:DC$8aBg"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="7Q%q0;cxQ0#SPpd0qQ2Y"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="~wtx_zV0_u6fwI8CEOdI"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.102837_Speicher_Ladung</field> </block> </value> <value name="B"> <shadow type="math_number" id="It`44!P*hc7U1GJTc;Va"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="8Y=0XI%BKq?mT,OP;J4f"> <field name="TEXT"> Kilowatt.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="Lw65-y0f3z)JR|DHEYH$"> <field name="Type">\n</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_if" id="oH3%1(j-AD%_l1jQ*lc{"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="~fA!by48q**ZoHgD.pAL"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="4ZZ=)%w.u3`[Xxi^V?[c"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="$@*Tdj7Wkm:n`xrMV:kS"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> </block> </value> <value name="B"> <block type="math_number" id="kUM^vFYB7w8?.MRGB@x*"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c_@z9cG!;cNmsHr+00}]"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="js+6_pxCPo58NHOpg1ff"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> </block> </value> <value name="B"> <block type="math_number" id="/J$s-BoSQ^O?`1CZQ/AT"> <field name="NUM">-500</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Ty0%qG$nnRFb*E~:[bJO"> <field name="VAR" id=",nIjO4mQyc*.a`#gSy7d">Einspeisung</field> <value name="VALUE"> <block type="text" id="iH#JfdH8pctpP=E:[(?k"> <field name="TEXT"></field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="0uw:!ubZ)i4F:NWF{{]Q"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="jZ-a3$rZXgu:B|^s%g7Y"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> </block> </value> <value name="B"> <block type="math_number" id="QE.K-O1M#:.Kc`7pkR8k"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="!_A*lK+~H4@gqNhSkUpT"> <field name="VAR" id=",nIjO4mQyc*.a`#gSy7d">Einspeisung</field> <value name="VALUE"> <block type="text_join" id="S|m][PW|cZyNXT@:S*m#"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="3aK_#j90(Q%R$,O!EE#z"> <field name="TEXT">Wir speisen </field> </block> </value> <value name="ADD1"> <block type="math_single" id="s()~78pNzP.%SA_EplCq"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="~DAXRW,C$#Z)Ua7_9.8d"> <field name="NUM">9</field> </shadow> <block type="math_rndfixed" id="$qh7/m*@@n%Y{)uKkj%?"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="oh~)lBemmd3tVl+$L)/#"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="25A*CK8Xu2|b/TlsV8Ig"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> </block> </value> <value name="B"> <shadow type="math_number" id="PO!M3=2}`32(,}X_oZez"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="K-+yTNt9f[|rYLRXCc|L"> <field name="TEXT"> Kilowatt ins Netz ein.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="ihzsmtfT6Y?v|t$LDtk_"> <field name="Type">\n</field> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="Sv4B=|GnfE/p99wGW=T_"> <field name="VAR" id=",nIjO4mQyc*.a`#gSy7d">Einspeisung</field> <value name="VALUE"> <block type="text_join" id="X%s:p0C]?ePT2P%`FwUC"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="[r4WdUumM5,kapchO:EO"> <field name="TEXT">Wir beziehen </field> </block> </value> <value name="ADD1"> <block type="math_single" id="@c|/@;Sib_l/voSyew#2"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="ioG~ozs(=U+7mpcvu0^!"> <field name="NUM">9</field> </shadow> <block type="math_rndfixed" id="ZA$AVUo4XYHOb6UDg(q^"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XR_tkeA$b^%_]3xSZcsO"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="O=-F4$P[*E_Ddk(|i4[:"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Netzzuleitung</field> </block> </value> <value name="B"> <shadow type="math_number" id="-vsbR0Q=W^WD:(`N](@Y"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="sN#R!%Q/2CTS^nN|^|rU"> <field name="TEXT"> Kilowatt vom Netz.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="Ns*;`8ozU}E8NP/@Tr#$"> <field name="Type">\n</field> </block> </value> </block> </value> </block> </statement> <next> <block type="variables_set" id="7Ea;*1qQ?mk].uizRDDf"> <field name="VAR" id="rli+H4BKh^Z1[uy??0b-">Statusbericht_Text</field> <value name="VALUE"> <block type="text_join" id=",*myJKhwd2`$4Sce*}Y|"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="DJ7yDR8sOG3)8N/yDBe2"> <field name="TEXT">Die Solaranlage produziert aktuell </field> </block> </value> <value name="ADD1"> <block type="math_rndfixed" id="lL#2}[?aFK,oF~869p?)"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="Zrbl$?9%9)e`fqN@S-16"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="_^#{H0G?Rc?nb|(lS[bP"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="64+Xt8aTcU*s)NJ#1Llf"> <field name="NUM">1</field> </shadow> <block type="get_value" id="(knF$rbVfs9^GC/s)JhF"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Solarproduktion</field> </block> </value> <value name="B"> <shadow type="math_number" id="/^8dDky38(5oo#7o-R(v"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="`N`@pn_F5@xB}BFFv[bo"> <field name="TEXT"> Kilowatt.</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="fr$0dQ@pokQ=a5pr(UM;"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="variables_get" id="DYPHeo/(AU+0X*SgaDsg"> <field name="VAR" id="yVq_yl6H*v?=l%;j-=@n">Speicherladung</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="rT%nRW_s@Sz6Fp=iPyu-"> <field name="VAR" id=",nIjO4mQyc*.a`#gSy7d">Einspeisung</field> </block> </value> <value name="ADD6"> <block type="text" id="t~vB168IMi8()X}qxFer"> <field name="TEXT">Wir haben heute </field> </block> </value> <value name="ADD7"> <block type="math_rndfixed" id="mXEbaiY;$=D)yp-fWE;w"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="=ot6}H8|oTXu,cyW5C3]"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="xvN/ql1B9Xp98f5}5`M{"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id=",%boSIr($2jHjaOq!XSk"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40094_I_AC_Energie_WH</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-cld;/!:f!#}ri_vw6!9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solaranlage_Leistung.Produktion_bis_gestern</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="H+t0JeUHjc|oGk,:,6ls"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <value name="ADD8"> <block type="text" id="Yd-q@k{II+/Y/j8HIJYX"> <field name="TEXT"> Kilowattstunden produziert.</field> </block> </value> </block> </value> <next> <block type="telegram" id="lRhlQ[vw~k+@+]DVNHE0"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="B7Vnv.U)Xj3:O97^w4{!"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="e:G36G[bC~uX(fONbXOx"> <field name="VAR" id="rli+H4BKh^Z1[uy??0b-">Statusbericht_Text</field> </block> </value> <value name="USERNAME"> <block type="text" id="-AeM]s7@B.WHKk1lj=:j" disabled="true"> <field name="TEXT">Chris</field> </block> </value> <next> <block type="control" id=":d(nJ[7Ch2T(N(e?G]Cq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0793152N2C.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",XfO`rtId;Mvj@~}#Y.v"> <field name="VAR" id="rli+H4BKh^Z1[uy??0b-">Statusbericht_Text</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="math_number" id="4_ipSbC-Vrw?,$HJC%N3" x="400" y="638"> <field name="NUM">0</field> </block> </xml>
Was mir noch fehlt ist eine korrekte Berechnung des Hausverbrauchs bzw. der Leistung der Solarpanels mit korrekt herausgerechneter Ladung oder Entladung des Speichers. Konkret also diese Berechnung:
Ausserdem fehlt mir noch die Modbus-Adresse für den aktuellen Speicher-Füllstand in Prozenz.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Hier mal mein aktueller Stand mit Solaredge SE10K und Solaredge Stromsensor und BYD LVS 24.0:
Wow. Vielen Dank. Da werde ich mir etwas Zeit für nehmen müssen.
Die Batterieregister packe ich Dir hier mal dazu.
Was Du suchst ist 102853 State of Energy SOE Batterieladung %
Siehe unten.
1 102837 Batterieleistung Leistung Batterie W floatsw 2 1 0 level true false false 1 102853 State of Energy SOE Batterieladung % floatsw 2 1 0 level true false false 1 102855 Batterie Status Battery operating state: 0 – Off; 1 – Standby; 2 – Init; 3 – Charge; 4 – Discharge; 5 – Fault; 7 - Idle uint32sw 2 1 0 level true false false 1 102787 Batt Rated Energy Batt Rated Energy Wh floatsw 2 1 0 level true false false 1 102829 Batt1_Avg_T Batterie 1 Average Temperature °C °C floatsw 2 1 0 level true false false 1 103237 StCtrlMode Storage Control Mode uint16be 1 1 0 level true false false 1 101763 AdvancedPwrControlEn AdvancedPwrControlEn uint32sw 2 1 0 level true false false 1 101701 ReactivePwrConfig ReactivePwrConfig uint32sw 2 1 0 level true false false 1 103247 Remote Control Charge Limit Remote Control Charge Limit W floatsw 2 1 0 level true false false 1 101697 CommitSettings Commit Power Control Settings uint16be 1 1 0 level true false false 1 103243 StChDisChMode Storage Charge/Discharge Default Mode uint16be 1 1 0 level true false false
In der Liste sind auch Register enthalten um das Ladeprofil der Batterie zu modifizieren (70%-Limitierung vermeiden). Siehe dazu hier https://www.photovoltaikforum.com/thread/152402-storedge-se10k-ladeleistung-batterie/?postID=2235131#post2235131
Gruß,
Oli -
Das Register 102853 funktioniert bei mir eben nicht
Die Speicherladung 102837 funktioniert, aber bei 102853 kommt nichts. Auch einen Wert drunter und drüber habe ich schon probiert.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Die Speicherladung 102837 funktioniert, aber bei 102853 kommt nichts. Auch einen Wert drunter und drüber habe ich schon probiert.
Was sagt Dein Log des Modbus-Adapters beim Pollen?
-
@osu Oh, da habe ich diese Meldung gesehen:
(31435) Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
Da steht leider nicht welche Adresse illegal ist. Ich habe dann einzeln die Adressen deaktiviert und gesehen, dass es wohl an dieser Zeile lag:
Ohne diese Zeile wird nun auch der SoC in % korrekt ausgelesen! Super
-
Jetzt fehlt mir nur noch die korrekte Berechnung von Hausverbrauch und Solarpanel-Leistung. Wie wird die Batterie Ladung und Entladung da korrekt eingerechnet?
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
@osu Oh, da habe ich diese Meldung gesehen:
(31435) Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
Da steht leider nicht welche Adresse illegal ist. Ich habe dann einzeln die Adressen deaktiviert und gesehen, dass es wohl an dieser Zeile lag:
Ohne diese Zeile wird nun auch der SoC in % korrekt ausgelesen! Super
Probier mal, ob's am Datentyp liegt (glaube ich aber nicht).
Du hast da uint16, ich habe da uint32sw.Das Register funktioniert bei mir zuverlässig.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Jetzt fehlt mir nur noch die korrekte Berechnung von Hausverbrauch und Solarpanel-Leistung. Wie wird die Batterie Ladung und Entladung da korrekt eingerechnet?
Da bin ich gerade noch am rumpfriemeln.
Ich habe da bisher folgende Probleme
-
falsche Datentypen (einfach lösbar durch Lesen der Doku und Abgleich) führen zu einem Werteüberlauf. Ich vermute ich habe da ggf. noch das eine oder andere Issue, muss ich nochmal genauer unter die Lupe nehmen.
-
unterschiedliche Taktung der Werteermittlung: klar ist, dass die Skalierungsfaktoren gleichzeitig mit den zu skalierenden Werten gelesen werden müssen, sonst liefert der Wert Müll.
Wenn ich nun aber einen Zusammenhang aus den per Modbus gelesenen Werten schaffen will, muss ich die zusammenhängenden Werte ebenfalls zum selben Zeitpunkt lesen und verarbeiten um daraus Werte zu berechnen (wieviel produziere ich auf dem Dach? Was ist mein Hausverbrauch?). Da hapert's leider noch bei mir. Denn obwohl ich die Werte im selben Blockly aus dem Modbus lese und dann lokal speichere passt das häufig nicht zusammen und sorgt ggü. der Berechnungsgrundlage für Deltas. -
mir noch unerklärliche Spikes in meinen Zahlen. Kann eine Folge von oben sein.
Was ich derzeit ermittle ist z.B. folgendes:
Ermittelt mit folgendem Blockly (kann beliebig falsch sein):
Führt zu folgender Visualisierung:
Die Werte sind aber noch Murks, denn auf diese Weise gibt es Abweichungen bei der PV Produktion Ist (objects) vom Soll (Formel / Blockly) wie folgt:
Wie gesagt. Bin noch beim Versuch zu verstehen.
Wenn Du Ideen hast oder die Dinge auffallen, immer her damit.
Gruß,
Oli -
-
@osu Das mit den Spikes und Werte-Überläufen usw. kommt wohl wirklich vom Problem, dass die Werte nicht immer gleichzeitig mit den Skalierungs-Faktoren gelesen werden. Ich habe das so gelöst:
Nachdem sich der Leistungswert geändert hat, warte ich 200 ms bis ich den Skalierungsfaktor lese und umrechne. Damit hatte ich bisher keine Probleme mehr.
Ich lese die Werte eh nur alle 10 Sekunden, was mehr als genug ist. Ev. erhöhe ich die Pause noch auf eine Sekunde.
Zusätzlich habe ich bei den Objekten noch plausible Minimal- und Maximal-Werte definiert, so können Werte die nicht passen gar nicht geschrieben werden.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Nachdem sich der Leistungswert geändert hat, warte ich 200 ms bis ich den Skalierungsfaktor lese und umrechne. Damit hatte ich bisher keine Probleme mehr.
Was genau versprichst Du Dir von der Verzögerung nach dem Event?
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Ich lese die Werte eh nur alle 10 Sekunden, was mehr als genug ist.
Mache ich ebenfalls so.
Was bei mir noch nicht passt, ist dass keine Deltas (siehe Tabelle oben) zur Formel entstehen (sprich die Werte zusammenpassen).
Du hattest nach Produktion und Hausverbrauch gefragt. Meinen Ansatz findest Du im obigen Blockly. Wie läuft das nun bei Dir?
Gruß,
Oli -
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
@osu Das mit den Spikes und Werte-Überläufen usw. kommt wohl wirklich vom Problem, dass die Werte nicht immer gleichzeitig mit den Skalierungs-Faktoren gelesen werden. Ich habe das so gelöst:
Die Spikes scheinen mit dem Timeout weg zu sein. Bei mir umfasst er nun die komplette Berechnung.
Wie gesagt passen die Werte damit dennoch nicht 100% zusammen. (Deltas im Excelsheet)
Wenn der Modbus gepollt wird, hole ich innerhalb eines sehr kurzen Zeitraums alle meine Werte.
Ich kann aber nicht beeinflussen, ob zum Zeitpunkt des Abholens auf dem Modbus alle Werte 100% zusammenpassen (wann diese geschrieben wurden).- modbus.0.holdingRegisters.102837_Batterieleistung
- modbus.0.holdingRegisters.40084_I_AC_Leistung
- modbus.0.holdingRegisters.40207_M_AC_Power
Gruß,
Oli -
@osu Wenn der Modbus-Adapter die Werte einliest, dauert das vielleicht eine Sekunde, bis alle Werte da sind.
Wenn jetzt das Blockly schon triggert, wenn der erste Wert da ist und sofort den (dann noch alten) Umrechnungsfaktor benutzt dann ist der Wert um einen Faktor zu gross oder zu klein. Deshalb warte ich, nachdem sich der Wert geändert hat etwas, damit sicher alle Werte in diesem Poll-Zyklus gelesen und aktualisiert wurden. Dann ist auch der richtige Umrechnungsfaktor bereit.
-
@osu Kann es sein, dass die Werte nicht genau passen, weil du die DC-Leistung verwendest? Die ignoriere ich mittlerweile, weil die eben immer leicht von der AC-Leistung abweicht (halt durch die Wandlungsverluste denke ich). Deshalb muss ich aber von der AC-Leistung wieder zurückrechnen, um die PV-Leistung zu bekommen. Also z.B. die Speicherladung dazuzählen oder die Entladung abzählen.
-
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Wenn jetzt das Blockly schon triggert, wenn der erste Wert da ist und sofort den (dann noch alten) Umrechnungsfaktor benutzt dann ist der Wert um einen Faktor zu gross oder zu klein
Passt. Ergibt Sinn.
@chrisprefect said in Solaredge Adapter (Photovoltaikanlage):
Kann es sein, dass die Werte nicht genau passen, weil du die DC-Leistung verwendest?
Hausverbrauch rechne ich aus
modbus.0.holdingRegisters.40084_I_AC_Leistung
minus
modbus.0.holdingRegisters.40207_M_AC_PowerBei der Produktionsleistung der PV werden dann aber AC und DC vermengt:
modbus.0.holdingRegisters.40207_M_AC_Power
plus
modbus.0.holdingRegisters.102837_Batterieleistung
plus
HausverbrauchVermutlich liegt's daran. Was denkst Du?
Gruß,
Oli -
@stevie77 Vielen Dank für deinen Export. Import hat wunderbar geklappt.
Allerdings kann ich mit den Werten noch nichts anfangen. Auch die Strings wie "SolarEdge" scheinen abgeschnitten. Habe ich hier noch irgendwie einen Fehler?
Vielen Dank -
Habe es lösen können. Bei mir waren es Register-Adressen -1
-
@aulin Ja, irgendwie gibt es bei SE zwei Register-Varianten. Neuere/ältere Geräte? Hatten wir im Verlauf schon mal festgestellt hier im Forum (oder anderswo?), dass bei mir (oder anderen) alle Adressen um 1 verschoben sind.
-
@stevie77
Quelle: Technical Note – SunSpec Logging in SolarEdge Inverters, S. 15Gruß,
Oli