FHEM - Hausautomations-Systeme > Unterstützende Dienste

Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste) + Frontend

(1/70) > >>

marvin78:
Als Alternative zum sicher bald auslaufenden wunderlist Dienst und dem dazugehörigen wunderlist-Modul habe ich mir nach langem Überlegen todoist ausgesucht und ein Modul entwickelt, welches ganz eng am Modul für wunderlist ausgerichtet ist. Wer also das wunderlist-Modul verwendet hat, wird sich schnell zurecht finden. Die Hilfe befindet sich im Modul. Es werden folgende Perl-Module benötigt:

IO::Socket::SSL,JSON, Data::Dumper, Digest::MD5, Date::Parse und Data::UUID

Die Definition erfolgt folgendermaßen:


--- Code: ---define <name> todoist <PROJECT-ID>
--- Ende Code ---

Die PROJECT-ID könnt ihr ggf. der URL in der todoist Browser-App entnehmen. Angenommen, die URL lautet


--- Zitat ---https://todoist.com/app?lang=de#project%2F123456789
--- Ende Zitat ---

dann entnehmt ihr die Projekt-ID für das todoist DEF: 123456789

Um die API abfragen zu können benötigt ihr einen API-Token oder API Symbol. Das findet ihr in todoist unter "Einstellungen" -> "Integration". Der Token wird FHEM per


--- Code: ---set <name> accessToken <API Symbol>
--- Ende Code ---

bekannt gemacht und kann auch geändert werden. Der Token wird am für solche Dinge üblichen Ort im FHEM-Verzeichnis abgelegt.

Das Modul wird zusammen mit einem FHEMWEB weblink-Widgets als Frontend geliefert (siehe Anlage).

Der weblink wird dann bspw. so definiert:


--- Code: ---define Einkaufsliste weblink htmlCode {todoist_Html("todoist_Einkaufsliste")}
--- Ende Code ---

für eine spezielle Liste. Dabei muss todoist_Einkaufsliste durch euer todoist-Device ersetzt werden.


--- Code: ---define Einkaufslisten weblink htmlCode {todoist_Html()}
--- Ende Code ---

für alle Listen im fhem-System nebeneinander oder


--- Code: ---define Einkaufslisten weblink htmlCode {todoist_Html('NAME=Einkauf.*')}
--- Ende Code ---

für eine Auswahl an Listen mit devspec Filter.

Feedback ist gerne gesehen, Support zum Modul gibt es hier (nicht in Echtzeit), Support zu todoist oder der API nicht (da gibt es bessere Quellen). Möglicherweise sind noch einige Bugs im System. Bei mir läuft es einige Zeit stabil, ich garantiere jedoch für nichts ;) 


Bei mir kommt das Modul zum Einsatz um unsere Einkaufsliste(n) auch von FHEM aus füllen und abfragen zu können. Es gibt sicher weitere Möglichkeiten. Die Einkaufsliste ist aber natürlich die naheliegende Variante.

Erledigte Aufgaben können nur von Premium-Usern gelesen werden. Für Standard-User gibt die API hier nichts her. Ich habe nicht getestet, was passiert, wenn man kein Premium-User ist. Vermutlich gibt es nur eine Fehlermeldung. Es gibt keine Verprobung auf den Status des Users.

Das Modul wird seit dem 15.01.2019 über FHEM-Update verteilt.


Beispiele:

Setze einen neuen Punkt auf die Einkaufsliste:

--- Code: ---set Einkaufsliste addTask 3 Brötchen
--- Ende Code ---

Setze einen neuen Punkt auf die Einkaufsliste und setze ein Fälligkeitsdatum:

--- Code: ---set Einkaufsliste addTask 3 Brötchen dueDate=2017-01-13
set Einkaufsliste addTask Milch due_date=morgen

--- Ende Code ---

Ändere einen Punkt auf der Einkaufsliste (mit todoist-ID):

--- Code: ---set Einkaufsliste updateTask ID:12345678 title='5 Brötchen' dueDate='2017-01-12'
--- Ende Code ---

Ändere einen Punkt auf der Einkaufsliste (suche Task anhand von Titel):

--- Code: ---set Einkaufsliste updateTask TITLE:Brötchen title='5 Brötchen' dueDate='2017-01-12'
--- Ende Code ---

Ändere einen Punkt auf der Einkaufsliste (mit FHEM-ID):

--- Code: ---set Einkaufsliste updateTask 2 title='5 Brötchen' due_date='2017-01-12'
set Einkaufsliste updateTask 3 title='5 Brötchen' remove=dueDate

--- Ende Code ---

Einen schon erledigten Task auf unerledigt setzen (mit todoist-ID):

--- Code: ---set Einkaufsliste uncompleteTask ID:12345678
--- Ende Code ---

Einen schon erledigten Task auf unerledigt setzen (suche Task anhand von Titel):

--- Code: ---set Einkaufsliste uncompleteTask TITLE:Brot
--- Ende Code ---

Einen schon erledigten Task auf unerledigt setzen (mit FHEM-ID):

--- Code: ---set Einkaufsliste uncompleteTask 5
--- Ende Code ---

Hake einen Punkt auf der Einkaufsliste ab (mit todoist-ID):

--- Code: ---set Einkaufsliste completeTask ID:12345678
--- Ende Code ---

Hake einen Punkt auf der Einkaufsliste ab (suche Task anhand von Titel):

--- Code: ---set Einkaufsliste completeTask TITLE:Milch
--- Ende Code ---

Hake einen Punkt auf der Einkaufsliste ab (mit FHEM-ID):

--- Code: ---set Einkaufsliste completeTask 3
--- Ende Code ---

Lösche einen Punkt von der Einkaufsliste (suche Task anhand von Titel):

--- Code: ---set Einkaufsliste deleteTask TITLE:Käse
--- Ende Code ---

Lösche einen Punkt von der Einkaufsliste (mit todoist-ID):

--- Code: ---set Einkaufsliste deleteTask ID:12345678
--- Ende Code ---

Lösche einen Punkt von der Einkaufsliste (mit FHEM-ID):

--- Code: ---set Einkaufsliste deleteTask 3
--- Ende Code ---

Lösche alle Tasks

--- Code: ---set Einkaufsliste clearList
--- Ende Code ---

fretti:
Hallo,

Modul funktioniert auch bei mir, danke dafür.

Ist den auch ein Widget für FTUI geplant, oder wie kann man etwas in der Art wie
https://forum.fhem.de/index.php?topic=76643.0
umsetzen?

marvin78:
Von mir kommt nur das Modul. Wenn das, was du da zeigst, für wunderlist funktioniert hat, sollte es auch mit todoist funktionieren.

mahowi:
Danke fürs Modul. Funktioniert bestens, wie vorher auch schon mit Wunderlist.

Ich habe im "Icons"-Thread mal SVGs mit den Logos von Wunderlist und Todoist hochgeladen.

marvin78:
Danke dafür.


Bezüglich TUI Oberfläche: Die Intention für das Modul ist NICHT die Oberfläche der entsprechenden Apps oder Webanwendungen zu ersetzen (wie auch schon beim wunderlist-Modul) sondern die, Automationen mit FHEM möglich zu machen (bei uns ist das das Ansagen der Liste und die Aufnahme von Tasks per Sprache). Wenn sich natürlich jemand berufen fühlt, dazu eine Oberfläche zu bauen, sehr gerne. Von mir wird dazu allerdings nichts kommen.


Kleiner Tipp Am Rande: todoist wird auch von IFTTT unterstützt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln