NEWS
Neuer Javascript Adapter
-
Hallo bislang habe ich den JavaScript-Adapter kleiner Version 8 genutzt.
Habe aktuell auf einer Testmaschine den 8.8.3 installiert, nun kommt folgender Warnhinweis:javascript.0 22:30:48.991 info Stopping script script.js.HAUS.Klingel.Klingel_Haustuer javascript.0 22:30:49.096 info Start JavaScript script.js.HAUS.Klingel.Klingel_Haustuer (Javascript/js) javascript.0 22:30:49.135 warn script.js.HAUS.Klingel.Klingel_Haustuer: request package is deprecated - please use httpGet (or a stable lib like axios) instead! javascript.0 22:30:49.146 info script.js.HAUS.Klingel.Klingel_Haustuer: registered 2 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptionsGruß
Michael
Da weiß ich nicht was ich ändern soll. Anbei hänge ich das Script./*****Haustür Klingel******************************************************************* ** August 2020 ** RING, Kamera ** ** Klingelsperre 80 Sekunden ** geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24 *****************************************************************************************/ const idKlingel = "ring.0.doorbell_90474299.Events.doorbell" const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler" const id_sperre = "0_userdata.0.Haus.Klingel.Sperre" const id_people = "0_userdata.0.System.CamNr" const id_rp5 = "ping.0.debianiob.RP5.alive" var anzahlbesucher var request = require('request'); var fs = require('fs'); on({ id: idKlingel, change: "any" }, function (obj) { //if ((obj.state.val == true) && getState(id_sperre).val == false && getState(id_people).val == 3){ if ((obj.state.val == true) && getState(id_sperre).val == false) { setState(id_sperre, true) setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss"); setState(id_Ereignis, ereignis_text.toString()); log('Klingel Auslöser: ' + formatDate(new Date(obj.state.ts), "hh:mm:ss")); request({ url: "http://192.168.178.7xx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxxxxx", encoding: null, }, (error, response, body) => { if (!error && body) { writeFile("vis.0", "/klingelbild/Klingel.jpg", body); } } ); } setStateDelayed(id_sperre, false, 80000) }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); //Ereignisse zurücksetzen on({ time: { hour: 23, minute: 59 } }, function () { setState(id_Zähler, 0); setState(id_Ereignis, ""); setState(id_Ereignisliste, ""); anzahlbesucher = 0; log("*****Klingelereignisse gelöscht***** "); });So funktioniert es mit dem neuen Javascript-Adapter:
/*****Haustür Klingel****************************************************************************** ** August 2020 ** RING, Kamera ** ** ** geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24, 06.12.24 ***************************************************************************************************/ const idKlingel = "ring.0.doorbell_90474299.Events.doorbell" const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler" var anzahlbesucher on({ id: idKlingel, change: "any" }, function (obj) { if (obj.state.val == true) { setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss"); setState(id_Ereignis, ereignis_text.toString()); httpGet('http://192.168.178.1xx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxx', { responseType: 'arraybuffer' }, async (err, response) => { if (!err) { writeFile('vis.0', '/klingelbild/Klingel.jpg', response.data, (err) => { if (err) { console.error(err); } }); } else { console.error(err); } }); } }); function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); //Ereignisse zurücksetzen on({ time: { hour: 23, minute: 59 } }, function () { setState(id_Zähler, 0); setState(id_Ereignis, ""); setState(id_Ereignisliste, ""); anzahlbesucher = 0; log("*****Klingelereignisse gelöscht***** "); }); -
Hallo bislang habe ich den JavaScript-Adapter kleiner Version 8 genutzt.
Habe aktuell auf einer Testmaschine den 8.8.3 installiert, nun kommt folgender Warnhinweis:javascript.0 22:30:48.991 info Stopping script script.js.HAUS.Klingel.Klingel_Haustuer javascript.0 22:30:49.096 info Start JavaScript script.js.HAUS.Klingel.Klingel_Haustuer (Javascript/js) javascript.0 22:30:49.135 warn script.js.HAUS.Klingel.Klingel_Haustuer: request package is deprecated - please use httpGet (or a stable lib like axios) instead! javascript.0 22:30:49.146 info script.js.HAUS.Klingel.Klingel_Haustuer: registered 2 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptionsGruß
Michael
Da weiß ich nicht was ich ändern soll. Anbei hänge ich das Script./*****Haustür Klingel******************************************************************* ** August 2020 ** RING, Kamera ** ** Klingelsperre 80 Sekunden ** geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24 *****************************************************************************************/ const idKlingel = "ring.0.doorbell_90474299.Events.doorbell" const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler" const id_sperre = "0_userdata.0.Haus.Klingel.Sperre" const id_people = "0_userdata.0.System.CamNr" const id_rp5 = "ping.0.debianiob.RP5.alive" var anzahlbesucher var request = require('request'); var fs = require('fs'); on({ id: idKlingel, change: "any" }, function (obj) { //if ((obj.state.val == true) && getState(id_sperre).val == false && getState(id_people).val == 3){ if ((obj.state.val == true) && getState(id_sperre).val == false) { setState(id_sperre, true) setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss"); setState(id_Ereignis, ereignis_text.toString()); log('Klingel Auslöser: ' + formatDate(new Date(obj.state.ts), "hh:mm:ss")); request({ url: "http://192.168.178.7xx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxxxxx", encoding: null, }, (error, response, body) => { if (!error && body) { writeFile("vis.0", "/klingelbild/Klingel.jpg", body); } } ); } setStateDelayed(id_sperre, false, 80000) }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); //Ereignisse zurücksetzen on({ time: { hour: 23, minute: 59 } }, function () { setState(id_Zähler, 0); setState(id_Ereignis, ""); setState(id_Ereignisliste, ""); anzahlbesucher = 0; log("*****Klingelereignisse gelöscht***** "); });So funktioniert es mit dem neuen Javascript-Adapter:
/*****Haustür Klingel****************************************************************************** ** August 2020 ** RING, Kamera ** ** ** geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24, 06.12.24 ***************************************************************************************************/ const idKlingel = "ring.0.doorbell_90474299.Events.doorbell" const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler" var anzahlbesucher on({ id: idKlingel, change: "any" }, function (obj) { if (obj.state.val == true) { setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss"); setState(id_Ereignis, ereignis_text.toString()); httpGet('http://192.168.178.1xx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxx', { responseType: 'arraybuffer' }, async (err, response) => { if (!err) { writeFile('vis.0', '/klingelbild/Klingel.jpg', response.data, (err) => { if (err) { console.error(err); } }); } else { console.error(err); } }); } }); function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); //Ereignisse zurücksetzen on({ time: { hour: 23, minute: 59 } }, function () { setState(id_Zähler, 0); setState(id_Ereignis, ""); setState(id_Ereignisliste, ""); anzahlbesucher = 0; log("*****Klingelereignisse gelöscht***** "); });@michihorn
Bitte verwende die SUCHFUNKTION. Zur Deprecation von request gibts gefühlt 100 Beiträge.Und schau mal in die Dokumentation:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/upgrade-guide.md#request-to-httpget
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