NEWS
[gelöst] Hilfe bei zeitsteuerung
-
@Aphofis sagte in Hilfe bei zeitsteuerung:
javascript.0 2019-08-15 00:14:30.418 warn getState "Aqua_Control.0.Aquarium_ausschalten" not found (3)
Nicht existierender Datenpunkt ? Wo wird er verwendet ?
-
@paul53
Den hatte ich schon korrigiert!
Danach liefen die Zähler Steuerungen immer noch nicht und die dosier Steuerung Haut die JavaScript Fehler in die log -
@Aphofis Poste bitte den Javascript-Code ohne letzte Zeile, da ich sonst mit der Fehlermeldung zu Zeile 27 nichts anfangen kann.
Die Konvertierung des "multiplikator" nach Zahl ist erforderlich.
-
var Dauer, Intervall, Uhrzeit_1, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4; /** * Beschreibe diese Funktion … */ function Futter() { Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val); setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true); // Intervalldauer = Faktor Intervall = setInterval(function () { Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1; console.log(Dauer); if (Dauer <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); } setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false); }, 800); } console.log(typeof getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val); Futter(); // 1. Uhrzeit hh:mm on({id: 'sonoff.0.Aqua_Dosierer.POWER1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':'); (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); }); // 3. Uhrzeit hh:mm // 4. Uhrzeit hh:mm
-
@Aphofis
Der Datenpunkt 'sonoff.0.Aqua_Dosierer.POWER1' (s. Zeile 24) enthält keinen String, weshalb .split(':') in Zeile 27 nicht ausgeführt werden kann. Setze endlich die richtige Datenpunkt-ID ein ! -
@paul53
Datenpunkt gesetztvar Dauer, Intervall, Uhrzeit_1, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4; /** * 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; console.log(Dauer); if (Dauer <= 0) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); } setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false); }, 800); } console.log(typeof getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val); Futter(); // 1. Uhrzeit hh:mm on({id: 'rpi2.0.gpio.25.state', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':'); (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); }); // 3. Uhrzeit hh:mm // 4. Uhrzeit hh:mm
Dosierung läuft und zählt die dosierzeit vom eingestellten Datenpunkt wert runter und stoppt dann.
Doch der fehler ist immer noch geblieben.00:17:53.823 error javascript.0 at Object.<anonymous> (script.js.Test_Blocklys.test:27:48)
-
@Aphofis sagte:
Doch der fehler ist immer noch geblieben.
on({id: 'rpi2.0.gpio.25.state', change: "ne"}, function (obj) {
Das ist auch der falsche Datenpunkt ! Der richtige ist
on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
, steht übrigens im Kommentar darüber (Zeile 23).
-
@paul53
Meinst du so ?var Dauer, Uhrzeit_1, Intervall, schedule_1; /** * 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); } Futter(); // 1. Uhrzeit hh:mm on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Uhrzeit_1 = (obj.state ? obj.state.val : "").join(':'); (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); });
Sobald ich dann die Steuerung speichere läuft die eingestellte multiplikator Zeit los
Die Uhrzeit aus dem Datenpunkt wird ignoriert.
und in der Ausgabe kommt immer noch die Fehlermeldung:
01:35:37.695 error javascript.0 at Object.<anonymous> (script.js.Test_Blocklys.test:25:48) -
@Aphofis sagte:
Sobald ich dann die Steuerung speichere läuft die eingestellte multiplikator Zeit los
Vor dem Kommentar ist noch der Testaufruf (Zeile 20) der Funktion Futter() enthalten, der nach erfolgreichem Test der Funktion wieder entfernt werden muss.
Zeile 25: Wieso steht da plötzlich ?
Uhrzeit_1 = (obj.state ? obj.state.val : "").join(':');
Richtig ist
Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':');
-
@paul53
Das weiß ich alledings auch nicht! Habe ich geändert doch die steuerung schweigt immer noch still. -
@Aphofis sagte:
die steuerung schweigt immer noch still.
Hast Du mal eine Uhrzeit eingtragen (geändert nach Skriptstart), die Du beobachten kannst ? Die Schedules werden erst nach Änderung der Uhrzeiten gesetzt.
-
@paul53
Ja hatte das Script gestoppt dann Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1
geändert und gestartet aber script bleibt stummvar Dauer, Uhrzeit_1, Intervall, schedule_1; /** * 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); } Futter(); // 1. Uhrzeit hh:mm on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':'); (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})(); schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { Futter(); }); });
-
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.