NEWS
Hilfe für Javascript Legastheniker und js v8.3.x
-
@ofbeqnpolkkl6mby5e13
Sorry, dann mach ich doch Schluss für heute.
mir raucht der Kopf. Das hemmt die KreativitätMal sehen was abdere bis morgen rausfinden
-
@ofbeqnpolkkl6mby5e13 sagte: Wird nichts ausgegeben.
Es fehlt auch was.
httpGet(options, (error, response) => {
-
Danke!
2024-05-26 22:19:52.596 - [32minfo[39m: javascript.0 (3416) Start JavaScript script.js.common._Tests.Test_17 (JavaScript/js) 2024-05-26 22:19:52.597 - [31merror[39m: javascript.0 (3416) script.js.common._Tests.Test_17 compile failed: at script.js.common._Tests.Test_17:118 2024-05-26 22:19:52.598 - [31merror[39m: javascript.0 (3416) })(); 2024-05-26 22:19:52.598 - [31merror[39m: javascript.0 (3416) ^ 2024-05-26 22:19:52.598 - [31merror[39m: javascript.0 (3416) SyntaxError: Unexpected token ')' 2024-05-26 22:19:52.598 - [31merror[39m: javascript.0 (3416) at new Script (node:vm:99:7) 2024-05-26 22:19:52.598 - [31merror[39m: javascript.0 (3416) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1917:21) 2024-05-26 22:19:52.599 - [31merror[39m: javascript.0 (3416) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2183:37) 2024-05-26 22:19:52.599 - [31merror[39m: javascript.0 (3416) at /opt/iobroker/node_modules/iobroker.javascript/main.js:2281:17 2024-05-26 22:19:52.599 - [31merror[39m: javascript.0 (3416) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1703:17) 2024-05-26 22:19:52.599 - [31merror[39m: javascript.0 (3416) at process.processImmediate (node:internal/timers:478:21) 2024-05-26 22:19:55.316 - [32minfo[39m: javascript.0 (3416) Stopping script script.js.common._Tests.Test_17
An welcher Stelle ist die Klammer zu viel?
-
@homoran sagte: nur noch mit timeout of x msec exceeded und nicht mehr die ganzen null Meldungen
-
@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.
-
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
-
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.
-
@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
-
@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); } });
-
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;
-
Aber das ist im Original doch auch nicht so und im Original werden im Normalfall keine Meldungen ausgegeben.
-
Ach sorry, das hatte ich ja selbst hinzugefügt.
-
@ofbeqnpolkkl6mby5e13
so Feierabend für heute, Script läuft soweit?