NEWS
Umstellung auf "axios"
-
@thomas-braun sagte in Umstellung auf "axios":
Weil es nicht mehr gepflegt wird:
Und ab wann funktionieren dann meine Scripte nicht mehr ?
oder viel wichtiger: Was mun man tun um dies zu ändern ?@bahnuhr sagte in Umstellung auf "axios":
Und ab wann funktionieren dann meine Scripte nicht mehr ?
Vermutlich spätestens dann, wenn request aus nodejs aussortiert wird.
Ich vermute, das wird aber ob der breiten Verwendung von request noch lange mitgeschleift werden müssen. Ist ja schon geraume Zeit als 'deprecated' markiert. -
Hallo,
ich muss jetzt auch mal fragen.- warum wird von request auf axios umgestellt?
- was ist mit den alten Scripten ?
- gibts hier ein todo ?
Gibts da irgendwo mehr infos ?
Habe ca. 200 Scripte wo ca. bei der Hälfte (geschätzt) request drin ist.
-
@OliverIO
Puhh ich glaube ich bin etwas weiter... trotzdem drehe ich mich irgendwie im Kreis .16:53:20.267 error javascript.0 (6088) script.js.Guntamatic.Guntamatic_Daten_aus_Http_Seite_Parsen_axios: schedule callback missingcreateState('Guntamatic_Betrieb_0'); createState('Guntamatic_Aussentemperatur_1'); createState('Guntamatic_Kesseltemperatur_3'); createState('Guntamatic_Leistung_5'); createState('Guntamatic_Rücklauf_6'); createState('Guntamatic_CO2_Gehalt_8'); createState('Guntamatic_Puffer_oben_17'); createState('Guntamatic_Puffer_unten_19'); createState('Guntamatic_Pumpe_HP0_20'); createState('Guntamatic_Warmwasser_21'); createState('Guntamatic_Vorlauf_31'); createState('Guntamatic_Füllstand_65'); createState('Guntamatic_Kesselfreigabe_68'); createState('Guntamatic_Programm_69'); createState('Guntamatic_Programm_HK1_71'); createState('Guntamatic_Stoer0_79'); createState('Guntamatic_Stoer1_80'); createState('Guntamatic_Asche_entleeren_85'); createState('Guntamatic_Brennstoffzähler_89'); createState('Guntamatic_Pufferladung_90'); createState('Guntamatic_CO2_Gehalt_korrigiert'); const axios=require('axios'); schedule("*/5 * * * * *", axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', { responseEncoding: 'latin1' }) .then(function(response) { //console.log(response); if (response.data) { var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true); var parts_Guntamatic = parts[1]; setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true); var parts_Guntamatic = parts[3]; setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true); var parts_Guntamatic = parts[5]; setState('Guntamatic_Leistung_5', parts_Guntamatic, true); var parts_Guntamatic = parts[6]; setState('Guntamatic_Rücklauf_6', parts_Guntamatic, true); var parts_Guntamatic = parts[8]; setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true); var parts_Guntamatic = parts[17]; setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true); var parts_Guntamatic = parts[19]; setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true); var parts_Guntamatic = parts[20]; setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true); var parts_Guntamatic = parts[21]; setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true); var parts_Guntamatic = parts[31]; setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true); var parts_Guntamatic = parts[65]; setState('Guntamatic_Füllstand_65', parts_Guntamatic, true); var parts_Guntamatic = parts[68]; setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true); var parts_Guntamatic = parts[69]; setState('Guntamatic_Programm_69', parts_Guntamatic, true); var parts_Guntamatic = parts[71]; setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true); var parts_Guntamatic = parts[79]; setState('Guntamatic_Stoer0_79', parts_Guntamatic, true); var parts_Guntamatic = parts[80]; setState('Guntamatic_Stoer1_80', parts_Guntamatic, true); var parts_Guntamatic = parts[85]; setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true); var parts_Guntamatic = parts[89]; setState('Guntamatic_Brennstoffzähler_89', parts_Guntamatic, true); var parts_Guntamatic = parts[90]; setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true); /* CO2 Korrigieren da der Wert im Leerlauf teils 18.00 annimmt. parts[5] = Leistung parts[8] = CO2 Gehalt */ if (parts[5] == 0) { setState("Guntamatic_CO2_Gehalt_korrigiert", 0, true); } else { setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true); } } }) ); -
@bahnuhr sagte in Umstellung auf "axios":
Gibts da irgendwo mehr infos ?
Ja bei google.
Du musst auch nicht axios nehmen, es funktioniert auch http.@wal sagte in Umstellung auf "axios":
Du musst auch nicht axios nehmen, es funktioniert auch http.
hast du mal ein Beispiel ?
-
@wal sagte in Umstellung auf "axios":
Du musst auch nicht axios nehmen, es funktioniert auch http.
hast du mal ein Beispiel ?
-
@bahnuhr sagte in Umstellung auf "axios":
Und ab wann funktionieren dann meine Scripte nicht mehr ?
Vermutlich spätestens dann, wenn request aus nodejs aussortiert wird.
Ich vermute, das wird aber ob der breiten Verwendung von request noch lange mitgeschleift werden müssen. Ist ja schon geraume Zeit als 'deprecated' markiert.@thomas-braun Ich denke auch mit 50.000 Dependents wird es wohl nie entfernt werden können. Also kann der kleine ioBroker Skripter sich mit der Umstellung noch zeit lassen.
@glitzi
der schedule wird nicht richtig aufgemachtschedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', { responseEncoding: 'latin1' }) .then(function(response) { //console.log(response); }) }) -
@thomas-braun Ich denke auch mit 50.000 Dependents wird es wohl nie entfernt werden können. Also kann der kleine ioBroker Skripter sich mit der Umstellung noch zeit lassen.
@glitzi
der schedule wird nicht richtig aufgemachtschedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', { responseEncoding: 'latin1' }) .then(function(response) { //console.log(response); }) }) -
@tombox
und wenn es aus iobroker entfernt wird, dann lädt man es selbst nach.
es ist ja nicht so das es da sicherheitsbedenken gibt, sonder das die bibliothekt zu ende entwickelt ist. -
@thomas-braun Ich denke auch mit 50.000 Dependents wird es wohl nie entfernt werden können. Also kann der kleine ioBroker Skripter sich mit der Umstellung noch zeit lassen.
@glitzi
der schedule wird nicht richtig aufgemachtschedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=xxxx', { responseEncoding: 'latin1' }) .then(function(response) { //console.log(response); }) }) -
@oliverio sagte in Umstellung auf "axios":
Ob latin ein gültiger Wert ist weiß ich nicht.
Laut https://nodejs.org/api/buffer.html#buffers-and-character-encodings müsste das
latin1sein (mit 1 am Ende).Leider scheint das Encoding nicht zu funktionieren, ist hier etwas falsch?
const axios=require('axios'); schedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=abcde', { responseEncoding: 'utf-8' }) .then(function(response) { if (response.data) { var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true); -
Leider scheint das Encoding nicht zu funktionieren, ist hier etwas falsch?
const axios=require('axios'); schedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=abcde', { responseEncoding: 'utf-8' }) .then(function(response) { if (response.data) { var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true); -
das sind zu wenig informationen.
in was ist den die quelle encodiert?
utf8 scheint es ja nicht zu sein.
woran erkennst du es das das encoding nicht funktioniert? -
Leider scheint das Encoding nicht zu funktionieren, ist hier etwas falsch?
const axios=require('axios'); schedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.xx/daqdata.cgi?key=abcde', { responseEncoding: 'utf-8' }) .then(function(response) { if (response.data) { var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true);@glitzi sagte in Umstellung auf "axios":
Guntamatic
hat es damit etwas zu tun
https://next.openhab.org/addons/bindings/guntamatic/?
da steht dann was von
windows-1252 -
@glitzi sagte in Umstellung auf "axios":
Guntamatic
hat es damit etwas zu tun
https://next.openhab.org/addons/bindings/guntamatic/?
da steht dann was von
windows-1252 -
oh.. ja das kommt von meinen versuchen, da es mit latin1 nicht funktionier hat.
Ist denn mein Skript fehlerfrei?
-
nein, es fehlen diverse schließende klammern.
kommt aber auch evtl davon das du dein skript nicht komplett kopiert hastso eben noch einmal alles probiert, ich habe alle möglichen Encodings ausprobiert, es ändert sich nichts, habe das Gefühl es wird überhaupt nicht berücksichtigt.
Bei umlauten kommt immer das �
Hier noch einmal das gesamte Skript
const axios=require('axios'); schedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.x/daqdata.cgi?key=abcxyz', { responseEncoding: 'latin1' }) .then(function(response) { if (response.data) { //console.log(response.data); var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true); var parts_Guntamatic = parts[1]; setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true); var parts_Guntamatic = parts[3]; setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true); var parts_Guntamatic = parts[5]; setState('Guntamatic_Leistung_5', parts_Guntamatic, true); var parts_Guntamatic = parts[6]; setState('Guntamatic_Rücklauf_6', parts_Guntamatic, true); var parts_Guntamatic = parts[8]; setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true); var parts_Guntamatic = parts[17]; setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true); var parts_Guntamatic = parts[19]; setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true); var parts_Guntamatic = parts[20]; setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true); var parts_Guntamatic = parts[21]; setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true); var parts_Guntamatic = parts[31]; setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true); var parts_Guntamatic = parts[65]; setState('Guntamatic_Füllstand_65', parts_Guntamatic, true); var parts_Guntamatic = parts[68]; setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true); var parts_Guntamatic = parts[69]; setState('Guntamatic_Programm_69', parts_Guntamatic, true); var parts_Guntamatic = parts[71]; setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true); var parts_Guntamatic = parts[79]; setState('Guntamatic_Stoer0_79', parts_Guntamatic, true); var parts_Guntamatic = parts[80]; setState('Guntamatic_Stoer1_80', parts_Guntamatic, true); var parts_Guntamatic = parts[85]; setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true); var parts_Guntamatic = parts[89]; setState('Guntamatic_Brennstoffzähler_89', parts_Guntamatic, true); var parts_Guntamatic = parts[90]; setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true); /* CO2 Korrigieren da der Wert im Leerlauf teils 18.00 annimmt. parts[5] = Leistung parts[8] = CO2 Gehalt */ if (parts[5] == 0) { setState("Guntamatic_CO2_Gehalt_korrigiert", 0, true); } else { setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true); } } }) }) -
so eben noch einmal alles probiert, ich habe alle möglichen Encodings ausprobiert, es ändert sich nichts, habe das Gefühl es wird überhaupt nicht berücksichtigt.
Bei umlauten kommt immer das �
Hier noch einmal das gesamte Skript
const axios=require('axios'); schedule("*/5 * * * * *", function(){ axios.post('http://xx.xx.xx.x/daqdata.cgi?key=abcxyz', { responseEncoding: 'latin1' }) .then(function(response) { if (response.data) { //console.log(response.data); var parts = response.data.split('\n'); var parts_Guntamatic = parts[0]; setState('Guntamatic_Betrieb_0', parts_Guntamatic, true); var parts_Guntamatic = parts[1]; setState('Guntamatic_Aussentemperatur_1', parts_Guntamatic, true); var parts_Guntamatic = parts[3]; setState('Guntamatic_Kesseltemperatur_3', parts_Guntamatic, true); var parts_Guntamatic = parts[5]; setState('Guntamatic_Leistung_5', parts_Guntamatic, true); var parts_Guntamatic = parts[6]; setState('Guntamatic_Rücklauf_6', parts_Guntamatic, true); var parts_Guntamatic = parts[8]; setState('Guntamatic_CO2_Gehalt_8', parts_Guntamatic, true); var parts_Guntamatic = parts[17]; setState('Guntamatic_Puffer_oben_17', parts_Guntamatic, true); var parts_Guntamatic = parts[19]; setState('Guntamatic_Puffer_unten_19', parts_Guntamatic, true); var parts_Guntamatic = parts[20]; setState('Guntamatic_Pumpe_HP0_20', parts_Guntamatic, true); var parts_Guntamatic = parts[21]; setState('Guntamatic_Warmwasser_21', parts_Guntamatic, true); var parts_Guntamatic = parts[31]; setState('Guntamatic_Vorlauf_31', parts_Guntamatic, true); var parts_Guntamatic = parts[65]; setState('Guntamatic_Füllstand_65', parts_Guntamatic, true); var parts_Guntamatic = parts[68]; setState('Guntamatic_Kesselfreigabe_68', parts_Guntamatic, true); var parts_Guntamatic = parts[69]; setState('Guntamatic_Programm_69', parts_Guntamatic, true); var parts_Guntamatic = parts[71]; setState('Guntamatic_Programm_HK1_71', parts_Guntamatic, true); var parts_Guntamatic = parts[79]; setState('Guntamatic_Stoer0_79', parts_Guntamatic, true); var parts_Guntamatic = parts[80]; setState('Guntamatic_Stoer1_80', parts_Guntamatic, true); var parts_Guntamatic = parts[85]; setState('Guntamatic_Asche_entleeren_85', parts_Guntamatic, true); var parts_Guntamatic = parts[89]; setState('Guntamatic_Brennstoffzähler_89', parts_Guntamatic, true); var parts_Guntamatic = parts[90]; setState('Guntamatic_Pufferladung_90', parts_Guntamatic, true); /* CO2 Korrigieren da der Wert im Leerlauf teils 18.00 annimmt. parts[5] = Leistung parts[8] = CO2 Gehalt */ if (parts[5] == 0) { setState("Guntamatic_CO2_Gehalt_korrigiert", 0, true); } else { setState("Guntamatic_CO2_Gehalt_korrigiert", parts[8], true); } } }) }) -
@glitzi
Ergänzung,mit
axios.get('http://xx.xx.xx.x/daqdata.cgi?key=abcxyz', { responseEncoding: 'latin1' })wird der Eintrag bei Encoding berücksichtigt, ich gehe wieder in den Test