NEWS
Schedule jede Stunde
-
Hallo ich habe folgendes Vorhaben: Im Ferienhaus steht ein Iobroker der mir über Telegram Temperatur Werte in die Heimat übermitteln soll.
Ich habe 7 Zigbee Geräte die einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen. Mein Ansatz sieht wie folgt aus:/*****Giethoorn sendet Temperaturen an Castrop ***************** ** März 2021 ** ** ** erstellt: 10.03.21 ** geä: ***********************************************************************/ const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1 const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2 const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3 const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4 const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5 const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6 const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7 //schedule("0 */1 * * *", function () { //1 schedule("1 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TA " + getState(id_TA).val) }); log("TA " + getState(id_TK).val); //2 schedule("2 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TK " + getState(id_TK).val) }); log("TK " + getState(id_TN).val); //3 schedule("3 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TN " + getState(id_TN).val) }); log("TN " + getState(id_TS).val); //4 schedule("4 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TS " + getState(id_TS).val) }); log("TS " + getState(id_TS).val); //5 schedule("5 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TW " + getState(id_TW).val) }); log("TW " + getState(id_TW).val); //6 schedule("6 * * * *", function () { sendTo('telegram.0', 'send', { text: ("OS " + getState(id_OS).val) }); log("OS " + getState(id_OS).val); //7 schedule("7 * * * *", function () { sendTo('telegram.0', 'send', { text: ("IS " + getState(id_IS).val) }); log("IS " + getState(id_IS).val); }); }); }); }); }); }); }); //});In der Heimat empfängt der Iobroker die Daten nach diesem Script:
/*****Castrop empfängt Daten aus Giethoorn ***************** ** März 2021 ** Telegram-Adapter, ** ** ** geändert:09.03.21 ************************************************************/ const id_req = "telegram.0.communicate.request"; on({ id: id_req, change: "any" }, function (obj) { var value = getState(id_req).val; var raum = value.substr(11, 2); var wert = value.substring(value.length - 5) log("Telegraminhalt "+value); log("Messwert "+wert); if ((raum == "IS") || (raum == "OS")) { wert=value.substr(13,4); log("LUX " +wert); } log("Gerät " +raum); if (raum === "TA") { setState("javascript.3.Giethoorn.Temp.TA", wert); } if (raum === "TW") { setState("javascript.3.Giethoorn.Temp.TW", wert); } if (raum === "TK") { setState("javascript.3.Giethoorn.Temp.TK", wert); } if (raum === "TS") { setState("javascript.3.Giethoorn.Temp.TS", wert); } if (raum === "TN") { setState("javascript.3.Giethoorn.Temp.TN", wert); } if (raum === "OS") { setState("javascript.3.Giethoorn.Daten.OSLux", wert); } if (raum === "IS") { setState("javascript.3.Giethoorn.Daten.ISLux", wert); } });Wie würdet ihr das Vorhaben lösen?
Gruß
Michael -
Hallo ich habe folgendes Vorhaben: Im Ferienhaus steht ein Iobroker der mir über Telegram Temperatur Werte in die Heimat übermitteln soll.
Ich habe 7 Zigbee Geräte die einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen. Mein Ansatz sieht wie folgt aus:/*****Giethoorn sendet Temperaturen an Castrop ***************** ** März 2021 ** ** ** erstellt: 10.03.21 ** geä: ***********************************************************************/ const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1 const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2 const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3 const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4 const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5 const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6 const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7 //schedule("0 */1 * * *", function () { //1 schedule("1 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TA " + getState(id_TA).val) }); log("TA " + getState(id_TK).val); //2 schedule("2 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TK " + getState(id_TK).val) }); log("TK " + getState(id_TN).val); //3 schedule("3 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TN " + getState(id_TN).val) }); log("TN " + getState(id_TS).val); //4 schedule("4 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TS " + getState(id_TS).val) }); log("TS " + getState(id_TS).val); //5 schedule("5 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TW " + getState(id_TW).val) }); log("TW " + getState(id_TW).val); //6 schedule("6 * * * *", function () { sendTo('telegram.0', 'send', { text: ("OS " + getState(id_OS).val) }); log("OS " + getState(id_OS).val); //7 schedule("7 * * * *", function () { sendTo('telegram.0', 'send', { text: ("IS " + getState(id_IS).val) }); log("IS " + getState(id_IS).val); }); }); }); }); }); }); }); //});In der Heimat empfängt der Iobroker die Daten nach diesem Script:
/*****Castrop empfängt Daten aus Giethoorn ***************** ** März 2021 ** Telegram-Adapter, ** ** ** geändert:09.03.21 ************************************************************/ const id_req = "telegram.0.communicate.request"; on({ id: id_req, change: "any" }, function (obj) { var value = getState(id_req).val; var raum = value.substr(11, 2); var wert = value.substring(value.length - 5) log("Telegraminhalt "+value); log("Messwert "+wert); if ((raum == "IS") || (raum == "OS")) { wert=value.substr(13,4); log("LUX " +wert); } log("Gerät " +raum); if (raum === "TA") { setState("javascript.3.Giethoorn.Temp.TA", wert); } if (raum === "TW") { setState("javascript.3.Giethoorn.Temp.TW", wert); } if (raum === "TK") { setState("javascript.3.Giethoorn.Temp.TK", wert); } if (raum === "TS") { setState("javascript.3.Giethoorn.Temp.TS", wert); } if (raum === "TN") { setState("javascript.3.Giethoorn.Temp.TN", wert); } if (raum === "OS") { setState("javascript.3.Giethoorn.Daten.OSLux", wert); } if (raum === "IS") { setState("javascript.3.Giethoorn.Daten.ISLux", wert); } });Wie würdet ihr das Vorhaben lösen?
Gruß
Michael@michihorn sagte: einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen.
Die Schedules darf man nicht ineinander verschachteln. Ordne sie einfach untereinander an.
-
@michihorn sagte: einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen.
Die Schedules darf man nicht ineinander verschachteln. Ordne sie einfach untereinander an.
@paul53 Hab ich gemacht:
/*****Giethoorn sendet Temperaturen an Castrop ***************** ** März 2021 ** ** ** erstellt: 10.03.21 ** geä: 11.03.21 ***********************************************************************/ //Temperatur Sensoren-------------------------------------------- const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1 const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2 const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3 const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4 const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5 //PIR-------------------------------------------------------------- const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6 const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7 //1 schedule("1 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TA " + getState(id_TA).val) }); log("TA " + getState(id_TA).val); //2 }); schedule("2 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TK " + getState(id_TK).val) }); log("TK " + getState(id_TK).val); }); //3 schedule("3 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TN " + getState(id_TN).val) }); log("TN " + getState(id_TN).val); }); //4 schedule("4 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TS " + getState(id_TS).val) }); log("TS " + getState(id_TS).val); }); //5 schedule("5 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TW " + getState(id_TW).val) }); log("TW " + getState(id_TW).val); }); //6 schedule("6 * * * *", function () { sendTo('telegram.0', 'send', { text: ("OS " + getState(id_OS).val) }); log("OS " + getState(id_OS).val); }); //7 schedule("7 * * * *", function () { sendTo('telegram.0', 'send', { text: ("IS " + getState(id_IS).val) }); log("IS " + getState(id_IS).val); });nur jetzt werden mir jede Menge Telegrame von jedem Gerät geschickt. Was mache ich noch falsch? Der Plan war ja, 7 Telegrame zu jeder Stunde, habe gerade 454 Telegramme bekommen.
-
@paul53 Hab ich gemacht:
/*****Giethoorn sendet Temperaturen an Castrop ***************** ** März 2021 ** ** ** erstellt: 10.03.21 ** geä: 11.03.21 ***********************************************************************/ //Temperatur Sensoren-------------------------------------------- const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1 const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2 const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3 const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4 const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5 //PIR-------------------------------------------------------------- const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6 const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7 //1 schedule("1 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TA " + getState(id_TA).val) }); log("TA " + getState(id_TA).val); //2 }); schedule("2 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TK " + getState(id_TK).val) }); log("TK " + getState(id_TK).val); }); //3 schedule("3 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TN " + getState(id_TN).val) }); log("TN " + getState(id_TN).val); }); //4 schedule("4 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TS " + getState(id_TS).val) }); log("TS " + getState(id_TS).val); }); //5 schedule("5 * * * *", function () { sendTo('telegram.0', 'send', { text: ("TW " + getState(id_TW).val) }); log("TW " + getState(id_TW).val); }); //6 schedule("6 * * * *", function () { sendTo('telegram.0', 'send', { text: ("OS " + getState(id_OS).val) }); log("OS " + getState(id_OS).val); }); //7 schedule("7 * * * *", function () { sendTo('telegram.0', 'send', { text: ("IS " + getState(id_IS).val) }); log("IS " + getState(id_IS).val); });nur jetzt werden mir jede Menge Telegrame von jedem Gerät geschickt. Was mache ich noch falsch? Der Plan war ja, 7 Telegrame zu jeder Stunde, habe gerade 454 Telegramme bekommen.
@michihorn sagte: habe gerade 454 Telegramme bekommen.
Die waren wohl noch im Puffer aus der Verschachtelung.
@michihorn sagte in Schedule jede Stunde:
Der Plan war ja, 7 Telegrame zu jeder Stunde,
Das sollte jetzt so erfolgen.
-
@michihorn sagte: habe gerade 454 Telegramme bekommen.
Die waren wohl noch im Puffer aus der Verschachtelung.
@michihorn sagte in Schedule jede Stunde:
Der Plan war ja, 7 Telegrame zu jeder Stunde,
Das sollte jetzt so erfolgen.
-
@michihorn sagte: ich habe bereits 155 Telgrams
Auch so viele Log-Einträge aus dem Skript?
-
@michihorn sagte: ich habe bereits 155 Telgrams
Auch so viele Log-Einträge aus dem Skript?
-
@paul53 Jede Menge, aktuell steht folgendes:
(8008) Cannot send message [chatId - 702589553]: Error: ETELEGRAM: 429 Too Many Requests: retry after 3@michihorn
Starte mal ioBroker neu. -
@michihorn
Starte mal ioBroker neu.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden