NEWS
[gelöst] Hilfe bei zeitsteuerung
-
Diese Fehler sind immer noch aktuell in der Log zu sehen:
javascript.0 2019-08-18 11:35:50.400 warn at TCP.onread (net.js:601:20) javascript.0 2019-08-18 11:35:50.400 warn at Socket.Readable.push (_stream_readable.js:208:10) javascript.0 2019-08-18 11:35:50.400 warn at readableAddChunk (_stream_readable.js:250:11) javascript.0 2019-08-18 11:35:50.399 warn at addChunk (_stream_readable.js:263:12) javascript.0 2019-08-18 11:35:50.399 warn at Socket.emit (events.js:211:7) javascript.0 2019-08-18 11:35:50.398 warn at emitOne (events.js:116:13) javascript.0 2019-08-18 11:35:50.398 warn at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20) javascript.0 2019-08-18 11:35:50.398 warn at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24) javascript.0 2019-08-18 11:35:50.397 warn at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31) javascript.0 2019-08-18 11:35:50.397 warn at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12) javascript.0 2019-08-18 11:35:50.396 warn at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3) javascript.0 2019-08-18 11:35:50.396 warn at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14 javascript.0 2019-08-18 11:35:50.396 warn at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5) javascript.0 2019-08-18 11:35:50.395 warn at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18 javascript.0 2019-08-18 11:35:50.395 warn at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10) javascript.0 2019-08-18 11:35:50.395 warn at WebSocket.emit (events.js:214:7) javascript.0 2019-08-18 11:35:50.394 warn at emitTwo (events.js:126:13) javascript.0 2019-08-18 11:35:50.394 warn at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14) javascript.0 2019-08-18 11:35:50.393 warn at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10) javascript.0 2019-08-18 11:35:50.393 warn at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8) javascript.0 2019-08-18 11:35:50.392 warn at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8) javascript.0 2019-08-18 11:35:50.392 warn at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20) javascript.0 2019-08-18 11:35:50.392 warn at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10) javascript.0 2019-08-18 11:35:50.391 warn at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14) javascript.0 2019-08-18 11:35:50.391 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20) javascript.0 2019-08-18 11:35:50.390 warn at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-08-18 11:35:50.390 warn at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16) javascript.0 2019-08-18 11:35:50.390 warn at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) javascript.0 2019-08-18 11:35:50.389 warn at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) javascript.0 2019-08-18 11:35:50.389 warn at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-08-18 11:35:50.388 warn at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8) javascript.0 2019-08-18 11:35:50.388 warn at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) javascript.0 2019-08-18 11:35:50.388 warn at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15) javascript.0 2019-08-18 11:35:50.387 warn at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12) javascript.0 2019-08-18 11:35:50.387 warn at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10) javascript.0 2019-08-18 11:35:50.386 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) javascript.0 2019-08-18 11:35:50.386 warn at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30) javascript.0 2019-08-18 11:35:50.386 warn at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3706:37) javascript.0 2019-08-18 11:35:50.385 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25) javascript.0 2019-08-18 11:35:50.385 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:38) javascript.0 2019-08-18 11:35:50.382 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20)
-
@Aphofis sagte:
Ja hatte das Script gestoppt dann Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1
geändert und gestartet aber script bleibt stummDer Wert des Datenpunktes (die Uhrzeit) muss nach dem Starten des Skriptes geändert werden.
-
@Aphofis sagte:
warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20)
Es gibt nur ein setState() im Skript (Zeile 14). Es kann also nur an dem Datenpunkt "rpi2.0.gpio.25.state" liegen. Ist er nicht vom Typ "Logikwert"(boolean) ?
-
@Aphofis sagte:
gestartet aber script bleibt stumm
Wenn die Uhrzeiten auch bei Skriptstart gesetzt werden sollen ohne dass sie erst geändert werden müssen, ist für jede Uhrzeit eine Funktion erforderlich. Hier habe ich es mal für 2 Uhrzeiten dargestellt:
-
@paul53
wäre es so korrekt???var clock_1, clock_2, Dauer, Uhrzeit_1, Uhrzeit_2, schedule_1, schedule_2, Intervall; /** * Beschreibe diese Funktion … */ function Futter() { Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val); setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, true); // Intervalldauer = Faktor Intervall = setInterval(function () { Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1; if (Dauer <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false); } }, 800); } /** * Beschreibe diese Funktion … */ function setUhr1(clock_1) { Uhrzeit_1 = clock_1.split(':'); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); } /** * Beschreibe diese Funktion … */ function setUhr2(clock_2) { Uhrzeit_2 = clock_2.split(':'); schedule_2 = schedule((Uhrzeit_2[1]).trim() + ' ' + (Uhrzeit_2[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); } // 1. Uhrzeit hh:mm setUhr1(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); setUhr1((obj.state ? obj.state.val : "")); }); // 2. Uhrzeit hh:mm setUhr2(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_2) {clearSchedule(schedule_2); schedule_2 = null;}})(); setUhr2((obj.state ? obj.state.val : "")); });
-
@Aphofis sagte:
wäre es so korrekt?
Ja, so sollte es funktionieren. Es ist zwar nicht nötig, unterschiedliche Variablen zu verwenden, schadet aber auch nicht. Nur die Zeitplan-Variablen (schedule_1, schedule_2) müssen unterschieden werden.
-
@paul53
Du bist mein Held!!! nur komisch ist fütterung 3 und 4 zucken einmal kurz und ich hatte zum testen die faktoren 1-4 auf 1-4 intervalle gestellt zum zeit stoppen ob erste dosierung 800 ms läuft 2 dosierung 1,6 sek. usw.
Doch 3 und 4 zuckt nur einmal kurz und bitte nicht vergessen.
Die sonoff.0.Aqua_Dosierer.POWER1 ist zum testen da der Dosierpumpen kasten noch nicht am system angeschlossen ist. Der Datenpunkt wird nachher geändert. Ich bin mir auch noch nicht ganz schlüssig, ob ich in den Haupt Controller Kasten ein ESP32 oder zwei ESP8266 einbaue und die schwimmschalter und die wichtigen Geräte wie vlies motor und Osmose Magnetventil darüber laufen lasse. Da mir die Pins am Pi nicht verlässlich genug sind. dann ändern sich einige Datenpunkte eh noch.
Desweiteren soll ja die dosierpumpen geschichte eine eigene steuerung bekommen die den selben aufbau hat wie die futterautomatik.
Was kann an 3 und 4 falsch sein !?var clock_1, clock_3, clock_2, clock_4, Dauer_1, Dauer_2, Dauer_3, Dauer_4, Uhrzeit_1, Uhrzeit_3, Uhrzeit_2, Uhrzeit_4, schedule_1, schedule_3, schedule_2, schedule_4, Intervall, Intervall2, Intervall3, Intervall4; /** * Beschreibe diese Funktion … */ function Futter_1() { Dauer_1 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall = setInterval(function () { Dauer_1 = (typeof Dauer_1 == 'number' ? Dauer_1 : 0) + -1; if (Dauer_1 <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); sendTo("telegram.0", "send", { text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join('')) }); } }, 800); } /** * Beschreibe diese Funktion … */ function Futter_2() { Dauer_2 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_2").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall2 = setInterval(function () { Dauer_2 = (typeof Dauer_2 == 'number' ? Dauer_2 : 0) + -1; if (Dauer_2 <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); sendTo("telegram.0", "send", { text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join('')) }); } }, 800); } /** * Beschreibe diese Funktion … */ function Futter_3() { Dauer_3 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_3").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall3 = setInterval(function () { Dauer_3 = (typeof Dauer_3 == 'number' ? Dauer_3 : 0) + -1; if (Dauer_3 <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); sendTo("telegram.0", "send", { text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join('')) }); } }, 800); } /** * Beschreibe diese Funktion … */ function Futter_4() { Dauer_4 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_3").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall4 = setInterval(function () { Dauer_4 = (typeof Dauer_4 == 'number' ? Dauer_4 : 0) + -1; if (Dauer_4 <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); sendTo("telegram.0", "send", { text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join('')) }); } }, 800); } /** * Beschreibe diese Funktion … */ function setUhr1(clock_1) { Uhrzeit_1 = clock_1.split(':'); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter_1(); }); } /** * Beschreibe diese Funktion … */ function setUhr2(clock_2) { Uhrzeit_2 = clock_2.split(':'); schedule_2 = schedule((Uhrzeit_2[1]).trim() + ' ' + (Uhrzeit_2[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter_2(); }); } /** * Beschreibe diese Funktion … */ function setUhr3(clock_3) { Uhrzeit_3 = clock_3.split(':'); schedule_3 = schedule((Uhrzeit_3[1]).trim() + ' ' + (Uhrzeit_3[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter_3(); }); } /** * Beschreibe diese Funktion … */ function setUhr4(clock_4) { Uhrzeit_4 = clock_4.split(':'); schedule_4 = schedule((Uhrzeit_4[1]).trim() + ' ' + (Uhrzeit_4[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter_4(); }); } // 1. Uhrzeit hh:mm setUhr1(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); setUhr1((obj.state ? obj.state.val : "")); }); // 2. Uhrzeit hh:mm setUhr2(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_2) {clearSchedule(schedule_2); schedule_2 = null;}})(); setUhr2((obj.state ? obj.state.val : "")); }); // 3. Uhrzeit hh:mm setUhr3(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_3").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_3', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_3) {clearSchedule(schedule_3); schedule_3 = null;}})(); setUhr3((obj.state ? obj.state.val : "")); }); // 4. Uhrzeit hh:mm setUhr4(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_4").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_4', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule_4) {clearSchedule(schedule_4); schedule_4 = null;}})(); setUhr4((obj.state ? obj.state.val : "")); });
-
@Aphofis
In den Funktionen Futter_2(), Futter_3() und Futter_4() wird das falsche Intervall gestoppt. -
Hab jetzt für jede Fütterung eine eigene Steuerung gemacht da es sonst zu unübersichtlich wird.
var clock, Dauer, Uhrzeit, schedule, Intervall; /** * Beschreibe diese Funktion … */ function Futter() { Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall = setInterval(function () { Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1; if (Dauer <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); } }, 800); } /** * Beschreibe diese Funktion … */ function setUhr(clock) { Uhrzeit = clock.split(':'); schedule = schedule((Uhrzeit[1]).trim() + ' ' + (Uhrzeit[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); } setUhr(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule) {clearSchedule(schedule); schedule = null;}})(); setUhr((obj.state ? obj.state.val : "")); });
-
@paul53
Ja hatte ich gesehen! Deswegen einzelne Steuerungen dann kommt es innerhalb der Variablen und Funktionen nicht zum irrtum. -
Habe jetzt alle vier steuerungen getestet und es werden alle so dosiert wie der intervall eingestellt ist mit dem Faktor und der angegebenen Uhrzeit!!!
Das Ergebnis für eine Dosierzeit ist:<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id=".S1.A,IoO_~]*nXiz`S*">clock</variable> <variable type="" id="u)9}*R19v/Qs3Rt)$4,W">Dauer</variable> <variable type="" id="Q7*Gw)fesXb}OUBj1{`;">Uhrzeit</variable> <variable type="undefined" id="schedule">schedule</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-2662" y="-1512"> <field name="NAME">Futter</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="9kptcK|P^2:}bKZXyZ8f"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> <value name="VALUE"> <block type="convert_tonumber" id="Tj/%:}sl8v})GfkG,zO:"> <value name="VALUE"> <block type="get_value" id=".,XzJi)h(f$9$~(`H$I!"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1</field> </block> </value> </block> </value> <next> <block type="control" id="%}iPzHc5tUi.(P1_MvRo"> <mutation delay_input="false"></mutation> <field name="OID">rpi2.0.gpio.25.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="SM.e~4#O=p?c/SXA|JX%"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="comment" id="KV;?nPX*TAluqR-qF9f+"> <field name="COMMENT">Intervalldauer = Faktor</field> <next> <block type="timeouts_setinterval" id="1+dIQ5^rJM?nkaI[6WN}"> <field name="NAME">Intervall</field> <field name="INTERVAL">700</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="math_change" id="!*zN$DgW0K=76_[.1*]X"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> <value name="DELTA"> <shadow type="math_number" id="e_D7=bSd65:`]Q{qWSZD"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="controls_if" id="=/[;A-M~WF?KXEx~W0z?"> <value name="IF0"> <block type="logic_compare" id=";qY,PC)CB~{1#4iVHaj,"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="2k;4KgTu$A3wF)@V`ulP"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> </block> </value> <value name="B"> <block type="math_number" id="?bnhw6qVm`$}~NCKlw2P"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=";dz/hf`o4]4(2pDSH)I3"> <field name="NAME">Intervall</field> <next> <block type="control" id="SeaFI}%xNdyzRbLV,6HN"> <mutation delay_input="false"></mutation> <field name="OID">rpi2.0.gpio.25.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1_[)-;0}n;LMH}tCmhi:"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-2662" y="-1162"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="Rmv(=Tg+:6/}8B(?~nI#"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1</field> </block> </value> <next> <block type="on_ext" id="X}o|@dWx#6!BiHho8e)o"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dXPC7;GFYg(#~T78}@mB"> <field name="oid">Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1</field> </shadow> </value> <statement name="STATEMENT"> <block type="schedule_clear" id="nt-N]NBg?,fY%.)hYJ4D"> <field name="NAME">schedule</field> <next> <block type="procedures_callnoreturn" id="yvhs4uL6uUxnW!c$UF/{"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="SfI,}teG@`dg#_g%Zp#:"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="fK5kmsd)LwZ7|P2xa^9U" x="-2387" y="-1062"> <mutation> <arg name="clock" varid=".S1.A,IoO_~]*nXiz`S*"></arg> </mutation> <field name="NAME">setUhr</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="aOx5`vU/=f;#)rmrW[|7"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> <value name="VALUE"> <block type="lists_split" id="XnqDHu5JM{#WIs8~S,M-"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="4`T;i0Hg@f?=Gq^,J6.~"> <field name="VAR" id=".S1.A,IoO_~]*nXiz`S*" variabletype="">clock</field> </block> </value> <value name="DELIM"> <shadow type="text" id="]v!xP8l3r?{D;(m_QyNL"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="schedule_create" id="6x%+6G+PaD[w*{FuFm=K"> <field name="NAME">schedule</field> <value name="SCHEDULE"> <shadow type="field_cron" id="m4F75|F$}NA}2;e/avWa"> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="q6(U2T{7uu}mYF)9QMKr"> <mutation seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id=")8oVcqHY5re?jv#0QsO8"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text" id="GfQ!DoE|TZTliq*)8,@j"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text" id="S6hVuxIjcYJMlS^~:zE5"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text" id="NP{*G*@dWEP9M9mNlZFF"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="-0gZ}|H=8/}~St}d%rl;"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8U#M]$`MHq(~A]~(v{2R"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=")zFTxG~Gpp`eZw8r2,8w"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="MINUTES"> <shadow type="text" id="I(LCmtz/NJ%:Tvp,*;JL"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="0([.HRKLsVPA.X:jwVI@"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8#E0pY-UET(BcZH]~qB:"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=";UF-jK:^cV#hui?GDL/V"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="/6qq{?/)+*vm:UnA$x,0"> <mutation name="Futter"></mutation> </block> </statement> </block> </next> </block> </statement> </block> </xml> <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id=".S1.A,IoO_~]*nXiz`S*">clock</variable> <variable type="" id="u)9}*R19v/Qs3Rt)$4,W">Dauer</variable> <variable type="" id="Q7*Gw)fesXb}OUBj1{`;">Uhrzeit</variable> <variable type="undefined" id="schedule">schedule</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-2662" y="-1512"> <field name="NAME">Futter</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="9kptcK|P^2:}bKZXyZ8f"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> <value name="VALUE"> <block type="convert_tonumber" id="Tj/%:}sl8v})GfkG,zO:"> <value name="VALUE"> <block type="get_value" id=".,XzJi)h(f$9$~(`H$I!"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1</field> </block> </value> </block> </value> <next> <block type="control" id="%}iPzHc5tUi.(P1_MvRo"> <mutation delay_input="false"></mutation> <field name="OID">rpi2.0.gpio.25.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="SM.e~4#O=p?c/SXA|JX%"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="comment" id="KV;?nPX*TAluqR-qF9f+"> <field name="COMMENT">Intervalldauer = Faktor</field> <next> <block type="timeouts_setinterval" id="1+dIQ5^rJM?nkaI[6WN}"> <field name="NAME">Intervall</field> <field name="INTERVAL">700</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="math_change" id="!*zN$DgW0K=76_[.1*]X"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> <value name="DELTA"> <shadow type="math_number" id="e_D7=bSd65:`]Q{qWSZD"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="controls_if" id="=/[;A-M~WF?KXEx~W0z?"> <value name="IF0"> <block type="logic_compare" id=";qY,PC)CB~{1#4iVHaj,"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="2k;4KgTu$A3wF)@V`ulP"> <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" variabletype="">Dauer</field> </block> </value> <value name="B"> <block type="math_number" id="?bnhw6qVm`$}~NCKlw2P"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=";dz/hf`o4]4(2pDSH)I3"> <field name="NAME">Intervall</field> <next> <block type="control" id="SeaFI}%xNdyzRbLV,6HN"> <mutation delay_input="false"></mutation> <field name="OID">rpi2.0.gpio.25.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1_[)-;0}n;LMH}tCmhi:"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-2662" y="-1162"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="Rmv(=Tg+:6/}8B(?~nI#"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1</field> </block> </value> <next> <block type="on_ext" id="X}o|@dWx#6!BiHho8e)o"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dXPC7;GFYg(#~T78}@mB"> <field name="oid">Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1</field> </shadow> </value> <statement name="STATEMENT"> <block type="schedule_clear" id="nt-N]NBg?,fY%.)hYJ4D"> <field name="NAME">schedule</field> <next> <block type="procedures_callnoreturn" id="yvhs4uL6uUxnW!c$UF/{"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="SfI,}teG@`dg#_g%Zp#:"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="fK5kmsd)LwZ7|P2xa^9U" x="-2387" y="-1062"> <mutation> <arg name="clock" varid=".S1.A,IoO_~]*nXiz`S*"></arg> </mutation> <field name="NAME">setUhr</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="aOx5`vU/=f;#)rmrW[|7"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> <value name="VALUE"> <block type="lists_split" id="XnqDHu5JM{#WIs8~S,M-"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="4`T;i0Hg@f?=Gq^,J6.~"> <field name="VAR" id=".S1.A,IoO_~]*nXiz`S*" variabletype="">clock</field> </block> </value> <value name="DELIM"> <shadow type="text" id="]v!xP8l3r?{D;(m_QyNL"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="schedule_create" id="6x%+6G+PaD[w*{FuFm=K"> <field name="NAME">schedule</field> <value name="SCHEDULE"> <shadow type="field_cron" id="m4F75|F$}NA}2;e/avWa"> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="q6(U2T{7uu}mYF)9QMKr"> <mutation seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id=")8oVcqHY5re?jv#0QsO8"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text" id="GfQ!DoE|TZTliq*)8,@j"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text" id="S6hVuxIjcYJMlS^~:zE5"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text" id="NP{*G*@dWEP9M9mNlZFF"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="-0gZ}|H=8/}~St}d%rl;"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8U#M]$`MHq(~A]~(v{2R"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=")zFTxG~Gpp`eZw8r2,8w"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="MINUTES"> <shadow type="text" id="I(LCmtz/NJ%:Tvp,*;JL"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="0([.HRKLsVPA.X:jwVI@"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8#E0pY-UET(BcZH]~qB:"> <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=";UF-jK:^cV#hui?GDL/V"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="/6qq{?/)+*vm:UnA$x,0"> <mutation name="Futter"></mutation> </block> </statement> </block> </next> </block> </statement> </block> </xml>
var clock, Dauer, Uhrzeit, schedule, Intervall; /** * Beschreibe diese Funktion … */ function Futter() { Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").val); setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, true); // Intervalldauer = Faktor Intervall = setInterval(function () { Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1; if (Dauer <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false); } }, 700); } /** * Beschreibe diese Funktion … */ function setUhr(clock) { Uhrzeit = clock.split(':'); schedule = schedule((Uhrzeit[1]).trim() + ' ' + (Uhrzeit[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); } setUhr(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val); on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule) {clearSchedule(schedule); schedule = null;}})(); setUhr((obj.state ? obj.state.val : "")); });
Datenpunkte:
-
Es ist echt Spitze!!!!
Egal welches Problem ich dir auch vor die Füße Werfe, du findest eine Lösung!!!
Vielen vielen Dank.
Ich würde ja glatt sagen um meine Strömungspumpen geschichte zum laufen zu bekommen, würde ich dir dafür sogar Geld geben. -
@Aphofis
Und warum gibt es keine positive(n) Bewertung(en)? -
@Homoran
Wenn du mir verrätst wo!
ICh suche das schon die ganze Zeit aber finde die option nicht. -
wo kann ich denn am sinnvollsten eine Telegram Nachricht einbauen das dosiert wurde, ohne das die Meldung alle x sek geschickt wird!? Hatte einen Telegram block in den trigger nach dem stoppen des intervalls eingebaut doch dann kam alle paar sek eine meldung.
-
@Aphofis sagte:
wo kann ich denn am sinnvollsten eine Telegram Nachricht einbauen das dosiert wurde
-
@Aphofis sagte in [gelöst] Hilfe bei zeitsteuerung:
aber finde die option nicht.
rechts unter jedem Beitrag gibt es einen Pfeil rauf für postive und einen Pfeil runter für negative Bewertungen des Beitrags
Dazwischen steht der Wert der bisherigen Bewertungen
-
@Homoran
Danke! Das muss man ja wissen.
Habe auch keine Funktionen gefunden wie was im Forum gemacht wird sonst hätte ich selbst was gefunden.
Vielen Dank -
@paul53 sagte in [gelöst] Hilfe bei zeitsteuerung:
@Aphofis sagte:
wo kann ich denn am sinnvollsten eine Telegram Nachricht einbauen das dosiert wurde
Danke!!!
-
@paul53
Das war jetzt eben etwas Spukie!!!
Der Dosierpumpenkasten wurden alle vier angeschlossenen Lösungen gleichzeitig aktiviert und auch nur die vier von 8 möglichen Pumpen.
Alarm Max Sirene ist angesprungen.
Dann habe ich schnell den Dosierpumpen Kasten vom Strom getrennt und die Schläuche von den Kanistern abgenommen.
Pump Verteiler in einem Meßbecher gehängt pumpen wieder an den Strom geklemmt und ausgeschaltet.
Dazu sagte dann alexa auch noch ich weiß nicht was schief gelaufen ist.
Entweder ich habe Geister im Haus oder ich bin bekloppt.
Kann man die Steuerung soweit verfeinern das nur das gepumpt werden kann was auch aus dem Datenpunkten Faktoren genommen wird für die jeweilige Pump dosierung.
Da ja anscheinend ein kommunikations Fehler bestand.
Der Pi oder iobroker sind nihct neu gestartet.
In der Log gab es keinen eintrag das irgendwas dosiert wurde.
Momentane Steuerung sieht so aus.<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="snfLpaddd`4/)Uy^kLsW">clock</variable> <variable type="" id=")bAD/?%{s?q44~ZGe7{B">Dauer</variable> <variable type="" id="iQ`n%m6-[L_B242P|7rW">Uhrzeit</variable> <variable type="undefined" id="schedule">schedule</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-3287" y="-1587"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="Rmv(=Tg+:6/}8B(?~nI#"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1</field> </block> </value> <next> <block type="on_ext" id="X}o|@dWx#6!BiHho8e)o"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="dXPC7;GFYg(#~T78}@mB"> <field name="oid">Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1</field> </shadow> </value> <statement name="STATEMENT"> <block type="schedule_clear" id="nt-N]NBg?,fY%.)hYJ4D"> <field name="NAME">schedule</field> <next> <block type="procedures_callnoreturn" id="yvhs4uL6uUxnW!c$UF/{"> <mutation name="setUhr"> <arg name="clock"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="SfI,}teG@`dg#_g%Zp#:"> <field name="ATTR">state.val</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-3287" y="-1312"> <field name="NAME">Lösung_1</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="9kptcK|P^2:}bKZXyZ8f"> <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field> <value name="VALUE"> <block type="convert_tonumber" id="Tj/%:}sl8v})GfkG,zO:"> <value name="VALUE"> <block type="get_value" id=".,XzJi)h(f$9$~(`H$I!"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_2</field> </block> </value> </block> </value> <next> <block type="control" id="%}iPzHc5tUi.(P1_MvRo"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Dosierer.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="SM.e~4#O=p?c/SXA|JX%"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="comment" id="KV;?nPX*TAluqR-qF9f+"> <field name="COMMENT">Intervalldauer = Faktor</field> <next> <block type="timeouts_setinterval" id="1+dIQ5^rJM?nkaI[6WN}"> <field name="NAME">Intervall</field> <field name="INTERVAL">806</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="math_change" id="!*zN$DgW0K=76_[.1*]X"> <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field> <value name="DELTA"> <shadow type="math_number" id="e_D7=bSd65:`]Q{qWSZD"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="controls_if" id="=/[;A-M~WF?KXEx~W0z?"> <value name="IF0"> <block type="logic_compare" id=";qY,PC)CB~{1#4iVHaj,"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="2k;4KgTu$A3wF)@V`ulP"> <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field> </block> </value> <value name="B"> <block type="math_number" id="?bnhw6qVm`$}~NCKlw2P"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=";dz/hf`o4]4(2pDSH)I3"> <field name="NAME">Intervall</field> <next> <block type="control" id="SeaFI}%xNdyzRbLV,6HN"> <mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Aqua_Dosierer.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1_[)-;0}n;LMH}tCmhi:"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="N)tO@5NbhTtUeW(4MtBo"> <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="R8/w|SSi{cj7,4lDKwe["> <field name="TEXT">text</field> </shadow> <block type="text_join" id="Jm8OpAELrwceT@g35lf{"> <mutation items="4"></mutation> <value name="ADD0"> <block type="text" id="CM1{{J8!7VItB4D8j3B8"> <field name="TEXT">Triton Lösung 1 </field> </block> </value> <value name="ADD1"> <block type="text_newline" id="o]Q2(%iBw$/9I:?8IyZw"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="get_value" id="f]$r3U;[8ohFZ.8I[asH"> <field name="ATTR">val</field> <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_2</field> </block> </value> <value name="ADD3"> <block type="text" id="Jxd~DTQ,y3LUt8En2!}Y"> <field name="TEXT"> ml dosiert</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="fK5kmsd)LwZ7|P2xa^9U" x="-3287" y="-762"> <mutation> <arg name="clock" varid="snfLpaddd`4/)Uy^kLsW"></arg> </mutation> <field name="NAME">setUhr</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="variables_set" id="aOx5`vU/=f;#)rmrW[|7"> <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field> <value name="VALUE"> <block type="lists_split" id="XnqDHu5JM{#WIs8~S,M-"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="4`T;i0Hg@f?=Gq^,J6.~"> <field name="VAR" id="snfLpaddd`4/)Uy^kLsW" variabletype="">clock</field> </block> </value> <value name="DELIM"> <shadow type="text" id="]v!xP8l3r?{D;(m_QyNL"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="schedule_create" id="6x%+6G+PaD[w*{FuFm=K"> <field name="NAME">schedule</field> <value name="SCHEDULE"> <shadow type="field_cron" id="m4F75|F$}NA}2;e/avWa"> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="q6(U2T{7uu}mYF)9QMKr"> <mutation seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id=")8oVcqHY5re?jv#0QsO8"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text" id="GfQ!DoE|TZTliq*)8,@j"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text" id="S6hVuxIjcYJMlS^~:zE5"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text" id="NP{*G*@dWEP9M9mNlZFF"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="-0gZ}|H=8/}~St}d%rl;"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8U#M]$`MHq(~A]~(v{2R"> <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=")zFTxG~Gpp`eZw8r2,8w"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="MINUTES"> <shadow type="text" id="I(LCmtz/NJ%:Tvp,*;JL"> <field name="TEXT">*</field> </shadow> <block type="lists_getIndex" id="0([.HRKLsVPA.X:jwVI@"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="8#E0pY-UET(BcZH]~qB:"> <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field> </block> </value> <value name="AT"> <block type="math_number" id=";UF-jK:^cV#hui?GDL/V"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="/6qq{?/)+*vm:UnA$x,0"> <mutation name="Lösung_1"></mutation> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Vielleicht das die verbindung dem Gerät sagt so lange false bis dann der Uhrzeit trigger eine Pumpe auslöst.