NEWS
Kleine verständniss Hilfe
-
Vielleicht ist ja einer hier im Forum so Fit um mir zu helfen,
ich würde gerne alle meine Blockly Steuerungen Stück für Stück zu Node-Red holen. Dazu muss ich erstmal wissen wie sowas in Node-Red umgesetzt wird. Mein Meerwasser Aquarium ist momentan bei 121 aktiven Steuerungen.
Ich habe hier zwei meiner Blockly Steuerungen vielleicht kann mir die ja jemand in Node-Red umbauen, damit ich verstehe wie das in Node-Red umgesetzt wird.ALARM MAX AQUARIUM:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="T%,SlNQ_9btYcYh~30k/" x="-1262" y="-1287"> <field name="OID">sonoff.0.Aqua_Float_2.POWER</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="9=_WG4#x;cY`a3l,uGwr"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id=";c50MA3/K!scaRee}5o4"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="aLlG^MQe2x@[+Q]}hlaU"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Float_2.POWER</field> </block> </value> <value name="B"> <block type="logic_boolean" id="W+Pk#6,jho9P|Il(H?P?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="]Pb}p}y3mAobVkcVy3ns"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="N,mkEliXK`6b1H{hqdZp"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id="$YX[h5ORE6|*T$n?[)l-"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="y0G_Q6qErr@:0HK?B%Df"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="D3}da9(B}WbyO%*lzDC`"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="@5^mvH2,3WXXe,?/x(7="> <field name="TEXT">Aquarium Alarm wurde ausgelöst</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="Wq6;rZ[zCe`TFV3gGe!i"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="ddgd6Z[%uLlZ.5WJQt|U"> <field name="TEXT">Alarm ist eingeschaltet</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="5LJLSqI(bQ+nsygng?:p"> <field name="Type">\n</field> </block> </value> <value name="ADD4"> <block type="text" id="1_3]%7j;I(D(bVPs{jVV"> <field name="TEXT">Wasserstand im Aquarium ist zu hoch</field> </block> </value> </block> </value> <next> <block type="debug" id="aqmJbJ5J!i4Rray.L^^P"> <field name="Severity">warn</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="sR!uv6Sy_eUE4[n{!Ppa"> <field name="TEXT">Alarm wurde eingeschaltet</field> </shadow> <block type="text" id=":gH5WL]wA30,Lc(vCffR"> <field name="TEXT">Alarm Max im Aquarium wurde ausgelöst</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="{|bPvj-_B~+.Ky.qEJQ/"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="x~VlIl_f4Q[%iXsn{q7O"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Float.POWER2</field> </block> </value> <value name="B"> <block type="logic_boolean" id="G}GqQ7e2m0dp9$u=N$M)"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="o3`0It=NF:4T19b3K?qB"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="9=l@pX,v8T096]T_${l-"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id="ENBj6j2)CGDRhhe5Mv9z"> <field name="NAME">timeout</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="Ukcu;Hq!5p9aEOndO2w%"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="y0G_Q6qErr@:0HK?B%Df"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="yLCjwPM=fb=3J[mg{;Ax"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="W@L(2C5p0fh)d%Z^Opc/"> <field name="TEXT">Alarm Max im Aquarium ist deaktiviert</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="$L)lF.6lN+UQzx{oreG0"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="}5:z+q6z]oN$Vh?wZJr/"> <field name="TEXT">System läuft normal weiter</field> </block> </value> </block> </value> <next> <block type="debug" id="t.v{V}}#7$!so$wQq)|x"> <field name="Severity">warn</field> <value name="TEXT"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="QQEgh*@I8d2okxQHDs=N"> <field name="TEXT">Alarm wurde ausgeschaltet</field> </shadow> <block type="text" id="VE;~e]OR!{`rkmW]:@DY"> <field name="TEXT">Alarm Max im Aquarium wurde abgeschaltet</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </xml>
VLIESFILTER NIVEAU:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="jelrI7)a+8oXZV(*|VPG">schwimmer</variable> <variable id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</variable> <variable id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</variable> <variable type="undefined" id="Intervall">Intervall</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="comment" id="5z}DP4%./aV[wt`Fx4$t" x="-2013" y="-787"> <field name="COMMENT">Vlies Schwimmer normal</field> <next> <block type="variables_set" id="q^$BreH*yiE%[?k6w~Cu"> <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field> <value name="VALUE"> <block type="get_value" id="[z_,Lk{/T{ix%}b/^$WM"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Float.POWER3</field> </block> </value> <next> <block type="variables_set" id="54%k%%U$jnaK1m1E.%SH"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> <value name="VALUE"> <block type="math_arithmetic" id="@jS^)bBYfX#1dH:D1kdH"> <field name="OP">DIVIDE</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="q!^ViYZx3LnzVq1kp_Za"> <field name="NUM">1</field> </shadow> <block type="get_value" id="q^Na^3~X:M*%vFn_~M82"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field> </block> </value> <value name="B"> <shadow type="math_number" id="S7Sc+~JrKqP70}B!6YdK"> <field name="NUM">2</field> </shadow> </value> </block> </value> <next> <block type="on_ext" id=".C1d#(gWIO$3af%qZpd="> <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="ao*zhM3bl`?#R.|56@u2"> <field name="oid">sonoff.0.Aqua_Float.POWER3</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_cleartimeout" id="JsI0fYRACRn|cg%P`lFp"> <field name="NAME">schwimmer</field> <next> <block type="timeouts_settimeout" id="N#We))|a%fz}L[Q+Cx^q"> <field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="DBP2g$aqWChGwu[v*4!%"> <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field> <value name="VALUE"> <block type="on_source" id="K11}(or[Z:OS!(#vxqHG"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="procedures_callnoreturn" id="PS|Lsb]Ll|M)1A-*=;MW"> <mutation name="Vliesmotor"></mutation> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="schedule" id="(1I$6}V5IN*70(H;=,o%"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="{)f?@KVtoNY|AFCWejAB"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> <value name="VALUE"> <block type="math_number" id="Rqh{,?m@M#5bO:hk2qxN"> <field name="NUM">20</field> </block> </value> <next> <block type="update" id="+r+/i.Ri,fl}QCeX@?61"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="]lwb)]#RcLa^7jMqMB77"> <field name="NUM">40</field> </block> </value> <next> <block type="procedures_callnoreturn" id="4]}?^U%FVW-Xhma?(A5M"> <mutation name="Vliesmotor"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id=",QNrt-4CE4Oj^jIk#,;Y"> <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field> <value name="VALUE"> <block type="get_value" id=")/E%PW9T*{q`1g=Um8*F"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Float.POWER5</field> </block> </value> <next> <block type="comment" id="bHD/a9YVFg5@jtgL}RAZ"> <field name="COMMENT">Vlies Schwimmer max</field> <next> <block type="on_ext" id="*GLxbq=Y5W/kt`Ec^_^8"> <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=":`a*puT#US*_u;?L/x6J"> <field name="oid">sonoff.0.Aqua_Float.POWER5</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="|?HCwmG:!WSA]G_SW,bk"> <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field> <value name="VALUE"> <block type="on_source" id="2JAIjy|oUz(g|A5~5NZK"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="_6.CXzT9uKZMv|AhD2pB"> <value name="IF0"> <block type="variables_get" id="bGVV|MyBeYczZ:[4nke5"> <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field> </block> </value> <statement name="DO0"> <block type="control" id="V1h::i|*Z}0C,x,4n[h["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?1XtN^D4|o#2R(0I)]46"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="procedures_callnoreturn" id="4SLh!G5#1BX1Fr=Gc:)G"> <mutation name="Vliesmotor"></mutation> </block> </next> </block> </next> </block> </statement> <next> <block type="procedures_callnoreturn" id="SwYioD-vCN,({DQT,nlx"> <mutation name="Vliesmotor"></mutation> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="~}wgr=#9IHto`oZ`1i[U" x="-1512" y="-687"> <field name="NAME">Vliesmotor</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="qK^.hb={2:@M!ZVgr,,u"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="[P$,D8~!C1S-}Qc-W#F2"> <field name="OP">AND</field> <value name="A"> <block type="variables_get" id="NzRA^q(PS(^dxlh?Hz=`"> <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field> </block> </value> <value name="B"> <block type="logic_negate" id="l#n/c,qraF+Y1Tx?C@JA"> <value name="BOOL"> <block type="variables_get" id="_M:.mt0cg%g*o6:2k*18"> <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="QywEwMFYFf*jv=~RG:hi"> <value name="IF0"> <block type="logic_operation" id="xx=Q]8#5BOXA?;HAZ|/Q"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="_{hS@M9pcc_|dL-|wHIe"> <value name="BOOL"> <block type="variables_get" id="!lSD/;w.BC6Zye$P;+qB"> <field name="VAR" id="Intervall" variabletype="undefined">Intervall</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="JbQbvT#3JW.9fVGJXtMe"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="qM,NQ2t^P6}UJ1c+OQ`P"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> </block> </value> <value name="B"> <block type="math_number" id="U=ZFPYpxi`%vn%M4zaBe"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="S$_E~?+C|0xeaXoh_M8M"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="%02%L=N?!^~efNZ}mSgv"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_setinterval" id="54}UC3}t@D?RM1+Z792o"> <field name="NAME">Intervall</field> <field name="INTERVAL">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="(~Q|}=ic+sA#`@!Ma`~L"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="A46f$uvOO-y~k${W6yj6"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="bpC5nI2I}O}Z#O{kySt_"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="xk]/(@DMWUBgU#z6:]qZ"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> </block> </value> <value name="B"> <block type="math_number" id="yO,,$wcKnI|3dJ-tuyV}"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="BSK6e#C8r)693?3tm_%s"> <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="E`-ssA;X9+940MYh/jC~"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> <value name="DELTA"> <shadow type="math_number" id="|SPdtjyTRk*g7kpbX@yh"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="e?4*zw6JeufCUI_A$tWA"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="?(V0m_KR;zq]8QN4Nnt}"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="e-o]eN1KmMjXLGYbB5*-"> <field name="NUM">2</field> </shadow> </value> <value name="B"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Jab%cXU;kqAhB|kiv+HG"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="x3#fOwJi8qvpU_aB}+Qo"> <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id=";ZPsI~I3!y;|Bll.nZi]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="GV}0dox+Wzn)9/ho1)jJ"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_clearinterval" id=".JS+sd^HrJ:7@PT?;b1@"> <field name="NAME">Intervall</field> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </statement> <value name="IF1"> <block type="get_value" id="#Hsff,HhVj3Er3x^t0d{"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Aqua_Control.POWER2</field> </block> </value> <statement name="DO1"> <block type="control" id="4|Vz)`RbK!({%B#^yBT@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Control.POWER2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="(F=#.PC)sS-H0v;,Jq$U"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
@Aphofis
Du nimmst eine iobroker in Node - mit dem sonoff.0.Aqua_Float_2.POWER - hängst einen switch dahinter mit wahr und falsch und hängst dann Deine Sirene an. - Ich kann Dir schon helfen, aber Du musst halt ggf. erklären was das Blockly macht - ich kann das im Großen und Ganzen erkennen, aber weiss zum Beispiel nicht wo Du Deine Meldung dann hinschreibst.
Was ist zum Beispiel die Alarm-Sirene - ist das ein Datenpunkt - der im Prinzip true und false von dem sonoff.0.Aqua_Float_2.POWER Punkt annehmen soll.
Wo schreibst Du die Text-Meldungen hin? -
@mickym
Also Aqua Float 2 Aquarium Level ist ein Schwimmer im Aquarium der wenn etwas mit dem Kamm sprich mit dem Überlauf nicht stimmt eine Alarm Sirene auslösen soll. diese meldung geht an meinen Telegram Bot damit ich weiß das da was nicht stimmt. Danach kann ich per webcam gucken was da los ist. Der Schwimmer soll eigntl träge gemacht werden, damit wenn wirklich erst nach 10 sek Schwimmer true die Sirene und die Meldung ausgelöst und die Sirene auf true gesetzt werden soll. demnach wenn der schwimmer false wird weil sich der Wasserstand wieder normalisiert hat. Soll die Sirene abgeschaltet werden und eine entwarnungs meldung an den Bot geschickt werden soll.
Da es ab und an vorkommt das meine bekloppten Fische vor einer 12000 l/h Strömungspumpe Algen zupfen dann springt der Schwimmer auch an aber nur für ein Paar millisekunden dabei soll der Alarm nicht ausgelöst werden.
Die andere Steuerung ist etwas komplexer.
Das ist eine Steuerung für meinen Vliesfilter in dem zwei Schwimmer sind einmal Vliesfilter normal und Vliesfilter Max. wenn Vliesfilter normal true ist soll der Vliesmotor auch ein Sonoff Gerät eingeschaltet werden und die Steuerung zieht von einem datenpunkt die gelaufene Zeit ab. Da ich den Vliesmotor zeitlich gemessen habe und soimit einen ms = mm ermittelt habe und dieser multiplikator errechnet dann in einer anderen Steuerung die gemessene zeit strecke vom verbrauchten Vlies und scheeibt diese Werte in datenpunkte und zieht die werte von der vorhandenen rolle ab und jede nacht um null uhr wird der tageszähler und der vlies maximal vebrauch wird resettet der bei mir bei 80 cm am tag liegt. -
@Aphofis
OK - es ist schon genauer - aber letztlich verstehe ich nicht wieso Du nicht probierst.Wenn Du das Blockly mal erklärst:
- Wenn Aqua Float 2 Aquarium Level geändert wurde (gehe mal davon aus, dass das ein Datenpunkt ist) - also nimmst Du eine ioBroker In Node auf den Datenpunkt Aqua Float 2 Aquarium Level.
- Dann zeigt das Blockly 2 Möglichkeiten, wenn der Datenpunkt true oder false ist. Also nimmst Du anschließend einen switch node - mit wahr oder falsch.
Dann schickst Du eine Textnachricht - an Deinen Bot - das weiß ich nicht wie Du das machst - ist das ein mail - keine Ahnung.
Du musst Dich immer fragen - was ist der Auslöser für meinen Flow - Blockly etc.
In diesem Fall ändert sich der Wert bei dem Aqua Float - und löst aus.Dann verarbeitest Du die Nachrichten und schreibst irgendetwas wieder aus Node-Red.
Bei dem 2. Flow sehe ich kein Auslöser - was ist der Trigger?
Wo ist das Problem, dass Du nicht weißt wie Du anfangen sollst, hast Du schon was gemacht? Sowie ich Dich verstanden habe, hast Du doch schon einige Blocklies in Node RED umgesetzt.
-
@mickym
Ich hatte nur Alexa flows erstellt.
Sprich ein Alexa Gerät erstellt das dann einen datenpunkt Schalter der mir wiederum dann über Alexa Daten ausgibt also Informationen über das aquarium.
Leider fehlt oft die Zeit um etwas zu erstellen. -
@Aphofis Ich habe nur ein Problem - dass ich wohl zu blöd bin zu begreifen, was Dich daran hindert einfach anzufangen. Ich habe Dir ja geschrieben, was ich machen würde. Ich hab eigentlich zumindest im Prinzip beschrieben, wie ich an die Sache heran gehen würde. Das ist wohl ähnlich wie in diesem Thread, wo ich nicht verstanden habe was das Problem war.
Ich habe Dir doch zumindest für den leichten Teil auch beschrieben wie ich ran gehen würde. Du hast mir zwar nicht bestätigt, dass der zu überwachenden Datenpunkt die sonoff.0.Aqua_Float_2.POWER ist, aber ich hatte es ja beschrieben.
Achte halt noch auf Deine Adaptereinstellungen, ob nur Text rauskommt oder nicht (s. Adaptereinstellung nodeRed ).
An dem Flow musst halt noch jeweils Deine Sirene an dem Switch verdrahten und die Nachricht wohin auch immer ausgeben.
Ich kann nicht mehr helfen - ihr müsst halt mal anfangen (hier kannst ja mal importieren:
[ { "id": "c40502fe.86d88", "type": "ioBroker in", "z": "60a5a341.20515c", "name": "", "topic": "sonoff.0.Aqua_Float_2.POWER", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 260, "y": 260, "wires": [ [ "7e29c8d7.248bb8" ] ] }, { "id": "bda30539.11ebe8", "type": "template", "z": "60a5a341.20515c", "name": "Meldung Wasserstand im Aquarium ist zu hoch", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "plain", "template": "Aquarium Alarm wurde ausgelöst\nAlarm ist eingeschaltet\nWasserstand im Aquarium ist zu hoch", "output": "str", "x": 780, "y": 300, "wires": [ [] ] }, { "id": "7e29c8d7.248bb8", "type": "switch", "z": "60a5a341.20515c", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 490, "y": 260, "wires": [ [ "d3a5ac44.7b8a5" ], [ "bda30539.11ebe8" ] ] }, { "id": "d3a5ac44.7b8a5", "type": "template", "z": "60a5a341.20515c", "name": "Systemläuft normal weiter", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "plain", "template": "Aquarium Alarm Max ist deaktiviert\nSystemläuft normal weiter", "output": "str", "x": 710, "y": 220, "wires": [ [] ] } ]
Du hast mit den Debug Nodes jederzeit die Möglichkeit nach jedem Node zu schauen ob was rauskommt und was das ist und dann kann man helfen, wenn was nicht geht.
Auch die Herangehensweise habe ich kurz umrissen:
- Trigger bestimmen und als Input für Deinen Flow festlegen (s. iobroker- IN Node).
- Logik und Flow design
- Ergebnis ausgeben - entweder in einem Datenpunkt - oder über Mail keine Ahnung was.
Ich habe keine Ahnung - was Dich daran hindert.
-
@mickym
Das sieht schon mal gut aus! Ich setze mich am We da mal dran und ich denke auch das ich ein schulungsvideo kaufen werde um node red zu lernen.
da ich alles was ich in blockly habe in node red haben will und ein paar javascript steuerungen und alles was ich in vis habe will ich dann auch nach und nach zu node red web ui rüber ziehen dann kommt javascript und vis adapter weg dann läuft alles über node red zumindest ist das der plan.
Vielen dank schon mal für deine mühe!!!