NEWS
PV Überschuss SMA Toogle vermeiden
-
Hallo Leute,
ich würde gern ein PV Überschuss mit einzelnen Datenpunkten umsetzten, das bedeutet PV Überschuss mit Bsp. :
Stufe 1 → 2000W
Stufe 2 → 4000W
Stufe 3 → 6000Wmein Problem ist, das natürlich der PV Überschuss schwanken kann, ich möchte aber nicht, das sofort der Datenpunkt Bsp. Stufe 1 auf false gesetzt wird.
Ich würde gern den PV Überschuss in ein Parameter schreiben und wenn dieser, nach zehnmaliger abfrage unter 2000W ist wird er erst false gesetzt```
Könnt ihr mir weiterhelfen ?
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id=":;8P.TXc?hVyT7~fNV+:" x="63" y="-912"> <field name="OID">sma-em.0.3015980202.psurplus</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="rNSq*+uX]#YH1M]sM~rv"> <value name="IF0"> <block type="logic_compare" id="#*As=Jwz}!!DVAsbjUFy"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="-8iN~ZY:S1aKP|oloC~K"> <field name="ATTR">val</field> <field name="OID">bydhvs.0.State.SOC</field> </block> </value> <value name="B"> <block type="math_number" id="ZW~V3eiIY*4c6:@OmrPy"> <field name="NUM">90</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="1Wf^_r%Q!]C*kdIaf)gt"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="k%m4}1Lwx{d[!:tn{D4z"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="BAq2%S@!+_Azth{rt,:*"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="g+`d~(`B=(XiTjFM[Cv8"> <field name="NUM">1000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="1D`~{2ykjW6F?FXqLP)+"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber1000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".%FkrvAno5d^Z99iU(fF"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="+9V|~IdTX]xb@hTnNdl8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber1000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="H6Ph]1YmAg.ZlKcEDe3F"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="JLt)V^a/YP:GtS:ydwJx"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="+{KWn:,#9A2eC2?Mj-Ef"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="X(@BP6;Y/welzQN=1Sm="> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="%-26`mKc394%C8`8^a?^"> <field name="NUM">2000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="A9Fy?*o)((c7G)mW6KS("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber2000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~UtilU=@b{XsU]%j`8T?"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="LQa!Qc!m8~iB2]Ut?^|7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber2000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Iw~3JT?iTU07(?sV}j~2"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="w4T9Q4wXymZ(,.G@87iU"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="U2yHMul-w@jV?5kMu,,$"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="@q{|#B2D1CrMbFTau~[V"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="m+)WC`sb$8Y9%PfKlxa."> <field name="NUM">3000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="X3|I}O_+[o(L.y+1`3b5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber3000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="sg~aSAl60;%[Q]6hudD{"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="u;`F8=Z!Cc:cVII~a%39"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber3000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="LC@GeS:9Eg4F]YknwT90"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id=");uZyW^$WGVhfDY,:P]l"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="TB=$s~,+(,09~%At!fsi"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="+qf!{D;_vTg(wxk$zUqe"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="Ttn0Csn@27CY^zP*pi;G"> <field name="NUM">4000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id=".CIE~Qe;.0Hk^bn`-7`A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber4000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="YJhQtc8ft6RxwUN(,;Pe"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="?@i@xOzhD#9Xljm-o_1s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber4000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="rjbfe2XVR@t9nV?UhRcy"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="!?q3[[!JB}q@E*wk:06a"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="L6i;Y[H+[5fN?pjEuGhR"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id=",n^a*C@vg4KfFRhf9`[Q"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="M[f[/-Up@1ieoBj-)0j8"> <field name="NUM">5000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="!oj~-$kz/XjK=y7ttUZf"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber5000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="rYe%p3gA:t`1T$+Fa5E$"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="trmfjB/`7#@zR?d5{vq."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber5000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]|M*o{n6PFPVU=Hxr-m9"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="NG@7$+Yql3+#.E*1D6oR"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="[:mOFu966QdGPCwqjSBA"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id=";d!fC3$ecz^PeI?(p._X"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="E0+[YSmqtLSH;-iv(eq^"> <field name="NUM">6000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="#P^G(X@1_w.JXBgnh_HN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber6000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="e;60H8.Z7x|ve%l[:C^D"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="OH9{a*y:(kM@GtbP]77K"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber6000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="EB`7ZizTZW47w7qV[!Q["> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="ok`=b5+!=1h:~9AvF$Q{"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="beytm_*QodWHN]YJ]Rd_"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="C~vzHUGmRf0,Q~pSt^au"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="QzqGhe8m5nR]rHvu)^}i"> <field name="NUM">7000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="vyY4dR405rsplhpo-J%7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber7000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="y-jRh0QBrK~])[Ml}nP5"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="$9_l{HkO=PDt,L@(:-pi"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber7000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="qK{s(I?d=4M0cwvLXy%="> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="I^nxY!Ry21yOkW=;L|)U"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="St@fe,F8J]}:vf8F[[#)"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="5Jq`%((=i43AS-k*%rZ-"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="$@/U:IULF!IqtrKDdX:Z"> <field name="NUM">8000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="[vyc^!~^%Xl4/ECV:-!x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber8000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="HDU--i*),wA$4mue-S-U"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="wlcj.bB7{1!+:C1{+#Ej"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber8000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dVAdz1a0$Y-^8i$,_#9p"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="is?A@(^MuU7Omt6Hd_+Y"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="R|mm7^cHF$8967}}c*yJ"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="YDc.I_=h9v@tME^[hIM+"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="1S.K|RUr;%4qGTc3p^f@"> <field name="NUM">9000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="sfH{JS{DkxGdyAZ3wpPN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber9000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="nMxckb3.WaJ=KSu~V9l}"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="x~=Q3jQ:{}?aax7$.Q%s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber9000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="R8{4fDuS!C$+|41r45$="> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="-L[mgy.|hy=5$O9FOzjR"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="W1Q*X3*+w=x-i;pB90Nf"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="m8{b;HGHM;e9p]lw3OVb"> <field name="ATTR">val</field> <field name="OID">sma-em.0.3015980202.psurplus</field> </block> </value> <value name="B"> <block type="math_number" id="~-9@oduz%!-%RPN+PZzA"> <field name="NUM">10000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="$;](5e4{Ov]m=6wiS.M6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber10000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="_MGCJd0%-r}_5a5eZcz9"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="%;Ao$PR%}r]l47y^P2.w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV_ANLAGE.PVueber10000</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Y2d0@?0mb=~GdF-i}:,K"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@maik5066
Bei Blockly bitte auch immer einen Screenshot liefern.
Das XML kannst Du - (optional) am besten hinter einem Spoiler - zusätzlich liefern.Nicht jeder hier hat Lust und Zeit, das erstmal zu importieren um zu sehen was da los ist.
-
@maik5066 sagte: Könnt ihr mir weiterhelfen ?
Prinzip 3-stufige Ansteuerung mit Prüfung der Mindestdauer von Grenzwertüber(unter)schreitung.
Voraussetzung: JS-Adapter Version >= 7.0.5.
-
@paul53 Vielen Dank, kannst du mir das per XML zusenden ?
Hier noch der Screenshot meines Skriptes :
-
@maik5066 sagte: per XML zusenden ?
Wird der Zeitstempel noch regelmäßig aktualisiert, wenn der Überschuss 0 ist?
Falls nicht, muss man den Trigger erweitern: -
@paul53
Danke dir,
Ist der Delay, der Abfrage bzw. Änderungsntervall oder stehe ich gerade auf dem Schlauch
ich habe es jetzt so umgesetzt :
-
@maik5066 sagte: ich habe es jetzt so umgesetzt :
So wird es nichts. Sind es 3 Stufen mit je 2000 W oder 6 Stufen mit je 1000 W?
Beispiel mit 6 Stufen -
@maik5066 sagte in PV Überschuss SMA Toogle vermeiden:
Abfrage bzw. Änderungsntervall
Trigger reagieren auf Ereignisse - nicht auf Intervalle.
Das "delay" trägt Deiner Anforderung Rechnung
ich möchte aber nicht, das sofort der Datenpunkt Bsp. Stufe 1 auf false gesetzt wird
Erst wenn der Zustand länger als X-Minuten ansteht, wird geschaltet bzw. geschrieben.
Fällt er währenddessen aus den Grenzen, wird das "delay" gestoppt und es passiert ... nix. -
@maik5066
Du hast 6 Datenpunkte für jeweils eine 1000-W-Stufe?
Vorschlag:Bei PV-Überschuss muss die Hysterese etwas größer sein als die Leistungsaufnahme einer Stufe.
Das Skript funktioniert so nur, wenn auch tatsächlich in jeder Stufe 1000 W Verbrauch zugeschaltet werden.
Ohne das Zuschalten von Verbrauchern machen Stufen keinen Sinn, denn dann ist der Überschuss in W ausreichend aussagekräftig. -
@paul53 Danke dir, 2 kleine Fragen habe ich noch, welche Objekt ID soll ich in der Funktion wie in der oben rechten Prüfung einsetzten ? Gibt es nur einen Datenpunkt der dann Zahlen von 1-6 beinhaltet ?
-
@maik5066 sagte: Gibt es nur einen Datenpunkt der dann Zahlen von 1-6 beinhaltet ?
Nein, es sind 6 DP vom Typ "boolean", die jeweils einen 1000 W Verbraucher zuschalten.
-
@paul53 danke dir, ich habe es jetzt mit 10 Stufen so umgesetzt , was soll ich auf den Abfragen ob rechts eintragen
!
-
@maik5066 sagte: was soll ich auf den Abfragen ob rechts eintragen
Oben beginnend mit "PVueber10000" abwärts.
Mit den User-Datenpunkten wird es nicht funktionieren, da damit keine Verbraucher geschaltet werden. Das Zu- und Abschalten von Verbrauchern hat Rückwirkung auf den PV-Überschuss, was im Skript vorausgesetzt wird. -
@paul53 Entschuldige ich verstehe es leider nicht :
der Block setze Stufe auf , kannst mir diesen beschreiben
Die Funktion "um Stufen" , kannst du mir diesen auch beschreiben
Danke dir für deine Hilfe.