Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Fehlermeldungen Log (todoist - JS Adapter / DasWetter)

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Fehlermeldungen Log (todoist - JS Adapter / DasWetter)

    This topic has been deleted. Only users with topic management privileges can see it.
    • thexbrain
      thexbrain last edited by

      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

      ! viewtopic.php?f=21&t=12563&hilit=todoist&start=20

      `//  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]
      
      1 Reply Last reply Reply Quote 0
      • wendy2702
        wendy2702 last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • thexbrain
          thexbrain last edited by

          Im JavaScript Editor sehe ich keine Fehlermeldungen.

          Bei DasWetter werden die Werte aktualisiert. Ich habe es jetzt in info geändert.
          4720_2030.jpg

          1 Reply Last reply Reply Quote 0
          • wendy2702
            wendy2702 last edited by

            Auch nicht wenn du im rechten Fenster scrollst?

            Ich komme erst morgen an einen PC zum testen. Am IPad ist das bescheiden.

            1 Reply Last reply Reply Quote 0
            • thexbrain
              thexbrain last edited by

              @wendy2702:

              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

              1 Reply Last reply Reply Quote 0
              • wendy2702
                wendy2702 last edited by

                Ist das die neue JavaScript Version 4.0.x ?

                Meinte das Fenster in dem das Script steht.

                1 Reply Last reply Reply Quote 0
                • thexbrain
                  thexbrain last edited by

                  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

                  1 Reply Last reply Reply Quote 0
                  • wendy2702
                    wendy2702 last edited by

                    Sorry… kann dir mit JavaScript nicht sonderlich helfen. 😞

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    537
                    Online

                    31.6k
                    Users

                    79.5k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    473
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo