NEWS
[gelöst] Temperatur Schaltung anpassen
-
Ich habe eine Temperatur Steuerung, die leider extrem auf jegliche veränderung eine Telegram Nachricht ausgibt.
Ich brauche nur eine Nachricht wenn die Lüfter wirklich eingeschaltet werden oder ausgeschaltet werden. Wie der Temperatur Wert ist, bekomme ich stündlich in einer übersicht per Telegram gesendet.
Ist es möglich das die Lüfter auf 27 Grad ein/aus geschaltet zu triggern und nur wenn die Lüfter geschaltet werden eine Telegram Nachricht auszulösen. Da mein Aqua Control <<<telegram Bot mich mit Temperatur Werten zu spämt.
Vielleicht bekommst du das ja auch ratzfatz hin @paul53Meine momentane Steuerung sieht so aus:
var Temperatur; Temperatur = getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val; on({id: 'sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (Temperatur > 27) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, true); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind eingeschaltet'].join('')) }); console.debug((['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind eingeschaltet'].join(''))); } else if (Temperatur < 27) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, false); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind ausgeschaltet'].join('')) }); console.debug((['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind ausgeschaltet'].join(''))); } });
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="mJE{tjKBVZ^5FIKaG$s5">Temperatur</variable> </variables> <block type="variables_set" id="CsZ*!COyGS(fRo9UH}!1" x="-463" y="-1113"> <field name="VAR" id="mJE{tjKBVZ^5FIKaG$s5" variabletype="">Temperatur</field> <value name="VALUE"> <block type="get_value" id="!XFN$kJ%jL:1u:2q/7cw"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <next> <block type="on_ext" id="5=J}G|Vtnwu`Z.`}nKZ@"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="P)B|shc_ivhAvX2mbxQT"> <field name="oid">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="!ZB-C3F4a~jvkb.D|D8w"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="+5B/6!tn8y}VfhP)N{LE"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="h_c)!EU-;3kKZq:|pZn{"> <field name="VAR" id="mJE{tjKBVZ^5FIKaG$s5" variabletype="">Temperatur</field> </block> </value> <value name="B"> <block type="math_number" id="E/Xf-n88Sy#_}|g?k}R2"> <field name="NUM">27</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="mAV9IFI)yXjMtXo2M]D2"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Power.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".?ucpaU|BCH~wpk^BXcN"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="#`_U?gtRc@ZW[t~btAOd"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="t{52.%{Hs`]4YD#~qeoX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="jikzC0ng$a/_3WLJq~pH"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="Rc|l!*~[K2fWkUTF[xpL"> <field name="TEXT">Aquarium Temp ist </field> </block> </value> <value name="ADD1"> <block type="get_value" id="mG`vT4*?SIwwN_tB)tu:"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD2"> <block type="text" id="m(cqqes/Gs*HX(SX$C3#"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="E|8#`4FFynNmyYl*$7;n"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="LqBz6MVYi:Mk@E*.6#,j"> <field name="TEXT">Technik Temp ist </field> </block> </value> <value name="ADD5"> <block type="get_value" id="d18DV6qg94C4qO@d*K?c"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD6"> <block type="text" id="2UNl3;78Q}0r/w54w]8h"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD7"> <block type="text_newline" id="77+zv1flCF,fU:R?qZZ%"> <field name="Type">\n</field> </block> </value> <value name="ADD8"> <block type="text" id="fcci=xYyVk{b)=Z=q@@?"> <field name="TEXT">Lüfter sind eingeschaltet</field> </block> </value> </block> </value> <next> <block type="debug" id="3TrVyd)vrSLJfd|`BK]s"> <field name="Severity">debug</field> <value name="TEXT"> <shadow type="text" id="4*3][}x|3(CTn=QXa*PN"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="0q*BZ^cqqp5NzfH:gY(q"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="oE3K+Wv`,qM3U!-2(@*Q"> <field name="TEXT">Aquarium Temp ist </field> </block> </value> <value name="ADD1"> <block type="get_value" id="#O)d/Uswk?/KeQb!Y{KR"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD2"> <block type="text" id="!?{Q:u/+4lGo2K+bQ4ea"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="5unlAP4UQ5~]sOAG@OU`"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="8#b%UYY[S*hxgixn!$Tx"> <field name="TEXT">Technik Temp ist </field> </block> </value> <value name="ADD5"> <block type="get_value" id="rCNbJ~OR(SQ2T:zRh,Pf"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD6"> <block type="text" id="S3G]X#)@m.,~S!JLsu%v"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD7"> <block type="text_newline" id="s@q2?=nI;F=Pk!R}0Q,#"> <field name="Type">\n</field> </block> </value> <value name="ADD8"> <block type="text" id="Vryi2kR.)iE:d!#Bd0IK"> <field name="TEXT">Lüfter sind eingeschaltet</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="AL;l=N%]-}0YJ78+GMj]"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="]|JFLlM^k2k537_:.Di{"> <field name="VAR" id="mJE{tjKBVZ^5FIKaG$s5" variabletype="">Temperatur</field> </block> </value> <value name="B"> <block type="math_number" id="(y5xD-^AIZ,8t=!,z[OE"> <field name="NUM">27</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="s7=@{`70/E1ZK[]?RR7J"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Power.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="IaSuQt6pqc4FFX%j16(8"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="k#WffLydc;q_!D=90/82"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="t{52.%{Hs`]4YD#~qeoX"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="$pd^gNA4OZQ$]F},N@.@"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="pfE_u=M(-L,aR5ruLriH"> <field name="TEXT">Aquarium Temp ist </field> </block> </value> <value name="ADD1"> <block type="get_value" id="Ot)aa?d|O2.vvY},r!-V"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD2"> <block type="text" id="+5{m#22z~!UE4@Shb+5Y"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="qtn34tt[),3-0L=J*m!c"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="Go9)KKhbJWAH@7L.LkyR"> <field name="TEXT">Technik Temp ist </field> </block> </value> <value name="ADD5"> <block type="get_value" id="sl2](,:Y*c6Agfh~;51c"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD6"> <block type="text" id="PYzY|lt0@+-yfa?~:}`i"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD7"> <block type="text_newline" id="1x]fG7Ll-%2;YPo)u(co"> <field name="Type">\n</field> </block> </value> <value name="ADD8"> <block type="text" id="#T1WB.4@vMv%SB.A%~?s"> <field name="TEXT">Lüfter sind ausgeschaltet</field> </block> </value> </block> </value> <next> <block type="debug" id="??1s;8;{}T0ZNb~4tjm7"> <field name="Severity">debug</field> <value name="TEXT"> <shadow type="text" id="4*3][}x|3(CTn=QXa*PN"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="=vjnEQZ7wj|[uc#:wWUE"> <mutation items="9"></mutation> <value name="ADD0"> <block type="text" id="1=[PGz,rV./(Q;VBaVmI"> <field name="TEXT">Aquarium Temp ist </field> </block> </value> <value name="ADD1"> <block type="get_value" id="1,fP.MzQ!0]pP8%qZ?da"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD2"> <block type="text" id="s+=J(:tL}zG-26:hm7=d"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="ZKhF(ClJI/n]Wr}(Q9Sq"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="}|1,fYG=Y|wSmq$+cJ:|"> <field name="TEXT">Technik Temp ist </field> </block> </value> <value name="ADD5"> <block type="get_value" id="Y5#-=Y/_:c:!]]GN|U*P"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature</field> </block> </value> <value name="ADD6"> <block type="text" id="v)H!?:sHFW9V%pgt8vu~"> <field name="TEXT"> °C</field> </block> </value> <value name="ADD7"> <block type="text_newline" id="}LaHZXf_lcBcLRCn}`I^"> <field name="Type">\n</field> </block> </value> <value name="ADD8"> <block type="text" id="@nP|kTZC_I3Lx_ncxiUR"> <field name="TEXT">Lüfter sind ausgeschaltet</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
-
@Aphofis sagte:
Ich habe eine Temperatur Steuerung, die leider extrem auf jegliche veränderung eine Telegram Nachricht ausgibt.
Das glaube ich bei der gezeigten Steuerung nicht, denn die Variable Temperatur wird nur bei Skriptstart gesetzt und bleibt danach konstant. Vorschlag:
-
@paul53
Ich schnalle es nihct woher du sowas umsetzen kannst.
Ich bin ja nun auch nicht dumm um kann Logik umsetzen und auch logisch denken.
Doch diese Steuerungen umsetzen ist irgendwie nicht meins.
Ich schreibe mir auch eine Aufgabenstellung auf was das Gerät bzw die Steuerung machen soll und was wenn nihct aber irgendwie klappt das umsetzen überhaupt nicht. @paul53 hast du da irgendeine Lektüre oder einen Tipp wie man Blockly besser lernen kann !? oder muss ich doch Javascript lernen !? -
@Aphofis sagte:
Tipp wie man Blockly besser lernen kann !? oder muss ich doch Javascript lernen !?
Das ist keine Frage der Programmiersprache. Ich habe viele Jahre Erfahrung mit Steuerungs-Logik.
-
@paul53
Na dann muss ich mich aber ran halten, wenn ich sowas mal selbst hinbekommen soll.Ist es so korekt ???
on({id: 'sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") > 27 && (obj.oldState ? obj.oldState.val : "") <= 27) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, true); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind eingeschaltet'].join('')) }); } else if ((obj.state ? obj.state.val : "") < 26.9 && (obj.oldState ? obj.oldState.val : "") >= 26.9) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, false); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Technik Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind ausgeschaltet'].join('')) }); } });
-
@Aphofis sagte:
Ist es so korekt ???
Wenn es beabsichtigt ist, die identische Temperatur in einem Telegramm 2 mal auszugeben, dann ja. Die Temperatur des Triggerdatenpunktes steht auch in der Eigenschaft Wert.
-
@paul53
Kann man das auch anders lösen !? Das je nach Zustand dann die eine oder die andere Nachricht wiedergegeben wird.
Ich weiß irgendwo hatten wir diese Steuerung mit dem Text. Ich glaube bei Alexa aber wie die Abfolge ist weiss ich nicht. -
@Aphofis
Im Text schreibst Du einmal "Aquarium Temperatur" und einmal "Technik Temperatur", übergibst aber für beide den gleichen Wert. -
@paul53
Ja soll auch beides Aquarium Temperatur sein!
Ist wohl noch über geblieben als noch die Klinken Stecker in Funktion waren und aber Ausfälle hatten da hatte ich den Technik Temp Sensor genommen.
Jetzt ist alles auf Mikrofon Stecker umgebaut seid dem keine Ausfälle mehr aber der Text ist geblieben.
Fix mal ändern. -
So sollte es völlig ausreichen.
on({id: 'sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") > 27 && (obj.oldState ? obj.oldState.val : "") <= 27) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, true); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','Lüfter sind eingeschaltet'].join('')) }); } else if ((obj.state ? obj.state.val : "") < 26.9 && (obj.oldState ? obj.oldState.val : "") >= 26.9) { setState("sonoff.0.Aqua_Power.POWER1"/*Aqua_Power_Lüfter*/, false); sendTo("telegram.0", "send", { text: (['Aquarium Temp ist ',getState("sonoff.0.Aqua_Sensoren.DS18B20-1_Temperature").val,' °C','\n','Lüfter sind ausgeschaltet'].join('')) }); } });