NEWS
Fehlermeldungen Log (todoist - JS Adapter / DasWetter)
-
Moin moin,
ich habe folgende Fehler im Log.
Ich hatte das todoist.com Einkaufliste Script eingebunden und bekomme alle 4-5 Stunden diese Fehlermeldung.
Das Einkaufslisten Script funktioniert soweit, nur startet der JS Adapter dann ständig neu und meine Sauger fangen dann an zu saugen.
Ich möchte gerne das Einkaufslisten Script nutzen aber wenn ständig die Sauger angehen dann kann ich das so nicht nutzen.
Hier das Hauptscript für die todoist list aus diesem Beitrag
`// Todoist Script zur Erstellung eines HTML Codes zur Einbindung in VIS mittels "basic - String (unescaped)" Widget // Scriptversion: v0.2 // Ergänzungen tempestas, Stand 17.3.2018 // https://forum.iobroker.net/viewtopic.php?f=21&t=12563 // https://forum.iobroker.net/viewtopic.php?f=21&p=133205#p133205 //Erforderliche Angaben: var APItoken = "xxxxxxxxxxxxxxxxxxx"; // API Token kann in den Todoist Settings auf der Webseite ausgelesen werden var debug = false; var idEinkaufsliste= "javascript.0.Todoist.Alexa-Einkaufsliste"; var force = true; //Weitere Parameter ggf. anpassen: var instanz = 'javascript.0'; instanz = instanz + '.'; // Instanz fuer die Datenpunkte definieren var pfad = 'Todoist.'; // Pfad definieren // var regexTrigger = /^javascript\.0\.Einkaufsliste\.Items\..*$/; // Trigger analog der manuellen Einkaufsliste, brauchst du nicht, deaktiviert schedule("*/1 * * * *", checkTODOIST); // Abfragezeit: jede Minute // ********************************************************* // Scriptbeginn - Ab hier nichts mehr ändern! // ********************************************************* createState(instanz + pfad +'telegramBtn', false, force, { // sendet die Liste via Telegram name: 'Send Telegram', desc: 'Sendet Telegram Einkaufsliste', type: 'boolean', role: 'state', unit: '' }); var idTelegram = instanz + pfad +"telegramBtn"; function sendTelegram() { var telegramtext = getState(idEinkaufsliste).val.replace(/ /g , "\n"); // telegram Liste formatieren, entfernt den Zeilenumbruch für vis und ersettz mit Zeilenumbruch Telegram sendTo('telegram.0', { // Nachricht per Telegram senden text: "Bitte mitbringen:\n\n" + telegramtext }); setStateDelayed(idTelegram, false, 2000); } // Trigger Telegram on(idTelegram, function(obj){ // trigger für Telegram if(obj.state.val === true){ sendTelegram(); } }); function checkTODOIST() { var APIprojectsURL = "https://beta.todoist.com/API/v8/projects?token="+APItoken; var APItaskURL = "https://beta.todoist.com/API/v8/tasks?token="+APItoken; var request = require("request"); var ToDoListen = []; // wird mit IDs der TO-DO Listen befuellt var ToDoListen_names = []; // wird mit Namen der TO-DO Listen befuellt request(APIprojectsURL, function (error, response, body) { try{ var projects_json = JSON.parse(body); for (k = 0; k < projects_json.length; k++) { var projects = parseInt(projects_json[k].id); var projects_name = JSON.stringify(projects_json[k].name); projects_name = projects_name.replace(/\"/g, ""); //entfernt die Anfuehrungszeichen aus dem quellstring ToDoListen[ToDoListen.length] = projects; ToDoListen_names[ToDoListen_names.length] = projects_name; createState(instanz + pfad + ToDoListen_names[k], {def: 'false',type: 'string',role: 'html', name: ToDoListen_names[k]+' HTML String'}); if(debug) log("Datenpunkt "+ToDoListen_names[k]+" erstellt.", "info"); createState(instanz + pfad + ToDoListen_names[k]+'.TaskID', {def: 'false',type: 'string',role: 'string', name: ToDoListen_names[k]+' Task IDs'}); if(debug) log("Datenpunkt "+ToDoListen_names[k]+'.TaskID'+" erstellt.", "info"); } } catch(err) {log (err.message)} }); setTimeout(function() { try{ request(APItaskURL, function (error, response, body) { var json = JSON.parse(body); for (j = 0; j < ToDoListen.length; j++) { var HTMLstring = ""; setState(instanz + pfad + ToDoListen_names[j], "leer"); for (i = 0; i < json.length; i++) { var Liste = parseInt(json[i].project_id); var content = JSON.stringify(json[i].content); content = content.replace(/\"/g, ""); //entfernt die Anfuehrungszeichen aus dem quellstring content = content[0].toUpperCase() + content.substring(1); // Macht den ersten Buchstaben des strings zu einem Grossbuchstaben var taskurl = JSON.stringify(json[i].url); taskurl = taskurl.replace(/\"/g, ""); if (Liste == ToDoListen[j]) { if(debug) log ("["+content+"] in "+ToDoListen_names[j]+" gefunden", "info"); HTMLstring = HTMLstring+content+" "; // mit Link: HTMLstring = HTMLstring+"* ["+content+"](\""+taskurl+"\")"; setState(instanz + pfad + ToDoListen_names[j], HTMLstring); // "<>"+HTMLstring+" "); } } } }); } catch(err) {log(err.message)} }, 1000); setTimeout(function() { // legt IDs der einzelnen Tasks in Unterordnern an request(APItaskURL, function (error, response, body) { var json = JSON.parse(body); for (j = 0; j < ToDoListen.length; j++) { var HTMLstring = ""; setState(instanz + pfad + ToDoListen_names[j] +'.TaskID', "leer"); for (i = 0; i < json.length; i++) { var Liste = parseInt(json[i].project_id); var taskid = JSON.stringify(json[i].id); if (Liste == ToDoListen[j]) { if(debug) log ("["+taskid+"] in "+ToDoListen_names[j]+" gefunden", "info"); HTMLstring = HTMLstring+taskid+" "; // mit Link: HTMLstring = HTMLstring+"* ["+content+"](\""+taskurl+"\")"; setState(instanz + pfad + ToDoListen_names[j]+'.TaskID', HTMLstring); // "<>"+HTMLstring+" "); } } } }); }, 1000); }` Wenn ich das Script deaktiviere dann kommt auch keine Fehlermeldung. Weis einer was ich da machen könnte? --------------------------------------------------------- Dann noch eine frage zum DasWetter Da bekomme ich auch Meldungen. Ist das normal oder auch ein Fehler? Hier ein paar Screenshots DasWetter und todoist LOG >! ~~[spoiler]~~2019-01-06 04:00:02.513 - error: javascript.0 uncaught exception: Unexpected token I in JSON at position 0 >! 2019-01-06 04:00:02.513 - error: javascript.0 SyntaxError: Unexpected token I in JSON at position 0 >! at JSON.parse (:null:null) >! at Request._callback (script.js.Einkaufsliste.Todoist:112:29) >! at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) >! at emitTwo (events.js:126:13) >! at Request.emit (events.js:214:7) >! at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10) >! at emitOne (events.js:116:13) >! at Request.emit (events.js:211:7) >! at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12) >! at Object.onceWrapper (events.js:313:30) >! 2019-01-06 04:00:02.712 - info: javascript.0 terminating >! 2019-01-06 04:00:02.734 - debug: daswetter.0 statesDB connected >! 2019-01-06 04:00:02.738 - info: dwd.0 starting. Version 2.4.3 in /opt/iobroker/node_modules/iobroker.dwd, node: v8.14.0 >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: SyntaxError: Unexpected token I in JSON at position 0 >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at JSON.parse (:null:null) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Request._callback (script.js.Einkaufsliste.Todoist:112:29) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at emitTwo (events.js:126:13) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Request.emit (events.js:214:7) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at emitOne (events.js:116:13) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Request.emit (events.js:211:7) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12) >! 2019-01-06 04:00:03.560 - error: Caught by controller[0]: at Object.onceWrapper (events.js:313:30) >! 2019-01-06 04:00:03.560 - error: host.debianiobroker instance system.adapter.javascript.0 terminated with code 0 (OK)[/spoiler] [4720_2000.jpg](/assets/uploads/files/4720_2000.jpg) [4720_2001.jpg](/assets/uploads/files/4720_2001.jpg) [4720_2010.jpg](/assets/uploads/files/4720_2010.jpg) [/i][/i][/i][/i][/i]
-
Ich nutze das Script nicht aber hast du im JavaScript Editor mal geschaut ob es irgendwelche Fehlermeldungen gibt?
Werden bei DasWetter die Werte denn noch aktualisiert?
Ich sehe auf dem Screenshot (bitte besser logs als TXT posten) auf Anhieb keinen Fehler. Würde den Log Level für Das Wetter mal wieder in „Info“ ändern.
-
Im JavaScript Editor sehe ich keine Fehlermeldungen.
Bei DasWetter werden die Werte aktualisiert. Ich habe es jetzt in info geändert.
4720_2030.jpg -
Auch nicht wenn du im rechten Fenster scrollst?
Ich komme erst morgen an einen PC zum testen. Am IPad ist das bescheiden.
-
Auch nicht wenn du im rechten Fenster scrollst?
Ich komme erst morgen an einen PC zum testen. Am IPad ist das bescheiden. `
Du meinst in dem kleinen rechten Fenster?
Nein da auch nicht.
4720_2031.jpg -
Ist das die neue JavaScript Version 4.0.x ?
Meinte das Fenster in dem das Script steht.
-
Ja ist die neueste JavaScript Version 4.0.7
Ich hatte auch schon mit der 3.6.4 usw. getestet aber kam das gleiche.
Ansonsten alles durchgescrollt aber keine Fehler.
Nur wenn der Fehler kommt dann wird er auch im Script ganz unten angezeigt. (siehe Screenshot)
Ich glaube das Script für den Sauger ist auch nicht 100% richtig. Weil bei jedem neustart des JS Adapter fängt er an zu saugen.
Von 19Uhr - 8 Uhr morgens ist das Script zwar deaktiviert damit ich nachts ruhe habe aber Tagsüber fährt der Sauger wegen dem todoist Script alle paar Stunden los.
Ich meine der Trigger ist nicht richtig. Das Script muss Alexa und Knopfdrück auslösen.
on({ id: "javascript.0.scriptEnabled.Vacuum_Cleaner.Wohnzimmer"/*scriptEnabled.Vacuum_Cleaner.Wohnzimmer*/, val: true }, function (obj) { if (compareTime('08:00', '19:00', "between", null)) { setState("alexa2.0.Echo-Devices.G090LF1173621LS4.Commands.speak"/*speak*/, 'Okay, der Staubsauger ist gleich da, und saugt das Wohnzimmer.'); setStateDelayed("mihome-vacuum.1.control.zoneClean", '[15731,24895,22081,31845,1]', 3000); } });
Hättest du da evtl. eine Idee mit dem Script dann fährt wenigstens der Sauger nicht alle paar stunden los.
4720_2032.jpg -
Sorry… kann dir mit JavaScript nicht sonderlich helfen.