NEWS
Klimaanlage an bei PV Überschuss?!
-
@m-a-x sagte in Klimaanlage an bei PV Überschuss?!:
Das würde ich jetzt mit ner Variable machen, die "wahr" geschaltet wird, wenn die Automatik die Klima anschaltet und "falsch" wenn die Klima manuell angeschaltet wurde?
ja!
Eigener Datenpunkt Typ Logikwert, Z.B. Klimaautomatik, per Button in der vis auf true/false setzen.
Dann ganz oben im falls ebenfalls abfragen mit ...und Klimaautomatik = trueDann läuft das Skript nicht wenn die Automatik abgeschaltet ist.
oder wenn es besser in deine Logik passt:
manual_override dann mit prüfung auf false -
Wollte nur ne kurze Rückmeldung geben:
Das Skript läuft perfekt. Vielen Dank nochmals für eure Hilfe. -
-
Hallo Zusammen, ich hoffe ich darf mich hier anhängen
Ich wollte das Thema zunächst ganz einfach angehen. Schalte Klima (Power) an, wenn Leistung am Netzübergabepunkt kleiner als 0 (negativer Wert = Einspeisung) und schalte Klima aus, wenn Leistung am Netzübergabepunkt größer 0 (Netzbezug). Die Abschaltung soll 10 Minuten verzögert passieren, falls Leistung am Netzübergabepunkt größer 0 wird.
Ich möchte später noch die Raumtemperaturabhängigkeit einbeziehen etc. aber ich scheitere hier ja leider schon am Anfang bei den einfachen Themen
Kann bitte jemand drüberschauen? -
@highline das sieht so aus als ob es eigentlich funktionieren sollte.
Aber: 1. Eine kurze Wolke lässt das System an und ausschalten. 2. Bei genau 0 passiert nichts und 3. Kannst du die zweite Hälfte ersetzen mit einem 'sonst' in der ersten schleife. 4. (das musste ich auch erst lernen) kannst du das 'wert vom Übergabepunkt' einfach mit 'wert' ersetzen, da durch den trigger klar ist, dass es sich um den Übergabepunkt handelt.
Was ich aber gar nicht verstehe: warum nimmst du nicht das Skript, das für 'mich' gemacht wurde? Das hat keinerlei Probleme und ist einfach 'reduzierbar' wenn du weniger abfragen haben willst. -
@m-a-x Danke für dein Feedback.
Ich wollte mal schnell einen Erfolg für mich verbuchen und habe das deshalb schnell zusammengeklickt. Das Script für dich werde ich im zweiten Schritt adaptieren, wegen Wolken, Verzögerung etc.
Das System sagt jedoch "Script läuft nicht" undDachte deshalb, ich habe vor dem "großen" Script noch ein grundsätzliches Problem zu lösen.
-
@highline zu dem Fehler kann ich dir leider nicht weiterhelfen, da ich selber noch viel zu lernen habe. Aber es liest sich für mich als würdest du ein Objekt benutzen, dass es nicht gibt oder das falsch definiert ist.
Welchen Wert hat dein "Überschuss am Übergabepunkt 'denn? Gibt es das Objekt so in den Objekten des iobroker? -
@m-a-x Ja gibt es, ich versuche mal den Nachbau "deines" Scriptes
-
@highline ach noch eine sache: diese Verzögerung von 10 Minuten macht so keinen Sinn. Das bedeutet soweit ich weiß einfach nur, dass er nach 10 Minuten ausschalten würde. Da in der Zwischenzeit ja etliche neue Abfragen kommen, macht er entweder nichts, oder das ist das Problem.
Also das ganze macht nur Sinn, wenn du es mit ner Schleife wie in 'meinem' Skript machst.
Dein Anwendungsfall wäre: wenn man einen Schalter drückt, wird 10 Minuten später der Strom an/aus geschaltet. Er 'wartet' also nicht mit dem Skript, sondern führt den Befehl einfach nach 10 Minuten aus. Egal was in der Zwischenzeit passiert ist -
@m-a-x Kannst du eventuell dein Script als Blockly (zum importieren) hochladen?
-
@highline ich kann dir meins geben. Aber da stehen halt meine Objekte drinnen die nicht so eindeutig sind wie hier zu lesen
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Vs7Z.?JEp/HPBM;B2y%?">einspeisung</variable> <variable type="timeout" id="delayOn">delayOn</variable> <variable type="timeout" id="delayOff">delayOff</variable> </variables> <block type="on_ext" id="m~lGEhr|UdRB[m(}El12" x="-538" y="-338"> <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="6{`e9717c1G/r/TC#1f/"> <field name="oid">rct.0.g_sync.p_ac_grid_sum_lp</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="U4gy[:M12Ajo}98t:~Q]"> <value name="IF0"> <block type="logic_operation" id="]@s9^oSexWR=f$@gI8i," inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="x?r/X;5LCvk!ks6Ulp1S" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="{zfAO}!U:a[sGPIe(6xL"> <field name="OP">GTE</field> <value name="A"> <block type="time_get" id="+$*B;/.kjhTRTjUNxv#3"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="+(Yu-GbAJ7;UMK_1l9-|"> <field name="NUM">4</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="VTTRqo#*hm#|-FpLsqN2"> <field name="OP">LTE</field> <value name="A"> <block type="time_get" id="WZLqX$t.s2nA-q^)Glla"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">M</field> </block> </value> <value name="B"> <block type="math_number" id="z]6/iUr~fpgm=zn2td9g"> <field name="NUM">9</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="M|4NL*G,x133KONW0#%:" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id="huWuw#NkASrZ]IDOH%bW"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false"></mutation> <field name="OPTION">></field> <field name="START_TIME">10:00</field> </block> </value> <value name="B"> <block type="logic_compare" id="f4)jS$o}d(KK~xVw7A*c"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="X]K4LUS#Z]k7k`t0AV[C"> <field name="ATTR">val</field> <field name="OID">javascript.0.Klimaautomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/,zFJO}$w%f(;c,ksR)$"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Tj^dGy7YztT`f3xbdmc["> <field name="VAR" id="Vs7Z.?JEp/HPBM;B2y%?">einspeisung</field> <value name="VALUE"> <block type="math_arithmetic" id="u^8B#/.:y6v7.N~fAN.I"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="2q#GI_iHy@a)S+_}GiGn"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="FB}a(W@t]T}EC/nV+EH4"> <field name="NUM">1</field> </shadow> <block type="on_source" id="m@SfmXN3.}68J$zL(9B#"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="controls_if" id="snxmS]bbKOS;Qn.2L$a!"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="2^EfhswU=;rC59;PBM9p"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="JBw[AADX0)-tNm^jSnY@"> <field name="VAR" id="Vs7Z.?JEp/HPBM;B2y%?">einspeisung</field> </block> </value> <value name="B"> <block type="math_number" id="q)7C?@sw9jMm8lQ(qdtJ"> <field name="NUM">800</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="zy+9U[e+y;R7?0vR25}y"> <field name="NAME">delayOn</field> </block> </statement> <value name="IF1"> <block type="logic_operation" id="C{v;^$_kuPG3|E#FbW,U" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="do706++a@[6$A}bkR9Sk"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="74.`M%l4pcSKr]={]cG!"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.000C9BE98E7329.1.ACTUAL_TEMPERATURE</field> </block> </value> <value name="B"> <block type="math_number" id="Nu4?feY=CKy`=$}[|DWb"> <field name="NUM">23</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="BSM8|E_l_@+2!({Qqd;)"> <value name="BOOL"> <block type="timeouts_gettimeout" id="YK$d+f4-F@g*jbjbcjeb"> <field name="NAME">delayOn</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="5}!7f,d/ch69i%hAy;]j"> <field name="NAME">delayOn</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="/-^(AZ5CAH`)6oub6~@$"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_negate" id="(L{Cp)S#a}n!v3yT:]RX"> <value name="BOOL"> <block type="get_value" id="}n,{.kWp`$CP,.`@F!ct"> <field name="ATTR">val</field> <field name="OID">melcloud.0.devices.50698608.control.power</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="mL-Lt[9hFw#@7x(#}!]u"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">melcloud.0.devices.50698608.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Ms_X^Vk0%~@1ubhx}:q/"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="w}]K|fo|=u3ocpRDvPwk" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="dAw8bc]o?z0]lHnvS#bf"> <field name="TEXT">Klima WZ an</field> </shadow> </value> <next> <block type="timeouts_cleartimeout" id="9l7-2uL|zn|84/%a:-B+"> <field name="NAME">delayOn</field> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_negate" id="CI!CgJLCI9{1~kH;RX~S"> <value name="BOOL"> <block type="get_value" id="/JMV3E@a-V@5{1JC51(1"> <field name="ATTR">val</field> <field name="OID">melcloud.0.devices.50698663.control.power</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id=";1nuHs5Ce#F}ze-PRfI{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">melcloud.0.devices.50698663.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{6o}cM*?v0^zgUjQp]S{"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="E{mLbT:vh-A${qe:o]Pk" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="rR1JKFK+xq`oVZicZI-b"> <field name="TEXT">Klima SZ an</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="controls_if" id="y1b+Hk8KOE@l0pwdu1Mu"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="L({CaI3~T0-j;6eX*THO"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="AhD?1{:K}LKHdZ!r34={"> <field name="VAR" id="Vs7Z.?JEp/HPBM;B2y%?">einspeisung</field> </block> </value> <value name="B"> <block type="math_number" id="Cu;Ai1_puf=(%Pbf[k8S"> <field name="NUM">50</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="%Ml0q(DT/7ON`J_J}^ht"> <field name="NAME">delayOff</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="u}0B}tB%:N}T:=46)z*6"> <value name="BOOL"> <block type="timeouts_gettimeout" id="Lf0EOv[oU9C2wZzzB,(g"> <field name="NAME">delayOff</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="}r|xou0w*PR`nP12UI+l"> <field name="NAME">delayOff</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="`lFl/X=~{ATQ1p[_eP=-"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="get_value" id="(p@)Ghn.o+{4pl|kdq]5"> <field name="ATTR">val</field> <field name="OID">melcloud.0.devices.50698663.control.power</field> </block> </value> <statement name="DO0"> <block type="control" id="ljmiY{+2_#=yyI(gKuaW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">melcloud.0.devices.50698663.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="@AQLpyJsgg40sCZO?lgs"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="SfL|*8hs))*S,wDakm(D" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="wM*I2q,1qqJWK4vPBpw2"> <field name="TEXT">Klima SZ aus</field> </shadow> </value> <next> <block type="timeouts_cleartimeout" id=".}7zzLf$usc[VdRA/?.G"> <field name="NAME">delayOff</field> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="get_value" id="jzEFA2EkGR)$egE{B$iR"> <field name="ATTR">val</field> <field name="OID">melcloud.0.devices.50698608.control.power</field> </block> </value> <statement name="DO1"> <block type="control" id="lk9m18P!jvPz|3VDc@qT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">melcloud.0.devices.50698608.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="HTej{A~st@=blDuW~18V"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="p}W6*{^#eL`b=a(IzmQi" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="}m|4+BW.1j1Q$n:/gs5R"> <field name="TEXT">Klima WZ aus</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@highline sagte: Schalte Klima (Power) an, wenn Leistung am Netzübergabepunkt kleiner als 0 (negativer Wert = Einspeisung) und schalte Klima aus, wenn Leistung am Netzübergabepunkt größer 0 (Netzbezug).
Ohne Hysterese, die etwas größer sein muss als die Leistungsaufnahme des Klimagerätes, wird ständig ein- und ausgeschaltet.
-
@m-a-x danke für deinen Export!
Ich habe jetzt mal angefangen zu bauen und den ersten Teil des Einschaltens hinbekommen. Ich schalte aktuell zwei Zimmer und nehme die Temperatur aus einem der beiden Zimmer und die Leistung am Netzübergabepunkt als Bedingung. Ich werde mir noch das Abschalten bauen und schauen das ich für jedes Zimmer einzeln die Temperatur zur Bedingung mache.
@paul53 Danke für deinen Hinweis, ich denke ich setze die Zahlen entsprechend höher.