NEWS
Hilfe für Javascript Legastheniker und js v8.3.x
-
@ofbeqnpolkkl6mby5e13 sagte: An welcher Stelle ist die Klammer zu viel?
?? Die komplette Testfunktion:
httpGet(options, (error, response) => { console.log(response.statusCode); console.log(response.data); }); -
@ofbeqnpolkkl6mby5e13 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:
httpGet(options), (error, response) => {
Zeile 46 hinter options die ) muss weg.
-
@ofbeqnpolkkl6mby5e13 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:
httpGet(options), (error, response) => {
Zeile 46 hinter options die ) muss weg.
2024-05-26 22:46:45.108 - [31merror[39m: javascript.0 (3416) script.js.common._Tests.Test_17 compile failed: at script.js.common._Tests.Test_17:111 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) }; 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) ^ 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) SyntaxError: missing ) after argument list 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) at new Script (node:vm:99:7) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1917:21) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2183:37) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at /opt/iobroker/node_modules/iobroker.javascript/main.js:2281:17 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1703:17) 2024-05-26 22:46:45.111 - [31merror[39m: javascript.0 (3416) at process.processImmediate (node:internal/timers:478:21) 2024-05-26 22:46:46.955 - [32minfo[39m: javascript.0 (3416) Stopping script script.js.common._Tests.Test_17 -
2024-05-26 22:46:45.108 - [31merror[39m: javascript.0 (3416) script.js.common._Tests.Test_17 compile failed: at script.js.common._Tests.Test_17:111 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) }; 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) ^ 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) SyntaxError: missing ) after argument list 2024-05-26 22:46:45.109 - [31merror[39m: javascript.0 (3416) at new Script (node:vm:99:7) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1917:21) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2183:37) 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at /opt/iobroker/node_modules/iobroker.javascript/main.js:2281:17 2024-05-26 22:46:45.110 - [31merror[39m: javascript.0 (3416) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1703:17) 2024-05-26 22:46:45.111 - [31merror[39m: javascript.0 (3416) at process.processImmediate (node:internal/timers:478:21) 2024-05-26 22:46:46.955 - [32minfo[39m: javascript.0 (3416) Stopping script script.js.common._Tests.Test_17da fehlen irgendwo noch Klammern, bin grad mal am suchen
Edit: probiere mal das jetzt.
function updateMuell() { var options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3' httpGet(options, (error, response) => { console.log(response.statusCode); console.log(response.data); if (!error && response.statusCode == 200) { var info = JSON.parse(response.data); // info ist ein Objekt if (info[0].Ack === 'Success') { var data = info[0]._data; // xy ist eine Eigenschaft des Objektes info let counter = 0; const date = (new Date()) const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2) log(todayStr); data.forEach((v, i) => { if (todayStr < v.cal_date && counter <= numberOfEntries) { const basePath = instanz + '.' + ('000' + counter).slice(-3); log(v.cal_date + ' -> ' + basePath, 'debug'); // States erstellen extendObject(basePath, { type: "channel", common: { name: v.cal_date_normal } }, function (err) { if (err) { log('could not create device: ', 'warn'); return; } } ); createState(basePath + '.date', v.cal_date_normal, { name: 'Datum', desc: 'Datum der Abholung', type: 'string', read: true, write: false }, () => { setState(basePath + '.date', v.cal_date_normal, true); }); createState(basePath + '.desc', baseData[v.cal_garbage_type].title, { name: 'Beschreibung', desc: 'Beschreibung der Abholung', type: 'string', read: true, write: false }, () => { setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true); }); createState(basePath + '.color', { name: 'Farbe', desc: 'Farbe', type: 'string', role: 'level.color', read: true, write: false }, () => { setState(basePath + '.color', baseData[v.cal_garbage_type].color, true); }); counter++; } }); } }; }) } -
da fehlen irgendwo noch Klammern, bin grad mal am suchen
Edit: probiere mal das jetzt.
function updateMuell() { var options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3' httpGet(options, (error, response) => { console.log(response.statusCode); console.log(response.data); if (!error && response.statusCode == 200) { var info = JSON.parse(response.data); // info ist ein Objekt if (info[0].Ack === 'Success') { var data = info[0]._data; // xy ist eine Eigenschaft des Objektes info let counter = 0; const date = (new Date()) const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2) log(todayStr); data.forEach((v, i) => { if (todayStr < v.cal_date && counter <= numberOfEntries) { const basePath = instanz + '.' + ('000' + counter).slice(-3); log(v.cal_date + ' -> ' + basePath, 'debug'); // States erstellen extendObject(basePath, { type: "channel", common: { name: v.cal_date_normal } }, function (err) { if (err) { log('could not create device: ', 'warn'); return; } } ); createState(basePath + '.date', v.cal_date_normal, { name: 'Datum', desc: 'Datum der Abholung', type: 'string', read: true, write: false }, () => { setState(basePath + '.date', v.cal_date_normal, true); }); createState(basePath + '.desc', baseData[v.cal_garbage_type].title, { name: 'Beschreibung', desc: 'Beschreibung der Abholung', type: 'string', read: true, write: false }, () => { setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true); }); createState(basePath + '.color', { name: 'Farbe', desc: 'Farbe', type: 'string', role: 'level.color', read: true, write: false }, () => { setState(basePath + '.color', baseData[v.cal_garbage_type].color, true); }); counter++; } }); } }; }) }Danke, es kommt kein Fehler mehr! Eine Objektstruktur wird weiterhin nicht angelegt.
-
Danke, es kommt kein Fehler mehr! Eine Objektstruktur wird weiterhin nicht angelegt.
@ofbeqnpolkkl6mby5e13
okay dann brauche ich mal das komplette Log vom Start das Script. Muss mir mal die Daten ansehen, die da kommen. -
@ofbeqnpolkkl6mby5e13
okay dann brauche ich mal das komplette Log vom Start das Script. Muss mir mal die Daten ansehen, die da kommen.2024-05-26 23:06:36.838 - [32minfo[39m: javascript.0 (3416) Start JavaScript script.js.common._Tests.Test_17 (JavaScript/js) 2024-05-26 23:06:36.850 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2024-05-26 23:06:36.925 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: 200 2024-05-26 23:06:36.926 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: [{"title":"Bioabfall","name":"SZ_BIO","_name":"SZ_BIO","color":"a52a2a"},{"title":"Gelber Sack","name":"SZ_G","_name":"SZ_G","color":"FFFF00"},{"title":"Altpapier (120l, 240l)","name":"SZ_P","_name":"SZ_P","color":"2fc2e8"},{"title":"Restabfall (bis 240l)","name":"SZ_R","_name":"SZ_R","color":"2F4F4F"},{"title":"Weihnachtsbaum","name":"SZ_W","_name":"SZ_W","color":"36b515"}] 2024-05-26 23:14:15.038 - [32minfo[39m: javascript.0 (3416) Stopping script script.js.common._Tests.Test_17 -
2024-05-26 23:06:36.838 - [32minfo[39m: javascript.0 (3416) Start JavaScript script.js.common._Tests.Test_17 (JavaScript/js) 2024-05-26 23:06:36.850 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2024-05-26 23:06:36.925 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: 200 2024-05-26 23:06:36.926 - [32minfo[39m: javascript.0 (3416) script.js.common._Tests.Test_17: [{"title":"Bioabfall","name":"SZ_BIO","_name":"SZ_BIO","color":"a52a2a"},{"title":"Gelber Sack","name":"SZ_G","_name":"SZ_G","color":"FFFF00"},{"title":"Altpapier (120l, 240l)","name":"SZ_P","_name":"SZ_P","color":"2fc2e8"},{"title":"Restabfall (bis 240l)","name":"SZ_R","_name":"SZ_R","color":"2F4F4F"},{"title":"Weihnachtsbaum","name":"SZ_W","_name":"SZ_W","color":"36b515"}] 2024-05-26 23:14:15.038 - [32minfo[39m: javascript.0 (3416) Stopping script script.js.common._Tests.Test_17@ofbeqnpolkkl6mby5e13
der erste teil stimmt auch nicht bzw. ist unlogisch. Hast du noch das original? -
@ofbeqnpolkkl6mby5e13
der erste teil stimmt auch nicht bzw. ist unlogisch. Hast du noch das original? -
okay, muss den Anfang auch nochmal anpassen. Da ist etwas verrutscht ;)
Edit: probiere mal das
httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => { if (!error && response.statusCode == 200) { console.log(response.statusCode); console.log(response.data); var data = JSON.parse(response.data); // info ist ein Objekt data.forEach((v, i) => { baseData[v._name] = v; }) updateMuell(); } else { console.error(error); } }); -
okay, muss den Anfang auch nochmal anpassen. Da ist etwas verrutscht ;)
Edit: probiere mal das
httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => { if (!error && response.statusCode == 200) { console.log(response.statusCode); console.log(response.data); var data = JSON.parse(response.data); // info ist ein Objekt data.forEach((v, i) => { baseData[v._name] = v; }) updateMuell(); } else { console.error(error); } });Ah, jetzt wird die Objektstruktur angelegt! Vielen Dank!
Aber, im Original werden keine Daten auf der Konsole ausgegeben. Woran liegt das?
-
Ah, jetzt wird die Objektstruktur angelegt! Vielen Dank!
Aber, im Original werden keine Daten auf der Konsole ausgegeben. Woran liegt das?
im Script sind diese Zeilen für die Ausgabe
console.log(response.statusCode); console.log(response.data);ersetze sie mit diesen Zeilen
if (logging) console.log(response.statusCode); if (logging) console.log(response.data);dann kommt die Meldung nur, wenn du logging auf true setzt
const logging = true; -
im Script sind diese Zeilen für die Ausgabe
console.log(response.statusCode); console.log(response.data);ersetze sie mit diesen Zeilen
if (logging) console.log(response.statusCode); if (logging) console.log(response.data);dann kommt die Meldung nur, wenn du logging auf true setzt
const logging = true;Aber das ist im Original doch auch nicht so und im Original werden im Normalfall keine Meldungen ausgegeben.
-
im Script sind diese Zeilen für die Ausgabe
console.log(response.statusCode); console.log(response.data);ersetze sie mit diesen Zeilen
if (logging) console.log(response.statusCode); if (logging) console.log(response.data);dann kommt die Meldung nur, wenn du logging auf true setzt
const logging = true;Ach sorry, das hatte ich ja selbst hinzugefügt.
-
Ach sorry, das hatte ich ja selbst hinzugefügt.
@ofbeqnpolkkl6mby5e13
so Feierabend für heute, Script läuft soweit? -
@ofbeqnpolkkl6mby5e13
so Feierabend für heute, Script läuft soweit? -
sende bitte nochmal jetzt das komplette Script, ich sehe mir das morgenfrüh an. da Passt etwas mit dem erstellen des color State nicht.
-
sende bitte nochmal jetzt das komplette Script, ich sehe mir das morgenfrüh an. da Passt etwas mit dem erstellen des color State nicht.
-
@ofbeqnpolkkl6mby5e13
@tt-tom
Nur eine Idee von jemandem der sich aber mit JS nicht auskennt. Daher schlagt mich nicht, falls ich totalen Unsinn schreibe.
Evtl. liegt's an der Variablevar dataim Ursprungsscript (z.B. Zeile 51). Möglicherweise funktioniert das nach dem Update auf V8.3.1 nicht mehr. Hatte ein ähnliches Problem in einem Blockly. Da hatte ich eine Variablelog. Die musste auch umbenannt werden damit's wieder funktioniert. -
@homoran sagte: nur noch mit timeout of x msec exceeded und nicht mehr die ganzen null Meldungen

@paul53 DANKE!
den Block hab ich gesucht.
Das Pulldown habe ich natürlich nicht gesehen.hatte gestern abend den Timeout auf 4000 gestellt.
Seitdem kein Fehler mehr.
Sehe gerade dass im Original ein Timeout von 3000 steht.