NEWS
Script für Steuerung von 1,5kw und 3Kw Heizstäbe
-
@homoran sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
Was nutzt mir eine xml-Datei unterwegs am Handy?Welche Ansicht möchtest Du dann haben?
Screenshot vom Script?
-
@spidermike sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
Welche Ansicht
Einen Screenshot vom Blockly (gerne zusätzlich den Code)
Einen Code vom Skript will/kann man auch nicht unbedingt in Blockly importieren !
-
@paul53 sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
@spidermike sagte: Temperaturregelung integrieren
Der Export enthält nur einen Debug-Block.
Soll ich jetzt ein extra script erstellen oder gibt es eine Möglichkeit in mein vorhandenes Script die Temperatursteuerung zu integrieren?
Ich bin was Blockly betrifft nicht bewandert da ich zuwenig damit mache.
Bitte Euch mir da mal genauer zu schreiben wo ich was einfügen muss.
Ist auch das einzigste Script was bei mir momentan läuft. -
@spidermike sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
Welche Ansicht möchtest Du dann haben?
Screenshot vom Script?steht alles im verlinkten Thread
-
@djmarc75 sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
@spidermike sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
Welche Ansicht
Einen Screenshot vom Blockly (gerne zusätzlich den Code)
Einen Code vom Skript will/kann man auch nicht unbedingt in Blockly importieren !
hab es nicht auf ein Bild bekommen
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="(au?)v#|.A3h~W0?i*.n">heizstufe</variable> <variable id="|d/H#5+,DS2pv7HuMpez">cntEin</variable> <variable id="@bW)OxFCEo,x]h%.K=oh">cntAus</variable> <variable id="Q!B|=?tF]T^rc#:%+tL0">heizstab1</variable> <variable id="9y5$f~sG5n39o=TlsnI_">heizstab2</variable> </variables> <block type="variables_set" id="XHga6uI*!=}qs_H{/!pN" x="-562" y="-487"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> <value name="VALUE"> <block type="math_arithmetic" id="Srk4mTqbc0P_aoZ^0gk," inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="/N~^PWKp.(tMa*mm(|rw"> <field name="NUM">1</field> </shadow> <block type="logic_ternary" id="FE|(7.b9)88oOW`_HArh"> <value name="IF"> <block type="get_value" id="QOX}s3wsRcPnYE8e84k."> <field name="ATTR">val</field> <field name="OID">shelly.0.SHPLG2-1#40915155EDF3#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="math_number" id="L+`#==TQ1QH%a~g3o:pF"> <field name="NUM">1</field> </block> </value> <value name="ELSE"> <block type="math_number" id="%D*$ee{;8FBudZbvQ]16"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="=d{[^G-:$`F]xab?9ax}"> <field name="NUM">1</field> </shadow> <block type="logic_ternary" id="aIY@36wn:78%*=EM]Et9"> <value name="IF"> <block type="get_value" id="-[j|,-dv?f2{[YO?*G/%"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHPLG2-1#E2BA9A#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="math_number" id="O(tM]$?].(mnxpG0vkaz"> <field name="NUM">2</field> </block> </value> <value name="ELSE"> <block type="math_number" id="_S/b~weIZ(2-wAtzxX`d"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <next> <block type="on_ext" id="Mva_8W8W:(B67SM9XV?."> <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="YQ1pH-P-xR~Vu!xhvVNF"> <field name="oid">plenticore.0.devices.local.ToGrid_P</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="Ng?V+#RU_WuMqgn4ei~0"> <field name="oid">plenticore.0.devices.local.HomeGrid_P</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%(d{F+ltUwtI`W.smyd{"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="T#t0PlW*bvU={g!__9$!"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="8Uld{OP=Yt~|=`|i8Q{("> <field name="ATTR">val</field> <field name="OID">plenticore.0.devices.local.ToGrid_P</field> </block> </value> <value name="B"> <block type="math_number" id="uQ6p}JW{99S|Qh_v#frq"> <field name="NUM">1500</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="a/H;no;tGkjZlhu%QI~u"> <field name="VAR" id="|d/H#5+,DS2pv7HuMpez">cntEin</field> <value name="DELTA"> <shadow type="math_number" id="H;JnIF*$m8ywec4]K13!"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="^5y%H-FY;A9NV}M`T^bZ"> <value name="IF0"> <block type="logic_operation" id="HBS.o.I#GLgPVUn_!(el" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="X9/a9lg*sY7G(LmIX+:1"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="s~*8Hs%wp?Dj|Iiu6]Ja"> <field name="VAR" id="|d/H#5+,DS2pv7HuMpez">cntEin</field> </block> </value> <value name="B"> <block type="math_number" id="GC,bq=x6~W{p.SYKma}M"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="RwA6#idx9=BM:S:RCgnt"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="1B+-prk8-;`[q;n,L21T"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> </block> </value> <value name="B"> <block type="math_number" id="jaA-iLYNZD--F{80bZEk"> <field name="NUM">3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="e1ZO}-{R*ozC2V)xv/NL"> <field name="VAR" id="|d/H#5+,DS2pv7HuMpez">cntEin</field> <value name="VALUE"> <block type="math_number" id="]Lh5K[KUfvl:?{oGtrPY"> <field name="NUM">0</field> </block> </value> <next> <block type="math_change" id="y3RXZ?0v28TMS+g(y*ME"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> <value name="DELTA"> <shadow type="math_number" id="D,[8m8#iVyo`/xu3/|K/"> <field name="NUM">1</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="tH+4|Wbc5GHu.%ky56%y"> <field name="VAR" id="|d/H#5+,DS2pv7HuMpez">cntEin</field> <value name="VALUE"> <block type="math_number" id="JJlOmhL0Jh*{50~Y-h8V"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="`C/Lr*6kU!Tt4gW,s=Db"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="c_-xcB`:PJhp0-JHIJwZ"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="Z!0%:J!gsy3:gST[WLtR"> <field name="ATTR">val</field> <field name="OID">plenticore.0.devices.local.HomeGrid_P</field> </block> </value> <value name="B"> <block type="math_number" id="UW6:78]L.}3j+Ia?W?F*"> <field name="NUM">200</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="eCcs$hs.OX8Moi,839rk"> <field name="VAR" id="@bW)OxFCEo,x]h%.K=oh">cntAus</field> <value name="DELTA"> <shadow type="math_number" id="%lyF737W.]7!ObDhu4*Q"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="b?7(ya-OF-`%%;tc#bxM"> <value name="IF0"> <block type="logic_operation" id="qfIor]$W$@y#:L#{9UXe" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="iHvO`42bm!/s5Er8zCI1"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="7af~Z/lsJ^ol-7$KOWGC"> <field name="VAR" id="@bW)OxFCEo,x]h%.K=oh">cntAus</field> </block> </value> <value name="B"> <block type="math_number" id="17]XhR(X*j/f)OWgYi4i"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="0%ZJ}M%wt?Pq;JIe!YNB"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="[3PN}:M)1@]zi0;:AZaG"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> </block> </value> <value name="B"> <block type="math_number" id="i9S6mdgJTy{S6##g3U=_"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="R75us`YE]0Iz]EJepA$U"> <field name="VAR" id="@bW)OxFCEo,x]h%.K=oh">cntAus</field> <value name="VALUE"> <block type="math_number" id="%3t@SYrb4[P}NnQpI+Pl"> <field name="NUM">0</field> </block> </value> <next> <block type="math_change" id="Qj*BMP)Ci{6n;.2*HW,3"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> <value name="DELTA"> <shadow type="math_number" id="nbS2*F5O|ABVkC*Xt-l?"> <field name="NUM">-1</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="uzm[8.*2lEfFSjC$f|fz"> <field name="VAR" id="@bW)OxFCEo,x]h%.K=oh">cntAus</field> <value name="VALUE"> <block type="math_number" id="eM6D_[FsERl*3r]EiB9)"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="b[DGt0nuaGL5jO;n$JAq"> <field name="VAR" id="Q!B|=?tF]T^rc#:%+tL0">heizstab1</field> <value name="VALUE"> <block type="math_number_property" id="Y7q0s4;cuGr3{}*_r-xX"> <mutation divisor_input="false"></mutation> <field name="PROPERTY">ODD</field> <value name="NUMBER_TO_CHECK"> <shadow type="math_number" id="j|55VNxUMVjBGhl-m/4{"> <field name="NUM">0</field> </shadow> <block type="variables_get" id="|;_$J9D-@(!!o!@A|d.v"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> </block> </value> </block> </value> <next> <block type="variables_set" id="Z{ol+x/+(u^aajx@Vhn2"> <field name="VAR" id="9y5$f~sG5n39o=TlsnI_">heizstab2</field> <value name="VALUE"> <block type="logic_compare" id="#DBQR1Cup4N-Qr=DF+*H"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="|go[K4{-;0Tp3c|,w~,%"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> </block> </value> <value name="B"> <block type="math_number" id="SW.U0{Tl.~iOkYh@}{3Z"> <field name="NUM">2</field> </block> </value> </block> </value> <next> <block type="controls_if" id=";6-9=_mR)~.uoX?!#xb!"> <value name="IF0"> <block type="logic_compare" id=":Nk({$pt]]-xzY.a,5?G"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="PoV8lq}:;v[obkCM53~8"> <field name="VAR" id="Q!B|=?tF]T^rc#:%+tL0">heizstab1</field> </block> </value> <value name="B"> <block type="get_value" id="dL$^y^A(Go.{3dD-3DUs"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHPLG2-1#40915155EDF3#1.Relay0.Switch</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="2X!0?2?;J){g|_#ftd|+"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHPLG2-1#40915155EDF3#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="%ydOnd8[XHC$/3{9VFj$"> <field name="VAR" id="Q!B|=?tF]T^rc#:%+tL0">heizstab1</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="%9.d:$w^iNz;L:nd5BoG"> <value name="IF0"> <block type="logic_compare" id="UQv[Rz^5f:#)fAqUWMk-"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="K^Cr`lcToTn%,N+kEZ[s"> <field name="VAR" id="9y5$f~sG5n39o=TlsnI_">heizstab2</field> </block> </value> <value name="B"> <block type="get_value" id="3Yr2{GacZb_mhZ4^?jF*"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHPLG2-1#E2BA9A#1.Relay0.Switch</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D/q[T[3mSbu1ysV{VPjV"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHPLG2-1#E2BA9A#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",[uX/yd,c(y.Gx~g[U#y"> <field name="VAR" id="9y5$f~sG5n39o=TlsnI_">heizstab2</field> </block> </value> <next> <block type="debug" id="KS{*7I7)yzeN1jB=6;V/"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="KS:4~UZ{vccU~iTf-V_u"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="5Y{~PghQ={@pOvAT^46;"> <mutation items="6"></mutation> <value name="ADD0"> <block type="text" id="`0;1s$3.TKPa^lIjw~W4"> <field name="TEXT">Einspeisung</field> </block> </value> <value name="ADD1"> <block type="get_value" id="8z^$PnY|MP{gr{A#bPi."> <field name="ATTR">val</field> <field name="OID">plenticore.0.devices.local.ToGrid_P</field> </block> </value> <value name="ADD2"> <block type="text" id="nlvwHcKhv@po6U57sDxA"> <field name="TEXT">W,Bezug</field> </block> </value> <value name="ADD3"> <block type="get_value" id="EL:l7T_?7p#z;7DZZs6`"> <field name="ATTR">val</field> <field name="OID">plenticore.0.devices.local.HomeGrid_P</field> </block> </value> <value name="ADD4"> <block type="text" id="8R5CWhYs_y*4;ljCHQcR"> <field name="TEXT">W,Stufe</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="(Oc3%bWXeM6!16qd]K7}"> <field name="VAR" id="(au?)v#|.A3h~W0?i*.n">heizstufe</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
Ich weiß nicht wie ich es sonst kopieren könnte
-
@spidermike sagte: gibt es eine Möglichkeit in mein vorhandenes Script die Temperatursteuerung zu integrieren?
Ergänze den Temperaturregler mit der Variablen
temp
zur Freigabe der PV-Steuerung: -
@paul53 sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
@spidermike sagte: gibt es eine Möglichkeit in mein vorhandenes Script die Temperatursteuerung zu integrieren?
Ergänze den Temperaturregler mit der Variablen
temp
zur Freigabe der PV-Steuerung:ist das so richtig?
-
@spidermike sagte: ist das so richtig?
Der Teil sieht gut aus. Wird die Variable
temp
im unteren Trigger geprüft? -
@paul53 sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
Der Teil sieht gut aus. Wird die Variable
temp
im unteren Trigger geprüfthallo,
wie kann ich das herausfinden,habe jetzt das Script mal gestartet aber momentan schauts mit der Sonne schlecht aus.
laut debug output wird der Überschuss ermittelt aber wie kann ich herausfinden ob er die Temperatur ermittelt?Erstmal vielen Dank für deine Mühe.
-
hab jetzt mal mit debug output versucht den Wert vom Sensor zu bekommen und so wie es ausschaut wird die Temperatur erkannt.
oder muss ich das anders prüfen?
-
-
also ich habe nur den oberen Teil hinzugefügt aber in dem alten script nichts eingefügt.
Wo und was muss ich da noch einfügen? -
@spidermike sagte: Wo und was muss ich da noch einfügen?
Das sieht man doch im Bild: Einen Block "falls temp" einfügen, der das bestehende Programm umschließt.
-
ok erledigt, kann ich dann unten in dem depug output auch die werte von dem Boiler abfragen und das oben löschen?
-
@spidermike warum versuchst du es so kompliziert zu beschreiben und machst keinen Screenshot mit Markierungen?
@paul53 hat das so schön vorgemacht!
Dann ist es auch verständlich -
@spidermike sagte: kann ich dann unten in dem depug output auch die werte von dem Boiler abfragen und das oben löschen?
Der Debug output unten erzeugt nur Ausgaben beim Schalten von Heizstab 2.
-
@paul53 sagte in Script für Steuerung von 1,5kw und 3Kw Heizstäbe:
Der Debug output unten erzeugt nur Ausgaben beim Schalten von Heizstab 2.
bekomme alle daten angezeigt
ob Einspeisung oder Bezug aus dem Netz
und welche Heizstufe
0= alle aus
1= 1500W
2= 3000W
3= beide zusammen =4500Wund die Tempertur vom Boiler
ist halt nur ein bisschen unübersichtlich
-
@spidermike sagte: bekomme alle daten angezeigt
Ja, an dieser Stelle erhält man alle Werte angezeigt, allerdings sehr oft.
Der gleiche Debug-Block funktioniert auch im Temperatur-Trigger, hat dann aber weniger Log-Ausgaben. Zusätzlich kann man die Temperatur auf eine Nachkommastelle begrenzen mit "common.step" = 0.1 im Datenpunkt "temperature oben".Übrigens kann es ein Legionellenproblem geben, wenn erst bei 50 °C (oben) wieder aufgeheizt wird.
EDIT: OBJEKTDATEN (nur "common") mit "step":
"common": { "name": "WW-Temperatur oben", "role": "value.temperature", "type": "number", "step": 0.1, "read": true, "write": false, "min": 0, "max": 100, "def": 0, "unit": "°C" },
-
das ganze System läuft zusätzlich zu ein bestehenden Gasheizung als Durchlauf. Die Heizstäbe sind nur dafür da den Gasverbrauch zu senken und die Gastherme übernimmt das Legionellenproblem
-
EDIT: OBJEKTDATEN mit "step":
"common": { "name": "WW-Temperatur oben", "role": "value.temperature", "type": "number", "step": 0.1, "read": true, "write": false, "min": 0, "max": 100, "def": 0, "unit": "°C" },
oje du stellst mich jetzt wieder vor Aufgaben:
ich bin nicht mehr der jüngste und komme überhaupt nicht aus der Programierbranche
ich bin froh wenn ich so halbwegs weiß wo ich was finde.Kannst Du mir erklären wo ich das oben in den Datenpunkt eintragen muss denn ich rufe die Werte über Mqtt ab.
hier ?