NEWS
Steuerung PV Strom Überschuss verwenden
-
@manfredh-1 sagte: wenn ich in einem Datenpunkt den Wert hätte, wieviel die PV aktuell erzeugt ?
Ein solcher Datenpunkt bringt nichts, da der Verbrauch sehr unterschiedlich sein kann. Es gibt auch Verbraucher, die selbständig schalten (z.B. Kühlschrank).
-
@paul53
Hallo, ich muss mich jetzt nochmals bei dir melden, weil ich mit diesem Script für das Schwimmbad ein Problem habe. Wenn die PV, so wie jetzt 3500 Watt überschuss hat, schaltet es trotzdem nicht ein.
Wo habe ich da jetzt den Fehler? -
Hallo , bin über den Beitrag gestolpert und möchte das gerne mit meine BKW Anlage nutzen.
Ich möchte das wenn die Leistung von der BKW über 600 W liegt das meine Ladegerät für das Ebike eingeschaltet wird. Das Ladegerät benötigt ca. 160 W. Aktuell habe ich eine Grundlast von 400W wenn niemand zuhause ist. Ich habe das Blocky oben jetzt nachgebaut.Passt das so mit den Einstellungen ?
-
@mymeyer sagte: Passt das so mit den Einstellungen ?
Nein. Der Vergleichswert von
Wert
undvorheriger Wert
muss gleich sein.@mymeyer sagte in Steuerung PV Strom Überschuss verwenden:
Das Ladegerät benötigt ca. 160 W.
Nimm zum Einschalten 580 W und zum Ausschalten 500 W. Da nicht der PV-Überschuss ausgewertet wird, sondern die PV-Leistung, kann die Hysterese kleiner sein als die Leistungsaufnahme des Ladegerätes.
@mymeyer sagte in Steuerung PV Strom Überschuss verwenden:
wenn die Leistung von der BKW über 600 W liegt
Der gesetzliche Grenzwert ist 600 W. Kann der überschritten werden?
-
@paul53 sagte in Steuerung PV Strom Überschuss verwenden:
@mymeyer sagte: Passt das so mit den Einstellungen ?
Nein. Der Vergleichswert von
Wert
undvorheriger Wert
muss gleich sein.@mymeyer sagte in Steuerung PV Strom Überschuss verwenden:
Das Ladegerät benötigt ca. 160 W.
Nimm zum Einschalten 580 W und zum Ausschalten 500 W. Da nicht der PV-Überschuss ausgewertet wird, sondern die PV-Leistung, kann die Hysterese kleiner sein als die Leistungsaufnahme des Ladegerätes.
@mymeyer sagte in Steuerung PV Strom Überschuss verwenden:
wenn die Leistung von der BKW über 600 W liegt
Der gesetzliche Grenzwert ist 600 W. Kann der überschritten werden?
Der gesetzliche Grenzwert für eine BKW ist 600W in DE und in Österreich 800 W pro BKW.
-
Hallo Paul, würde das Thema gerne nochmal aufgreifen und mein Blockly Script vorstellen.
Das Skript soll einen E-Heizkörper steuern.
Kurz ein paar Worte zur Funktion, ich hab ein Timerscript laufen, wo ich mit Hilfe von Vis die Timer einstellen kann. Dieses Timerscript schaltet den Datenpunkt Freigabe_Timer. Dieser soll den Heizkörper immer unabhängig ein u. ausschalten.Bei PV Überschuss und wenn das Fenster zu ist und die Temperatur unter 21 Grad ist, soll der Heizkörper wieder einschalten, bis entweder der Überschuss nicht mehr ausreicht oder die Temperatur im Bad >23 Grad ist.
Leider wird der PV Überschuss mit einem Minus Vorzeichen ausgegeben, wie kann ich das im Skript realisieren?
Kann das Skript so funktionieren oder kann man es noch vereinfachen:
![0_1663251586629_timer.JPG](Uploading 100%)
![0_1663251603484_PV_Überschuss.JPG](Uploading 100%)
![0_1663251615938_temperatur.JPG](Uploading 100%)
![0_1663251623398_fenster.JPG](Uploading 100%)
Danke u.Grüße
-
@diamand2k22 sagte: Datenpunkt Freigabe_Timer. Dieser soll den Heizkörper immer unabhängig ein u. ausschalten.
Unabhängig vom PV-Überschuss und der Raumtemperatur, aber abhängig vom Fenster?
@diamand2k22 sagte in Steuerung PV Strom Überschuss verwenden:
Kann das Skript so funktionieren oder kann man es noch vereinfachen:
Ja und ja, wenn die Leistungsaufnahme des Heizkörpers < 1400 W ist.
Bei Einschalten per Timerscript sollten die Timeouts gestoppt werden.
-
@paul53 said in Steuerung PV Strom Überschuss verwenden:
Unabhängig vom PV-Überschuss und der Raumtemperatur, aber abhängig vom Fenster?
ja das ist richtig.
Und wenn der Timer nicht aktiv ist, dann soll der Heizkörper nur bei PV Überschuss und Fenster zu u. Temperatur <23 Grad laufen.
Jetzt liefert der Datenpunkt meines Fronius Smartmeter den Wert des PV Überschuss mit einem negativen Vorzeichen. Wie kann ich das im Skript verarbeiten?
-
@diamand2k22 sagte: PV Überschuss mit einem negativen Vorzeichen. Wie kann ich das im Skript verarbeiten?
falls Wert >= -1500 stop delayOn sonst falls vorheriger Wert >= -1500
und
falls Wert <= -100 stop delayOff sonst falls vorheriger Wert <= -100
-
Hallo Paul, danke das funktioniert soweit.
-
Hallo Paul, ich habe noch das Problem, dass wenn die Temperatur erreicht wird, der Heizkörper zwar abgeschaltet wird, aber wenn die Temp unter 23 Grad fällt oder Fenster wieder geschlossen wird, die Heizung nicht mehr eingeschalten wird, wenn die Bedingung PV ÜBerschuss oder Timer = true gegeben ist.
Problem ist denk ich der Trigger, der den Wert nur bei Änderung der Objekt ID durchgibt.Wie kann ich das noch elegant lösen?
Gruß
-
@diamand2k22
Wenn man auf zwei Datenpunkt-IDs triggert, kann man die lokale VariableWert
nicht verwenden.
Exportiere bitte das Blockly.Nochmal nachgefragt:
- Die höchste Priorität hat "Fenster offen" (schaltet immer aus)?
- Die zweithöchste Priorität hat "Freigabe_Timer" (schaltet ein)?
- PV-Überschuss und Raumtemperatur-Regelung müssen gleichzeitig erfüllt sein?
-
ok wieder was gelernt
Wenn Timer ein oder PV Überschuss vorhanden und Fenster zu und Temperatur nicht erreicht
-> schalte Heizung ein.
Wenn Timer ein oder PV Überschuss vorhanden und Fenster auf oder Temperatur erreicht
-> schalte Heizung aus
Wenn Fenster wieder zu gemacht wird oder Temperatur fällt unter 23 Grad -> schalte Heizung wieder ein wenn Bedingung Timer ein oder PV Überschuss erfüllt.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="B3AWq:t3%Fveo3mB2NuX">Freigabe_Heizen</variable> <variable id="@aE5Jy)uWPNid/rz47O|">Fenster_offen</variable> <variable id="!tUPvKYTXSVo4pQ{Eu,1">Freigabe_Temp</variable> </variables> <block type="comment" id="9;-YAMBWk1ZT~VR@,q@l" x="-1562" y="-262"> <field name="COMMENT">E-Heizung ein/aus</field> <next> <block type="on_ext" id="za|2c92..c2u15p5U#PQ"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="[rp8Ds4V}7l-YAa4i$mv"> <field name="oid">javascript.0.Freigaben_PV_Überschuss.Freigabe_PV_Überschuss_E-Heizung_Bad</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="@@}P0$Z:-L%0J/yhtFHU"> <field name="oid">zigbee.0.540f57fffe3f5d93.Freigabe_Timer</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="13$j%=YA$9TDVi?[b-Pi"> <field name="VAR" id="B3AWq:t3%Fveo3mB2NuX">Freigabe_Heizen</field> <value name="VALUE"> <block type="logic_operation" id="=wM+9Iu}EeuxJAFfqCZQ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="on_source" id="e1fI~3nPKM6U+tIKAp6;"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_operation" id="QscvU.v34fapDmiH0r%c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="ZADaXJ,)K7_k`irh7Y)("> <value name="BOOL"> <block type="variables_get" id="Cnxr${ovxGNGne|*853;"> <field name="VAR" id="@aE5Jy)uWPNid/rz47O|">Fenster_offen</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id=";S!6EWB%97/},vCw6hm`"> <field name="VAR" id="!tUPvKYTXSVo4pQ{Eu,1">Freigabe_Temp</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="w?d5@SVIM@e;Gr|_jBTy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.540f57fffe3f5d93.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="rJ$DR-MT`Q8u^l+ZXIQf"> <field name="VAR" id="B3AWq:t3%Fveo3mB2NuX">Freigabe_Heizen</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="3AsCGdV-~R1OT:{+C1pp"> <field name="COMMENT">Auswertung Fenster offen</field> <next> <block type="variables_set" id=";(m=sY6D8-!SVai500-D"> <field name="VAR" id="@aE5Jy)uWPNid/rz47O|">Fenster_offen</field> <value name="VALUE"> <block type="get_value" id="?^1f|?KYd!p%P,mSup#8"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d00087e8fd7.opened</field> </block> </value> <next> <block type="on_ext" id="{Ti96S_f^4XlU3Amx3j3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="gI%Z+5fD{~#_[7v7,$b9"> <field name="oid">zigbee.0.00158d00087e8fd7.opened</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="9iA3y8,R`,56Yezy2MyH"> <field name="VAR" id="@aE5Jy)uWPNid/rz47O|">Fenster_offen</field> <value name="VALUE"> <block type="on_source" id="?z!~G|W/q+Mc|W0Bgp]I"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="]#gb/OHjO_IXR[?(rE/y"> <value name="IF0"> <block type="variables_get" id="rMx}t%|62xr|@F*p[$~W"> <field name="VAR" id="@aE5Jy)uWPNid/rz47O|">Fenster_offen</field> </block> </value> <statement name="DO0"> <block type="control" id="8)zp?^j^*Gv*Zp0?/yHG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.540f57fffe3f5d93.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="5as5;DN32^SMHu7.]M9M"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="TnJ=_MGU8%AcQKzNjtD:"> <field name="COMMENT">Auswertung Temperatur</field> <next> <block type="variables_set" id="=D:D/BKe:Gx2oh.rC$^n"> <field name="VAR" id="!tUPvKYTXSVo4pQ{Eu,1">Freigabe_Temp</field> <value name="VALUE"> <block type="logic_compare" id="G^LFbZ4]i:C9Ae#/w:c("> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="R}Yf7fH+e)*pz`uk;B[i"> <field name="ATTR">val</field> <field name="OID">zigbee.0.00158d00083672fb.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="WP/A1[K)J$Nz[)S~#$MA"> <field name="NUM">23</field> </block> </value> </block> </value> <next> <block type="on_ext" id="lV#,fyEcw?_]{kUcU+NW"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="GMryg0Ty6rz8m$Q2M^UF"> <field name="oid">zigbee.0.00158d00083672fb.temperature</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="}]k^8s:RUfKg/8t{D$E!"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="t5{{!*af6Ou[4nE^l5sR"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="Fp56p*nye+%.2ESbUOHu"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="ueh!M+R}h|D2Y/8*wLv7"> <field name="NUM">23</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="D)=fYYS$QRsbuV;Mf6w;"> <field name="VAR" id="!tUPvKYTXSVo4pQ{Eu,1">Freigabe_Temp</field> <value name="VALUE"> <block type="logic_boolean" id=":T@ke7ZsKK:yyX!LHct^"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id=")/,7]S2C2mL51x{a^6dO"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="0AnFvm4c?{gp4[1|{=bH"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="Ob4zEPVVhH*v)~g{3nUS"> <field name="NUM">24</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="ovS_v9sc_:M]@IuztT/8"> <field name="VAR" id="!tUPvKYTXSVo4pQ{Eu,1">Freigabe_Temp</field> <value name="VALUE"> <block type="logic_boolean" id="Eq.:+H=ZWsD-%QQ_?)Iy"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="Qx^)z7F{KQzNv]N`v?(r"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.540f57fffe3f5d93.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="otzesr:xSu:6x=,:*,i1"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@diamand2k22 sagte: Wenn Timer ein oder PV Überschuss
"Timer ein" übersteuert nur den PV-Überschuss?
-
"Timer ein" übersteuert nur den PV-Überschuss?
ja das ist richtig!
danke für die Hilfe, ich passe das Blockly mal so an!
Gruß
-
@paul53 sagte in Steuerung PV Strom Überschuss verwenden:
@diamand2k22 sagte: Wenn Timer ein oder PV Überschuss
"Timer ein" übersteuert nur den PV-Überschuss?
Ich habe mal eine Frage.
ich habe das Skript für meine Aktuellen bedürfnisse leicht abgewandelt.
Mein Fensterkontakt liefert ein "closed(0)" und "open(1)" und nicht true/false. Muss ich das vorher umwandeln oder funktioniert das auch so?
-
@wendy2702 sagte in Steuerung PV Strom Überschuss verwenden:
Mein Fensterkontakt liefert ein "closed(0)" und "open(1)" und nicht true/false
das ist eine Werteliste!
geliefert wird nur 0 oder 1 -
@homoran Ja. Wollte es halt so schreiben wie es in den Objekten steht.
Trotzdem, muss ich das zuerst umwandeln in true/false damit das Blockly funktioniert oder am Blockly was ändern?
-
@wendy2702 sagte: muss ich das zuerst umwandeln in true/false damit das Blockly funktioniert
Nein, es erfolgt eine implizite Typwandlung.
-
@paul53 danke für die schnelle Antwort.