NEWS
Steuerung PV Strom Überschuss verwenden
-
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.
-
@wendy2702 sagte: Skript für meine Aktuellen bedürfnisse leicht abgewandelt.
Wenn ich "STATE" lese, denke ich, dass es sich um HomeMatic handelt? Aufgrund des Duty cycle sollte vor dem "steuere" ein Vergleich erfolgen:
Fallsheizen
!= Wert vom Objekt ...STATE -
@paul53 sagte in Steuerung PV Strom Überschuss verwenden:
@wendy2702 sagte: Skript für meine Aktuellen bedürfnisse leicht abgewandelt.
Wenn ich "STATE" lese, denke ich, dass es sich um HomeMatic handelt? Aufgrund des Duty cycle sollte vor dem "steuere" ein Vergleich erfolgen:
Fallsheizen
!= Wert vom Objekt ...STATEOK. Ist Homematic. Werde ich anpassen. Danke für den Hinweis.
-
Darf ich hier nochmal stören.
Wenn ich das ja richtig sehe und verstehe wird aktuell nur geheizt wenn Fenster zu, PV Überschuss sowie Temp Unterschreitung unter 21 Grad. Alle diese Bedingungen müssen erfüllt sein, oder nicht?
Jetzt ist es ja so das an solch bescheidenen Tagen wie heute (zumindest an meinem Wohnort) ich den PV Überschuss nicht erreiche. Ergo wird nicht geheizt wenn meine Annahme oben stimmt.
Wie kann/muss ich das Script erweitern/ändern damit die Heizung bei Unterschreiten der Temp trotzdem an geht?
Oder sollte das bereits so funktionieren?
-
@wendy2702 sagte: Heizung bei Unterschreiten der Temp trotzdem an geht?
Hat das Bad nur die Elektroheizung?
-
@paul53 Nein, hat es nicht aber FBH, die ist ja träge und mit Badewanne und XXL Dusche ist auch nicht viel Boden übrig. Zusätzlich noch ne Wärmepunpe mit geringer Vorlauftemperatur.
Wenn man dann nach dem Duschen oder so mal länger zum Lüften auf Kippe macht dauert es ohne Zusatzheizung schon lang bis es wieder angenehm ist.
-
@wendy2702 sagte: dauert es ohne Zusatzheizung schon lang bis es wieder angenehm ist.
Dann darf der PV-Überschuss nicht als Kriterium zum Heizen verwendet werden. Man kann aber bei PV-Überschuss den Sollwert (z.B. um 1 K) erhöhen.
-
@paul53 Danke, ich denke das ersetzt den unteren Teil des anderen Scripts oder soll es das ganze Script sein weil da würde doch dann das Fenster fehlen:
also das Teil :
und dein Script ?
Gehören zusammen?
-
@wendy2702 sagte: das ersetzt den unteren Teil des anderen Scripts
Ja, es ist natürlich nicht komplett (Fenster, Funktion heizung)
-
@wendy2702
Komplett: -
@paul53 mega. Vielen Dank.
Werde ich morgen nach bauen.
Jetzt erstmal Kino.
Schönen Abend
EDIT: Gerade mal zusammengebaut. Jetzt mal warten bis eine oder mehrere der Bedingungen eintreten.