Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Hilfe benötigt bei Adapterdebugging (todoist To-Do Listen Adapter)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Hilfe benötigt bei Adapterdebugging (todoist To-Do Listen Adapter)

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

      Hallo zusammen,

      ich habe gestern ein Javascript geschrieben um die To-Do Listen von todoist.com in iobroker zu importieren.

      Hier der Link zum Beitrag mit dem Script: viewtopic.php?f=21&t=12563

      Heute habe ich auf Grundlage des Tankerkönig Adapters von pix versucht mein Script in einen Adapter umzuwandeln.

      Ich bekomme jedoch im Log eine Fehlermeldung die ich nicht wirklich deuten kann: error uncaught exception: Empty name is not allowed!

      Habe schon einige Sachen versucht aber finde den Fehler nicht. Hat jemand einen Ansatz für mich?

      Hier der Link zu meinem Adapter: https://github.com/eXTreMe-1337/ioBroker.todoist

      Danke!

      edit: Beitragstitel geändert

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

        Do you have more infos from the error then that?!

        Stacktrace with files and line numbers ?!

        When it happends? Directly at startup or when?!

        1 Reply Last reply Reply Quote 0
        • E
          eXTreMe last edited by

          @apollon77:

          Do you have more infos from the error then that?!

          Stacktrace with files and line numbers ?!

          When it happends? Directly at startup or when?! `
          Ich bin mal so frech und bleibe bei Deutsch:

          Es gibt keine weiteren infos, das ist die einzige Error Zeile die im Log steht, keine Angabe von Zeile oder Datei, etc. Daher weiss ich ja nicht wo ich ansetzen soll.

          Der Fehler tritt beim Adapter start auf. Der Adapter ist mit einem minütlichen schedule start versehen. Somit tritt der Fehler minütlich auf 😉

          ich habe alles nach "name" im quellcode abgesucht aber nichts gefunden was leer ist.

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

            ääähm räusper :-)) War wohl Gedanklich auf Github 🙂

            Also "Empty name is not allowed!" kommt von einem adapter.createState wenn der "stateName" bzw in dem Fall allgemein der "Dritte Parameter" leer ist.

            Das passiert bei Dir in https://github.com/eXTreMe-1337/ioBroke … ain.js#L56

            In Adaptern ist (anders als in "JavaScript"s) an der Stelle eher "setObjectNotExists" üblich und sollte als Ersatz direkt tun.

            Ein Hinweis noch zu https://github.com/eXTreMe-1337/ioBroke ... ain.js#L80: Adapter setzen für alle State-Werte immer noch das "ack"-Flag auf true wenn Sie die Daten selbst schreiben als "Final".

            Beispiel:

                        adapter.setState(channel + '.' + fieldName, {ack: true, val: data[fieldName]});
            
            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              Weiterhin:

              https://github.com/eXTreMe-1337/ioBroke … ain.js#L78

              ist adapter.log.debog oder adapter.log.info oder adapter.log.warn oder adapter.log.error je nachdem wie Du loggen willst... oder nutze die writeLog Methode die bei dir im Code drin ist 🙂

              https://github.com/eXTreMe-1337/ioBroke ... ain.js#L43

              unnötig weil ist ganz oben schon gemacht.

              https://github.com/eXTreMe-1337/ioBroke ... ain.js#L63

              Immer mit "try-catch abfangen falls mal Fehlerhaftes JSON zurückkommt.

              Allgemein fehlt jede Forum von Fehlerbehandlung wenn der Request nicht erfolgreich war ... Der Code geht davon aus das es geklappt hat. bedeutet im zweifel aktuell ein Crash und restart des Adapters.

              Was hast Du denn für den Adapter für ein Template geommen? Ist schon älter. Im neuen ist alles auf Admin3 ausgerichtet.

              Ingo F

              1 Reply Last reply Reply Quote 0
              • E
                eXTreMe last edited by

                @apollon77:

                Was hast Du denn für den Adapter für ein Template geommen? Ist schon älter. Im neuen ist alles auf Admin3 ausgerichtet. `
                Vielen Dank für deine Hilfe!

                Ich habe den Tankerkönig Adapter (1.0.4) als Vorlage genommen. War für mich der naheliegenste um mich an etwas zu orientieren was http GET anfragen macht 😄

                Da ich selber noch nicht auf Admin 3 unterwegs bin weiß ich nicht was da noch alles anzupassen wäre.

                Wie du siehst bin ich totaler Neuling und habe eigentlich keinen Plan von dem was ich tue aber meistens schaff ichs trotzdem mir irgendwas zusammenzucoden was dann am ende funktioniert :lol:

                Ich setz mich jetzt mal dran und versuche die von dir aufgeführten Fehler zu korrigieren 🙂

                1 Reply Last reply Reply Quote 0
                • E
                  eXTreMe last edited by

                  Ich habe es geschafft den Adapter "so halb" zum laufen zu bekommen…. Ok, eigentlich macht er was er will...

                  Manchmal ist das einlesen erfolgreich, manchmal nicht, den Grund warum es leider meistens nicht klappt habe ich noch nicht rausfinden können.

                  Ich habe die main.js Datei mehrmals per ssh mit "node main.js --force --logs" gestartet und erhalte jedes mal ein anderes "Ergebnis".

                  Ich habe an mehreren Stellen zum debuggen logeinträge hinzugefügt. Bei jeder Scriptausführung kommt das Script unterschiedlich weit.

                  Hier ein Screenshot zur Verdeutlichung.

                  • Bei der ersten Scriptausführung sieht man dass die ToDo Listen Datenpunkte erstellt wurden jedoch aber nicht die Elemente in die Listen eingefügt wurden.

                  • Bei der zweiten Ausführung ist im prinzip garnix passiert

                  • Bei der dritten Ausführung hat dann alles geklappt.
                    Hat jemand eine Idee wie ich das noch optimieren kann?

                  Irgendwie führt mir der Adapter den Code gefühlt viel zu schnell aus und schafft es wohl daher nicht die json Daten zu laden.

                  Code ist auf Github zu finden
                  2665_debug.png

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

                    OK. Adapter ist fertig. Man muss nur noch ein bisschen machen.

                    https://github.com/ioBroker/ioBroker.re … repository

                    ` > ## Anforderungen für Adapter, die zum Repository hinzugefügt werden sollen

                    • bereits für das neueste Repository erforderlich *

                    1. Der Adapter muss als Paket auf npm verfügbar sein. Siehe [Veröffentlichung auf npm] (# how-to-publish-on-npm)

                    2. Die iobroker-Organisation muss dem npm-Paket als Eigentümer hinzugefügt werden. [Warum und wie geht das?] (# Add-owner-to-packet)

                    3. Adapter muss eine README.md mit Beschreibung, Detailinformationen und Changelog haben. Englisch ist Pflicht. Andere Sprachen sind willkommen. Siehe [Beispiel für README.md] (# example-of-readme-md)

                    4. Adapter muss eine vordefinierte Lizenz haben.

                    5. Adapter muss mindestens Adapter-Basistest (Installation, Betrieb) mit Travis-CI und Appveyor haben. Mehr Informationen im Forum von apollon77 (Nimm einfach von anderen Adaptern die Samples)

                    6. Definieren Sie einen der Typen in io-package.json

                    7. Fügen Sie "Autor" in io-package.json und "Autoren" in io-package.json ein

                    8. Fügen Sie Ihren Adapter in die Liste ein (zuerst die neueste und danach die stabile Version, wenn getestet).

                    Beispiele für Einträge finden Sie [hier] (# Beispiele).

                    * Hinweis *: Vergessen Sie nicht, das Attribut * published * zu ** beiden * Repositories hinzuzufügen.

                    9. Ihr GitHub-Repository muss den Namen "ioBroker. <adaptername>" haben. ** B ** ist Großbuchstabe in "ioBroker", aber in der package.json muss der * Name * niedrig geschrieben sein, da npm Großbuchstaben nicht erlaubt.

                    10. * title * in io-package.json (common) ist ein einfacher Kurzname des Adapters in Englisch. * titleLang * ist ein Objekt, das kurze Namen in vielen Sprachen enthält. * Lang * ist keine deutsche Länge, aber englische LANGuages.

                    11. Verwenden Sie im Titel nicht die Wörter "ioBroker" oder "Adapter". Es ist jedenfalls klar, dass es sich um einen Adapter für ioBroker handelt.

                    12. ** neu! ** Es werden keine neuen Adapter zum Repo ohne Admin3 Konfigurationsdialog akzeptiert. Admin2-Dialog ist optional!</adaptername> `

                    1 Reply Last reply Reply Quote 0
                    • E
                      eXTreMe last edited by

                      @Bluefox:

                      OK. Adapter ist fertig. Man muss nur noch ein bisschen machen.

                      https://github.com/ioBroker/ioBroker.re … repository `
                      Danke für deine Änderungen auf github.

                      Leider läuft der Adapter nur sehr sehr unzuverlässig. So möchte ich den keinesfalls veröffentlichen. Vielleicht hast du ja noch eine Idee? Mir fehlt da komplett die Erfahrung und das Wissen wodran es liegen könnte. Als Javascript funktionieren die http requests zu 99% immer vollständig. Als Adapter nur zu 1%.

                      Wenn der Adapter zuverlässig läuft dann versuche ich gerne die notwendigen Anforderungen für das ioBroker Repository zu erfüllen.

                      1 Reply Last reply Reply Quote 0
                      • T
                        tempestas last edited by

                        ich habe eine (sicherlich nicht sehr elegante) Version zum Löschen der Einkaufsliste im Skriptbereich ergänzt. Eventuell möchtet ihr das in (passenderer / besser programmierter) Form mit den Adapter aufnehmen?

                        viewtopic.php?f=21&p=133717#p133717

                        1 Reply Last reply Reply Quote 0
                        • T
                          tempestas last edited by

                          ich habe meine Änderungen zum Abgleich "manuelle VIS Liste" mit "Alexa ich sags dir todoist" Liste im Skriptbereich eingestellt.

                          Vielleicht ist das nützlich und es könnte daraus ein kompletter "all in" Adapter werden, der sowohl die Erledigung am Tablet als auch via Alexa erlaubt. Das wäre doch eine runde Sache?

                          1 Reply Last reply Reply Quote 0
                          • E
                            eXTreMe last edited by

                            danke dafür! Ja das wäre wirklich eine tolle Sache nur bin ich leider mit meinem Javascript-Latein am Ende… :?

                            Wäre super wenn sich hier jemand mit fortgeschrittenen Kenntnissen findet der mir ein paar Ansätze geben könnte, mir fehlen leider nämlich teilweise basics vom adapter- & javascriptverständnis.

                            Wenn mir das jemand an hand meines adapters erklären könnte was ich falsch mache oder besser machen könnte wär das super! würde nämlich gerne in zukunft weitere adapter nach dem gleichen oder einem ähnlichen schema entwickeln nur fehlt mir momentan der ansatz wo ich anfangen soll mich reinzuarbeiten.... warum funktioniert der code als javascript fast immer und als adapter fast nie?

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

                              @eXTreMe:

                              @Bluefox:

                              OK. Adapter ist fertig. Man muss nur noch ein bisschen machen.

                              https://github.com/ioBroker/ioBroker.re … repository `
                              Danke für deine Änderungen auf github.

                              Leider läuft der Adapter nur sehr sehr unzuverlässig. So möchte ich den keinesfalls veröffentlichen. Vielleicht hast du ja noch eine Idee? Mir fehlt da komplett die Erfahrung und das Wissen wodran es liegen könnte. Als Javascript funktionieren die http requests zu 99% immer vollständig. Als Adapter nur zu 1%.

                              Wenn der Adapter zuverlässig läuft dann versuche ich gerne die notwendigen Anforderungen für das ioBroker Repository zu erfüllen. `
                              Was wird im Log gesagt?

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              482
                              Online

                              31.7k
                              Users

                              79.7k
                              Topics

                              1.3m
                              Posts

                              4
                              13
                              1144
                              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