NEWS
SMA Wechselrichter
-
Der SHM2.0 ist in Zusammenfassung der früher getrennten Geräte "Energy Meter" und "Smart Home Mananger". Ersteres sendet in kurzen Abständen die aktuellen Verhältnisse am Messpunkt per Broadcast in Netzwerk. Also so etwas wie Leistung usw. Der SHM-Anteil ist mehr oder weniger bzgl. der Statistikdaten eine Black Box und sendet die Daten, die wir gerne hätten, in die (Einweg-)Cloud von SMA. Manchmal kann man sich helfen, indem man manche Werte, die der SHM auch an die Wechselrichter schickt, von dort per Modbus ausliest. Der Rest ist "selbst berechnen".
-
@Stabilostick ok, alles klar. Mit dem Modbus Adapter Hatte ich gestern auch angefangen. Grün wurde er schon mal.
-
@Peoples sagte in SMA Wechselrichter:
@lobomau sagte in SMA Wechselrichter:
@Peoples ok, dann weiß ich schon mal, dass der Adapter bei mir alles richtig macht und man den Rest selbst aufbereiten muss.
Denke ich auch, bei mir sieht es nicht anders aus. Ich nutze zusätzlich noch den Modbus für den Wechselrichter so kann man eigentlich auf alle Werte zugreifen.
Beispiel:
Genau. Diese Darstellung möchte man ja auch gerne in vis haben
-
@lobomau die Daten sind mit modbus aus dem Wechselrichter, bei mir ein SI3.0M-11 700, ausgelesen. Da kommt dann einiges an Daten rein und ein bischen was kann berechnet werden.
-
@Buchi sagte in SMA Wechselrichter:
@lobomau die Daten sind mit modbus aus dem Wechselrichter, bei mir ein SI3.0M-11 700, ausgelesen. Da kommt dann einiges an Daten rein und ein bischen was kann berechnet werden.
Ich habe es hinbekommen mit Modbus Adapter. Die Differenzen noch berechnen und gut.
-
@Buchi
Hallo,
ich habe die selbe Konstellation der PV wie Du, könntest Du mir das Blockly für die Berechnung des Netzbezuges und der PV Leistung senden? Mit welchem Input Register hast du die Batterieeinspeisung gelöst! Du würdest mir sehr damit helfen! Danke!!! -
Für Netzbezug und Netzeinspeisung brauche ich kein Script. Diese Werte sind immer 0 oder größer über modbus Adapter. Nur die PV-Erzeugung musst du für Werte <0 auf 0 setzen (nachts im Standbye).
Hier habe ich mal beispielsweise den Gesamtstromverbrauch berechnet:
-
@bunni Hallo, hier das Blockly. Datenpunkte musst Du natürlich noch erstellen:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="comment" id="v/Aa_,CKf;/@1){R?S8a" x="-287" y="-362"> <field name="COMMENT">Kosten / Nutzen Rechnung</field> <next> <block type="on_ext" id=".0B,rlj@c2R;C(R!EBkr" collapsed="true"> <mutation items="3"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="f_Gy,Kh~lsYAyu}DOUJB"> <field name="oid">modbus.0.inputRegisters.30581_Netzbezug_Gesamt</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="L|$_6Q.+bGC7?d*ZaY!K"> <field name="oid">modbus.0.inputRegisters.30583_Einspeisung-Gesamt</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="E9M)b%Xk1+4;G2N[bh(|"> <field name="oid">javascript.0.Photovoltaik.Neu_berechnen</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="(/X@P/D.zZQ~_{o2$YZW"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Neu_berechnen</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="m7=8#6[Z-^l=)f9$DQ0O"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="lXdA,/L4`6qf(CmKb+X]"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Kosten_ohne_PV</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="B0W~[?@ir6)F0S|^N0y{"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="OO(D8GadUMpytQ1EzT+u"> <field name="NUM">1</field> </shadow> <block type="get_value" id="e=4WLxYu^]#n1bR[q0+}"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30571_Gesamtverbrauch</field> </block> </value> <value name="B"> <shadow type="math_number" id="aMXd]EP6A:Vbf$j^X)zU"> <field name="NUM">0.00026</field> </shadow> <block type="get_value" id=")%F7nbDj@s#XNLNM.qDU"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Strompreis_Durchschnitt</field> </block> </value> </block> </value> <next> <block type="update" id="Rv.LB.YV,^%l_b+[?M(4"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Kosten_mit_PV</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="s8IR[5ahp2fF9jx~q#iN"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="OO(D8GadUMpytQ1EzT+u"> <field name="NUM">1</field> </shadow> <block type="get_value" id="]|KLgT2aQ%V4BfvExEPv"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30581_Netzbezug_Gesamt</field> </block> </value> <value name="B"> <shadow type="math_number" id="+nWg5odh8|;zjjYB}D#J"> <field name="NUM">0.00026</field> </shadow> <block type="get_value" id="]b*oLvR;;7Nz9@yB=,D6"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Strompreis_Durchschnitt</field> </block> </value> </block> </value> <next> <block type="update" id="c$~(#yH$TyYyJUAWjd4F"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Ersparnis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="y}aSfx[:]H|PqzWOvn3G"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="OO(D8GadUMpytQ1EzT+u"> <field name="NUM">1</field> </shadow> <block type="get_value" id="B.tr31jj{{rdMPSKSqld"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30593_Eigenverbrauch-Gesamt</field> </block> </value> <value name="B"> <shadow type="math_number" id="tTtkLWdx8hBq+5yXW/*]"> <field name="NUM">0.00026</field> </shadow> <block type="get_value" id="nOgV[4nJS,t}_]R7rd/A"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Strompreis_Durchschnitt</field> </block> </value> </block> </value> <next> <block type="update" id="Q_@%J?3~mbGxZmbU6!/A"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Vergütung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="~}X]h8P];T]y%^x*foCF"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="OO(D8GadUMpytQ1EzT+u"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Ue*4bs7+@C6~4JzZQM#7"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30583_Einspeisung-Gesamt</field> </block> </value> <value name="B"> <shadow type="math_number" id="9+J8e.3[7uH.J1nrGcRs"> <field name="NUM">0.00012</field> </shadow> </value> </block> </value> <next> <block type="update" id="Ze7N4fI|q58u-D*^vF(o"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Ergebnis</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="IgIkWiCtM.v4KcatnO-m" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="}wX!46p0`B{G!i6/i~H%"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";ujF3g*CB1TnxHAuaZLy" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="OO(D8GadUMpytQ1EzT+u"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="ideUl|,b*cnb6CrGGPgL" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="adcj]yt@s$lYwJnB@x5-"> <field name="NUM">1</field> </shadow> <block type="get_value" id="rkr91tw5scF)|r=(Dv4%"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Kosten_ohne_PV</field> </block> </value> <value name="B"> <shadow type="math_number" id="|DZ[ahbxyf/oIe~_]IN^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="NG`PWpSVnvV#kRI{#gOO"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Kosten_mit_PV</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="4_ARbd7pY=$dl3Fd$Jhy"> <field name="NUM">0.00012</field> </shadow> <block type="get_value" id="4OM(Kry{@CC?xZPkh?+u"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Vergütung</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="a1|+!s|[B!}JMDEZ6[%c"> <field name="NUM">0</field> </shadow> </value> </block> </value> <next> <block type="comment" id="[yu=,6[2y3?0htH`:jz/"> <field name="COMMENT">Berechnung Laufzeit in Monaten</field> <next> <block type="update" id="6X,csAM:7_Yuz}0-H9Wk"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Monate</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="l2Gymdw6)+nKk#hdK=+;"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number" id="Q?M{Tz;}=El[lO}yDY,U"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="|qI@I_+L^,][_]Q~GL42" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="(yy7Q^yC}5BrM.p9=Y];"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="_bSOuDH{6*_{SZ|cz86O" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="8Y)r.n5*eww^481b4{pE"> <field name="NUM">1</field> </shadow> <block type="time_get" id="Bd:fm=3J*{}Va.,x},n|"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number" id="IJ8bGn{/0O8A||(ukI.{"> <field name="NUM">1</field> </shadow> <block type="convert_from_date" id="P6B{Yo[YHvH0e)3+Ldp$"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="text" id="iA~_q)lD^e{{~?@8F=.g"> <field name="TEXT">2017-07-01</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="/Q.AUxfhOReuMY;eymeS"> <field name="NUM">2628000000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="update" id="RuL?X7P$c|eL+Wn:p%Y%"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="/X0HQC`(-?5*^e{5Mv3t"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number" id="Q?M{Tz;}=El[lO}yDY,U"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="ibRkC=RRS_@[V=gq^Dk6" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="(yy7Q^yC}5BrM.p9=Y];"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="@H8s2H6WyyzNV!S]JJ9l" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="8Y)r.n5*eww^481b4{pE"> <field name="NUM">1</field> </shadow> <block type="time_get" id="NF2-_DJk@69JqBf$5)o*"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number" id="IJ8bGn{/0O8A||(ukI.{"> <field name="NUM">1</field> </shadow> <block type="convert_from_date" id="yd.YKxV+cL;Y)0;oL)ML"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field> <value name="VALUE"> <block type="text" id=",o1)J$!%aP2ornVxaS};"> <field name="TEXT">2017-07-01</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="Y?/0bxR8(tLoYx;rCbHx"> <field name="NUM">86400000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="7N[uN=gFh*KB;_?Tju-U"> <field name="COMMENT">Berechnung Durchschnittswerte</field> <next> <block type="timeouts_settimeout" id="`dVqouizUO_5b0y/,yX("> <field name="NAME">timeout</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="update" id="c1!g;5thK.4}ND(:,W1F"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Kosten_ohne_PV_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="#/*gX(ZwNbpP-NAjHNQ%" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="y-_SXwpYm8|HJbWl-VW/"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="eE,IseHv==+O_Q/]S6-8" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="hiwg{J3!C1FFeqh#55{%"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Vr(=oAWh:]Gfd+%Gs.c5"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Kosten_ohne_PV</field> </block> </value> <value name="B"> <shadow type="math_number" id="k3oPyJvEM|0.2E:oh,fk"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!u%P#H.Ki8LcngVW/~Ed"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id=")r4iYKqr0|L:4YT:?g+z"> <field name="NUM">365</field> </shadow> </value> </block> </value> <next> <block type="update" id="QJ^Ep5syujpr7~@hsSas"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Kosten_mit_PV_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="RTrBE*-mJ6l=CPV+R0zz" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="y-_SXwpYm8|HJbWl-VW/"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="a9Q1nHj)YciVF^{.#,a`" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="hiwg{J3!C1FFeqh#55{%"> <field name="NUM">1</field> </shadow> <block type="get_value" id="$Z{H*k(BRE}#|qa6y-Ws"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Kosten_mit_PV</field> </block> </value> <value name="B"> <shadow type="math_number" id="k3oPyJvEM|0.2E:oh,fk"> <field name="NUM">1</field> </shadow> <block type="get_value" id=",@xE,BY68(|y7]2AkgeC"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="i)D-rjvAT4,JYDs)~T%;"> <field name="NUM">365</field> </shadow> </value> </block> </value> <next> <block type="update" id="H7d7W5n/NrJ+pTUbt{Fa"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Ersparnis_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="}{nZPpsIxn+f9+pV)%?^" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="y-_SXwpYm8|HJbWl-VW/"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="1hdj$+KokI4W:.10NS5a" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="hiwg{J3!C1FFeqh#55{%"> <field name="NUM">1</field> </shadow> <block type="get_value" id="x/qE8N*rKP421y~c!yb*"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Ersparnis</field> </block> </value> <value name="B"> <shadow type="math_number" id="k3oPyJvEM|0.2E:oh,fk"> <field name="NUM">1</field> </shadow> <block type="get_value" id="*yY!6a;bS|u!%uhKk`r="> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="fg+Q:UfAxZ6Qd?wykNG$"> <field name="NUM">365</field> </shadow> </value> </block> </value> <next> <block type="update" id="9.vuC8Jmbi{edxCJ-s)T"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Vergütung_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=":)#rq5;`d_#{L,N}H]N%" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="y-_SXwpYm8|HJbWl-VW/"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="$,G2z(gh,yHH:OwgSn.2" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="hiwg{J3!C1FFeqh#55{%"> <field name="NUM">1</field> </shadow> <block type="get_value" id=")hsn)css1zo+lE[K*7T{"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Vergütung</field> </block> </value> <value name="B"> <shadow type="math_number" id="k3oPyJvEM|0.2E:oh,fk"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!)7D_el2oU/AQqa#3ja5"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="$gG5vr?6!]ojmv1d+{#Q"> <field name="NUM">365</field> </shadow> </value> </block> </value> <next> <block type="update" id="PCq4@*^3,R(%:R00g:4g"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Ergebnis_Durchschnitt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="=UQV7P^Mf9$uQ!-ppPMj" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="y-_SXwpYm8|HJbWl-VW/"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="`|8]$mlQIknpl~~C{i+Z" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="hiwg{J3!C1FFeqh#55{%"> <field name="NUM">1</field> </shadow> <block type="get_value" id="#i+W|!WAw|uheHUcwVg`"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Ergebnis</field> </block> </value> <value name="B"> <shadow type="math_number" id="k3oPyJvEM|0.2E:oh,fk"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Mmj!?~RR]+)y)7Q0~2W_"> <field name="ATTR">val</field> <field name="OID">javascript.0.Photovoltaik.Laufzeit_Tage</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="*;D1cS?Ibas#E!NJQ2P3"> <field name="NUM">365</field> </shadow> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="-=1!bo9bZM2d^wVzzvfM" x="-278" y="-257"> <field name="COMMENT">Berechnung Batterieladung</field> <next> <block type="on_ext" id="0gabH}^1*|ShtqYl70wN" collapsed="true"> <mutation items="3"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="cb(|SM|ZxJK`+vf!8j[/"> <field name="oid">modbus.0.inputRegisters.30775_Batterieentadung-Aktuell</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id=",ZOnw%CObrjS2V_`bk5R"> <field name="oid">modbus.0.inputRegisters.30873_Batterieladung-Aktuell</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="kWM5$f2bvH1#7Qb$e!C4"> <field name="oid">modbus.0.inputRegisters.30861_Aktueller-Verbrauch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="WuKN5t|UKGDrDT5Gy!{v"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="jE.Nigu#6W[V=6qb.Znb"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="_{TAdtc]8n5FI_G9r.C8"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30873_Batterieladung-Aktuell</field> </block> </value> <value name="B"> <block type="math_number" id="4HnpC=f/IN-Ci;5k(`{$"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="z9TUHX4n3QZPJiK6pK-{"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Ladung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="@(%HN|A?ghB#cf[Mb(kK"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30873_Batterieladung-Aktuell</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="lkj`pab_cLPSzCywdTvc"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Ladung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="@jgv,g$G`6YTgO%=HLc8"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Y`{yKwzAdc^FX0C3oou{"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="{6!B!`rTmgyz0+4Dss`H"> <field name="NUM">1</field> </shadow> <block type="get_value" id="a]YTsPN7{.k6F}MP8M]d"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30775_Batterieentladung-Aktuell</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="+^AI}m{0D]}I04*wzNz." x="-287" y="113"> <field name="COMMENT">Berechnung Anzeige Prozent</field> <next> <block type="on_ext" id="78_MuSqngD/-AUF1E_rQ" collapsed="true"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="v52k=fZKSwk5KcZl:6gi"> <field name="oid">modbus.0.inputRegisters.30845_Batterieladezustand</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="7bn]4,pc}L@f~VF4Os:N"> <mutation elseif="2" else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="vx6syAzf#v$^9_;)rHWN"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="l`wh,Qd:.^fH@Dw_bV6!"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30845_Batterieladezustand</field> </block> </value> <value name="B"> <block type="math_number" id="_$3FqT6G#fBHa{sF=99`"> <field name="NUM">75</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="$Mu+m4c_@C+5v8EJN~-y"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=")2,k?j;qf/rnJP2,I4L8"> <field name="NUM">3</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="KSyq*@9+9=UywZ-St)i5"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="UBO2x~p=Ku!=P-jw9*Bj"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30845_Batterieladezustand</field> </block> </value> <value name="B"> <block type="math_number" id="cO!H^NQ3xgX)]T+~~r^r"> <field name="NUM">50</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="NwV.BBi0l=N$K~kL4!Hz"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="I:RO0=Fw^YC}sVpU9B(8"> <field name="NUM">2</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="N_IhcZLV]r1n?Q%.Nx^n"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="$hHP=TpN=NkO/qO(pi5{"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30845_Batterieladezustand</field> </block> </value> <value name="B"> <block type="math_number" id="5m4!P{%l*yn?Etco7H(G"> <field name="NUM">25</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="qip@z804+5w[TPwB1~~p"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Oic2hY6OKQZ@27~{N^7;"> <field name="NUM">1</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="+N:`2;|(_G.oZHvpXvTA"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Batterie_Status</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Mcihe(Dw7cDa4p3ch74#"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="Bb]rWs+$F$ezOkrj?ds:" x="-287" y="213"> <field name="COMMENT">Berechnung Netzbezug</field> <next> <block type="on_ext" id="^xGRJs.]%0ux$Gy*WTAK" collapsed="true"> <mutation items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="REcX5BQk7^pm-9`x,U;Q"> <field name="oid">modbus.0.inputRegisters.30865_Aktueller-Netzbezug</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="8D27{krV,BT?9+G5x9L|"> <field name="oid">modbus.0.inputRegisters.30867_Aktuelle-Einspeisung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Ef_3x4,:0*Cy0Svf-UaJ"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="DG}wm5bvt7,K-JlliiP#"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="xJIt4,5iolsN*7Ar|F)/"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30867_Aktuelle-Einspeisung</field> </block> </value> <value name="B"> <block type="math_number" id="0GG;GK_]Ok@Ku:bV#].k"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="FSQ5n4!6llu0*;W6Hic3"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Netz</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="M:8i9Ohk@mJX9@y1(3Y6"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30867_Aktuelle-Einspeisung</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="q7aA7OV4RIR0;(v+op8^"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Photovoltaik.Netz</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="zw)p49_{,Puzvq7+Rx|T"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="up8.Ov%SWcH/16JRSS59"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="{6!B!`rTmgyz0+4Dss`H"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A4fm?)//:Xb9i2a2cKsc"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30865_Aktueller-Netzbezug</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </xml>
Hier die EIngangsregister:
Die View lässt sich gerade leider nicht exportieren. Ich schau mal ob das noch hinbekomme.
-
@Buchi Vielen Dank für Deine Mühe!
-
Guten Abend,
ich möchte mich gern an deine gemachten Erfahrungen zum Thema "anhängen".
Bin ebenfalls gerade an der Umsetzung Solar, SHM2.0 der VIS.
Meine Vorstellung schaut in etwa so aus:
Schlussendlich sollen die Pfeile entsprechend farbig animiert werden, entsprechend des Leistungsfluss.Bei der Sichtung der Datenpunkte im SHM2.0 ist mir noch nicht wirklich klar, was genau was ist.
Hier wäre meine Frage, ob du pregard, psurplus ... deuten kannst?Im weiteren Forenverlauf hast du die Lösung scheinbar "gedanklich" fertig!?
Darf man davon eventuell profitieren? Modbus-Adapter wird gerade installiert und konfiguriert. -
Ja, das habe ich auch so gemacht. Netzbezug und Netzeinspeisuung ginge mit dem SHM-Adapter, geht aber auch alles mit dem Modbus-Adapter. Ich habe auch die Empfehlung befolgt und mache alles mit dem Modbus-Adapter. Wozu zwei Adapter laufen lassen?
So sieht es jetzt abends bei mir unter VIS aus:
Bei Netzeinspeisung dreht sich der Pfeil und bei Stromerzeugung wird die Sonne angezeigt. Ist nur auf die Schnelle erstellt. Hauptsache die Werte stimmen:
Bei einigen threads zuvor steht wie man es in Modbus einstellt, um Bezug, Einspeisung und Erzeugung darzustellen. Diese Einstellarbeiten (richtige Werte für Register eintippen) fallen beim SHM-Adapter weg für Bezug und Einspeisung, aber man muss den Modbus-Adapter einstellen für die Erzeugung. Deswegen am besten gleich einmal die Mühe machen und alles mit dem Modbus-Adapter.Edit: Eingangsregister-Einstellungen findest du hier. Müssen nicht alle bei dir funktionieren. Probier es aus: 17. thread-Seite von Buchi 30. Nov. 2019, 06:04
-
@lobomau sagte in SMA Wechselrichter:
@Peoples sagte in SMA Wechselrichter:
@lobomau sagte in SMA Wechselrichter:
@Peoples ok, dann weiß ich schon mal, dass der Adapter bei mir alles richtig macht und man den Rest selbst aufbereiten muss.
Denke ich auch, bei mir sieht es nicht anders aus. Ich nutze zusätzlich noch den Modbus für den Wechselrichter so kann man eigentlich auf alle Werte zugreifen.
Beispiel:
Genau. Diese Darstellung möchte man ja auch gerne in vis haben
Hast du das hinbekommen oder soll ich dir mal den export einstellen?
-
@Peoples só gut habe ich es nicht hinbekommen. Ich dachte das wäre ein Screenshot von Handy App. Sieht ja genau so aus. Gerne hätte ich gerne davon einen Export.
-
@lobomau
Nein das ist tatsächlich aus dem IoB.Im Zip ist alles was du dafür brauchst. Ausgehend von meiner Hardware Zusammenstellung. Ich habe den SunnyHomemanager und einen SMA - Wechselrichter, verwende den sma-em und Modbus-Adapter.
Im Zip findest du:
- Die Bilder
- Das Javascript zum berechnen der Werte
- einen View-Export
- die Css-klassen
Wichtig du darfst die Objekte in der View nicht verschieben, sondern musst die ganze View dort wo du sie anzeigen willst als Teilbereich via Iframe einbinden. Die Bilderpfade musst du noch anpassen und ggf. das Script.
Schau mal ob du klar kommst wenn nicht einfach Bescheid geben.
-
@Peoples vielen Dank. Probiere ich mal aus. Sollte zumindest von meiner Hardware aus gehen. Die beiden Adapter laufen auch bei mir.
-
@Peoples es sieht schon mal sehr gut aus. Es zeigt die richtigen Werte wie im sunnyportal an. Nur CSS habe ich noch nicht eingebaut. Wozu ist das? Macht das die Rot-grün Aufteilung beim Gesamtverbrauch? Und wo muss ich das einsetzen? Hier ist es wohl falsch:
-
@lobomau
Da ist es richtig, das macht die Ecken rund.
Ich mach aber immer Projekt nicht global -
hallo peoples, habe mich auch deiner Solar-Visu bedient. Scheint erst einmal zu funktionieren.
Was ich nicht wirklich verstanden habe, wie du es bzgl. Iframe gemeint hast.
Sollen alle Widgets in ein iFrame gepackt werden?in der Mittelsäule liegen ja der grüne und rote Hintergrund übereinander.
Rot wird in der Höhe gemäß Verbrauch berechnet - genial clever.
Ich gehe davon aus, das grün den kleineren Z-Index hat?Wäre es dir bitte nochmals möglich, die animierten Pfeile zu übersenden?
Der linke ist bei Vergößerung "arg rund", der rechte sieht perfekt aus.Musste für meine Visu das ganze ein wenig vergößern...
Nochmal vielen DANK!
-
Schaut gut aus!
Die sind leider so, ggf. mit CSS rotieren wäre eine Lösung.Das mit dem Iframe meinte ich wie folgt:
Die Animation von grün und rot wird ja in Abhängigkeit der Postition deines Widgets "errechnet" wenn du das nun z.B. an mehreren Stellen deines Vis Projekts nutzen möchtest, müsstest du jedesmal diese Werte anpassen.Wenn du nun dein Bild oben auf eine separate View machst, kannst du diese überall wo du es möchtest den Teil der View via iFrame-Widget anzeigen lassen und verschieben ohne dass es einen Einfluss auf dein Erscheinungsbild hat.
-
@Peoples said in SMA Wechselrichter:
Schaut gut aus!
DANKE
Die sind leider so, ggf. mit CSS rotieren wäre eine Lösung. - dazu fehlt mir nun die "Vorstellungskraft".
Wollte eigentlich die Aussenkontur analog des rechten Pfeils nacharbeiten.
Die View sieht im ganzen so aus (ist aber noch in Arbeit!):
Wenn man aber nach vermeintlicher "Perfektion" strebt, sind solche Details der Beginn der Verzweifelung...