NEWS
Test Adapter todoist2 v0.9 Latest/GitHub
-
Aktuelle Test Version 0.9.0 Veröffentlichungsdatum 11.05.2020 Github Link https://github.com/rde-master/ioBroker.todoist2 ChangeLog 0.4.0: Code Change, sodass der Adapter nun die Internetverbindung prüft und der Ablauf des Programmes wurde verbessert. ChangeLog 0.5.0: Neue Funktion "Filter" hinzugefügt ChangeLog 0.6.5: Neue Funktion "Listen Einstellung" hinzugefügt ChangeLog 0.7.0: Bugfix & Tabellenzeilen können nun mit eigenen Namen versehen werden ChangeLog 0.7.1 & 0.7.2 & 0.7.3: Bugfix ChangeLog 0.8.0: die funktion reqeust durch axios ersetzt ChangeLog 0.8.1: neue Funktionen ChangeLog 0.8.2: Neue Funktion: mann kann nun die Texte für "keine Todos" selbst einstellen. ChangeLog 0.8.3: In der Admin Einstellung wurde mit Collaps Menüs versehen ChangeLog 0.8.4: Option eingefügt um auch Images im Button anzuzeigen. ChangeLog 0.8.5: release im latest Repository ChangeLog 0.8.7: BugFix ChangeLog 0.9: Major Change: Viele neue Funktionen der neue Api hinzugefügt, die RAW Daten, code Cleanup Hallo,
heute ist es endlich soweit und ich möchte euch meinen ersten eigenen Adapter vorstellen.
Ich bin Power User von Todoist. Einer Todo App, welche auch eine Api anbietet.
Vor einiger Zeit gab es schonmal einen Adapter, dieser ist aber leider verschwunden. Deshalb hier eine komplette Neuentwicklung.Ich habe diesen bereits für mich einige Wochen im Test. Deshalb ist die Versionsnummer zur Veröffentlichung nicht mehr bei 0.0.1 sondern eben schon bei 0.3.5.
Was kann der Adapter:
Er verbindet sich mit der Rest API von Todoist und holt sich dort regelmäßig (einstellbar) die ganzen Listen ab.Ebenfalls lässt sich einstellen, welche Objekte ich haben möchte (JSON/HTML/TEXT).
Des weiteren lässt sich einstellen ob ich die Projekte, Labels, Task oder Sections als Objekte anlegen möchte.Um die unnötigen Labels, Sections und Projekte auszublenden gibt es eine Blacklist.
Hier kann man alles was man nicht sehen möchte eintragen.Und zu guter Letzt hab ich noch eine Funktion eingebaut welche Projekte miteinander Synchronisieren bzw. Aufgaben von Projekt A nach B automatisch kopieren.
Um ein neues Todo anzulegen gibt es ebenfalls mehrere Wege:
Es gibt ein eigenes Blockly Element, der sendTo Befehl aus dem Javascript Adapter funktioniert, oder man kann einfach über das Objekt "New" einen neues Todo anlegen.Bei Fragen und Fehlern einfach hier schreiben, oder auf Github ein Issue anlegen.
Das selbe natürlich auch für weitere Wünsche.Neue Funktion in 0.5.0:
ab der Version 0.5.0 ist es möglich, eigene Filter Listen zu verwenden.
Diese Funktion benötigt allerdings einen Premium Account bei Todoist!
Deshalb muss dies erst in den Einstellungen im Reiter "Filter Liste" eingeschaltet werden.Die Filter Listen werden als HTML, JSON und Text Objekte erstellt.
Hier ein Beispiel:
Filter Name: Heute
Filter Query : today
--> Ergebnis: alle heute fälligen Todos werden in die Liste angezeigt.weitere Beispiele in den Einstellungen vorhanden.
Neue Funktion in 0.6.5:
Ich habe eine neue Einstellung eingebaut, sodass man die Listen (HTML, JSON und Text) nun individuell einstellen kann, welche Informationen eingeblendet werden sollen und welche nicht. Und im HTML Bereich kann man per CSS nun die Tabelle in der Darstellung verändern und anpassen. Ein Beispiel Code hierfür ist in der Readme.Ebenfalls ist ein Button geplant um den Task zu schließen.
Neue Funktion in 0.7.0:
Ich habe ein paar Bugs behoben.
Ebenfalls kannst du nun jede Tabellenspalte so benennen wie du es willst.Neue Funktion in 0.8.0:
keine
Ich habe die alte request funktionen durch die moderne axios funktionen ersetzt.Neue Funktion in 0.8.1:
Ich habe eine Option eingebaut um in dem Button SVG ICONs anzuzeigen
Ich habe eine Option eingebaut um die HTML Tabelle auszublenden, wenn keine Todos da sind
Ich habe eingebaut, dass wenn kein Name gesetzt ist, dieser auch nicht angezeigt wird.
Und zu guter letzte habe ich experimentell eingebaut, dass sich beim schließen von Todos diese sofort (1-2 Sekunden)
im Vis aktualisieren.Neue Funktion in 0.8.2:
Ich habe die Möglichkeit eingebaut, dass man den Text, wenn keine Todos da sind, nun selbst bestimmen kann.Neue Funktion in 0.8.5:
Der Adapter ist nun im latest Repository verfügbar.Neue Funktion in 0.8.7:
Bugfixes eingespielt.
Filter sollten nun besser funktionieren.Neue Funktion in 0.9
Ich habe es endlich geschafft die neuen Api Inhalte in den Adapter einzubauen.
Jetzt könnt ihr euch z.B. das Datum einblenden, oder den Ersteller, oder oder oder.
Es sind 3x so viele Felder hinzugekommen
Ebenfalls könnt ihr die RAW Daten der API euch als Objekte anzeigen lassen.
Falls Ihr die JSON Dateien selber verarbeiten wollt.Da ich den Code etwas aufgeräumt habe kann es definitiv zu Fehlern kommen. Also bitte testen.
Jetzt viel Spaß beim testen.
Daniel
-
@rde-master Hallo! Coole Arbeit, genau so was suche ich. Wie bindest du das ganze in deine VIS ein? Oder ist das bei dir nicht geplant? Ich bin am schauen, ob es möglich ist, das ich automatisch alle fälligen Aufgaben in meiner VIS angezeigt bekomme, mit der Möglichkeit diese abzuhaken. Hast du sowas angedacht?
-
Hab den Adapter grad installiert, bekomme jedoch folgende Fehler:
PS: Bild entfernt da Token drauf sichtbar
-
Hey,
sorry für die späte Meldung
Aktuell ist nur die Anzeige von HTML, JSON und Text drin.
Ich finde deine Idee gar net so schlecht.
Ich werd mir das mal anschauen.bzgl. deinem Fehler schau ich mir mal an....
-
Hab den Fehler schon gefunden,...
Vergessen eine alte Debug Anzeige raus zu löschen.
Hab die neue Version auf Github gelegt.
Sollte jetzt nicht mehr kommen....Bitte den Adapter komplett löschen und wieder neu installieren.
Gib mir kurz bescheid ob der Fehler noch kommt.
-
@rde-master Sehr cool - Fehler kommen keine mehr, noch ziemlich viel Logging, aber ich vermute das wird sich dann ändern, wenn der Adapter "fertig" ist. Werde mal weiter testen.
Wegen der VIS, das wäre genial. Ich galub es ist nicht ganz ohne, weil es da vermutlich verschiedenste Andendungsfälle gibt. Einerseits gibt es Aufgaben, die kein Fälligkeitsdatum haben, die man also immer angezeigt haben will. Dann gibt es Aufgaben, die ein Fälligkeitsdatum haben, und die man angezeigt bekommen will schon vor der Fälligkeit. Und dann gibt es den Fall (z.B. Blumen Gießen) der erst bei Fälligkeit angezeigt werden will..was das ganze etwas kompliziert macht, da man ja diese verschiedenen Fälle auch in einer todiIst Liste haben kann. Somit wäre es am genialsten, wenn man z.B. ein Widget hätte, wo man das Projekt aussuchen kann, für dass das Widget ist, und dort definieren kann, ob sofort anzeigen, inkl. Fälligkeit, oder bei Fälligkeit? Klingt kompliziert, sorry
-
@rde-master Ich hab grad festgestellt, das ich den Debug Mode aktiv hatte - hab es deaktiviert, in der Vermutung, das ich deshalb so viele Logs habe. Nun bekomme ich aber wieder die Fehler...
Scheinbar hat er ein Problem, wenn der Debug Mode deaktiviert wird..PS: Mir ist grad aufgefallen, das hier im Debug Log auch der Token drin ist..hab da beim ersten mal Posten auch nicht aufgepasst, aber das ist glaub etwas kritisch, wenn der auf Screenshots gepostet wird, nicht? Benötigt es den im Log?
-
hmm, der Fehler sollte eigentlich nicht kommen, da das Objekt zu dem Zeitpunkt da ist....
Mal schauen ob ich das Reproduzieren kann.
-
@jackblackson
Ich hab eine Abfrage geändert, sodass er nur weitermacht, wenn die Daten der Api da sind...
(hoffentlich)Kannst du es nochmals testen.
(Leider kann ich den Fehler auf meinem Testsystem bisher nicht reproduzieren)
(und den token im Log hab ich auch mal rausgenommen... denn der sollte nicht zu sehen sein :-)) -
@rde-master Super - keine Fehler mehr im Log, wenn ich Debugging deaktiviere.
Was mir noch aufgefallen ist, der Adapter ist nach der Installation nicht automatisch gestartet - hast du das absichtlich so aufgesetzt? Es gibt da ein Setting im io-package.json, ich glaub es ist "enabled" - dann muss nicht jeder den Adapter manuell starten. Aber da sind wir dann schon sehr im Fine-Tuning
-
@jackblackson
Na du musst ja vorher den Token eingeben, deshalb macht ein "Autostart" ja keinen Sinn. -
Bezüglich deiner Frage nach bedingten Anzeigen nach Datum:
Die Api ist leider nicht so flexibel.
In der allgemeinen Abfrage der Tasks kommt leider das Datum nicht mit, sonder nur wenn ich den Task direkt erfrage.
Wenn du dann aber über 50 Tasks hast kommst du an das Limit von maximal 50 Abfragen.
Das wäre dann ein bisschen doof.....Für Premium Nutzer von Todoist gibt es aber die Filter.
Über die könnte ich diese Abfragen darstellen. Geht halt nur wenn man dafür ein paar Euro einwirft. -
Ok, verstehe ich..hab mir das grad kurz angesehen - meinst du, es wäre möglich, diese "Batch-Variante" zum abfragen zu nutzen?
Dann könnte man ja bis zu 100 Tasks auf ein mal abfragen - oder versteh ich das falsch? -
Ich nutzte derzeit allerdings nicht die Sync API sondern die Rest API. Da gibt es nur 50.
https://developer.todoist.com/rest/v1/?shell#overview
Bei mir würden aber nichtmal die 100 Tasks ausreichen
Man könnte jetzt Aufwändig eine Funktion schreiben welche die Tasks druchgeht und wenn z.B. 40 erreicht sind, er eine Minute wartet und dann weiter macht.
Das Problem daran ist nur, was ist wen ich in der zwischenzeit ein Task erledige,.. dann findet er den Task nicht, oder er hat einen Tasks drin welcher ja schon weg sein sollte.
Das wäre denn eine sehr aufwändige und sehr fehleranfällige Variante.Da ich ein Premium Nuzter bin werd ich mir die Filter mal anschauen.
-
@rde-master Wenn ich sehe, was wir für vertrocknete Pflanzen ausgeben, wäre das die 3 Euro pro Monat für Premium locker wert
-
Update Version 0.4.0
Ich habe den Code ein bisschen aufgräumt.
Der Adapter sollte nun sehr viel besser laufen. -
Neue Funktion in 0.5.0:
ab der Version 0.5.0 ist es möglich, eigene Filter Listen zu verwenden.
Diese Funktion benötigt allerdings einen Premium Account bei Todoist!
Deshalb muss dies erst in den Einstellungen im Reiter "Filter Liste" eingeschaltet werden.Die Filter Listen werden als HTML, JSON und Text Objekte erstellt.
Hier ein Beispiel:
Filter Name: Heute
Filter Query : today
--> Ergebnis: alle heute fälligen Todos werden in die Liste angezeigt.weitere Beispiele in den Einstellungen vorhanden.
-
Neue Funktion in 0.6.0:
Ich habe eine neue Einstellung eingebaut, sodass man die Listen (HTML, JSON und Text) nun individuell einstellen kann, welche Informationen eingeblendet werden sollen und welche nicht. Und im HTML Bereich kann man per CSS nun die Tabelle in der Darstellung verändern und anpassen. Ein Beispiel Code hierfür ist in der Readme.Ebenfalls ist ein Button geplant um den Task zu schließen.
Das funktioniert allerdings noch nicht... Deshalb ist der CSS Bereich schon da, aber
es wird kein Button angezeigt! -
Neu in 0.6.5:
der Button in den HTML Tabellen ist nun da.
Er schließt den jeweiligen Task.Um die Anzeige im VIS sofort darzustellen, habe ich eine sofortige
Aktualisierung der Daten hierfür eingebaut.
Um die Abfragen an die Api aber so gering wie möglich zu halten, passiert
die sofortige Aktualisierung nur beim schließen von Task.Viel Spaß beim testen.
-
@rde-master Danke für deine Arbeit, bin grad am Testen. Bezüglich Übersetzungen, hättest du hier noch die Möglichkeit, dies in deinen Adapter einzubauen - Task, Priority, Close,..
Weiters ist mir aufgefallen, das hier scheinbar die Prioritäten gegengleich zu ToDoist sind: