Autor Thema: Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste) + Widget  (Gelesen 3456 mal)

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
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, MIME::Base64, Date::Parse und Data::UUID

Die Definition erfolgt folgendermaßen:

define <name> todoist <PROJECT-ID>
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

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

set <name> accessToken <API Symbol>
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 zwei FHEMWEB weblink-Widgets geliefert (siehe Anlage). Damit das funktioniert, muss die Datei todoist.js nach

<FHEMPFAD>/www/pgm2/
kopiert werden.

Der weblink wird dann bspw. so definiert:

define Einkaufsliste weblink htmlCode {todoist_Html("todoist_Einkaufsliste")}
für eine spezielle Liste. Dabei muss todoist_Einkaufsliste durch euer todoist-Device ersetzt werden.

define Einkaufslisten weblink htmlCode {todoist_AllHtml()}
für alle Listen im fhem-System nebeneinander oder

define Einkaufslisten weblink htmlCode {todoist_AllHtml('NAME=Einkauf.*')}
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.


Es fehlt (noch): completed Tasks können noch nicht gelesen werden, die User können (noch) nicht gelesen werden.

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.

Download: https://github.com/marvin78/FHEM-todoist


Beispiele:

Setze einen neuen Punkt auf die Einkaufsliste:

set Einkaufsliste addTask 3 Brötchen
Setze einen neuen Punkt auf die Einkaufsliste und setze ein Fälligkeitsdatum:
set Einkaufsliste addTask 3 Brötchen dueDate=2017-01-13
set Einkaufsliste addTask Milch due_date=morgen

Ändere einen Punkt auf der Einkaufsliste (mit todoist-ID):
set Einkaufsliste updateTask ID:12345678 title='5 Brötchen' dueDate='2017-01-12'
Ändere einen Punkt auf der Einkaufsliste (mit FHEM-ID):
set Einkaufsliste updateTask 2 title='5 Brötchen' due_date='2017-01-12'
set Einkaufsliste updateTask 3 title='5 Brötchen' remove=dueDate

Einen schon erledigten Task auf unerledigt setzen (mit todoist-ID):
set Einkaufsliste uncompleteTask ID:12345678
Einen schon erledigten Task auf unerledigt setzen (mit FHEM-ID):
set Einkaufsliste uncompleteTask 5
Hake einen Punkt auf der Einkaufsliste ab (mit todoist-ID):
set Einkaufsliste completeTask ID:12345678
Hake einen Punkt auf der Einkaufsliste ab (mit FHEM-ID):
set Einkaufsliste completeTask 3
Lösche einen Punkt von der Einkaufsliste (mit todoist-ID):
set Einkaufsliste deleteTask ID:12345678
Lösche einen Punkt von der Einkaufsliste (mit FHEM-ID):
set Einkaufsliste deleteTask 3
Lösche alle Tasks
set Einkaufsliste clearList
Updates:

28.10.2017: Bugfix für sortTasks, neues Attribut showPriority (default 0)

29.10.2017: pollIntervall kann nun auf 60 Sekunden heruntergesetzt werden. getCompleted aktiviert (ACHTUNG: Funktioniert nur für Premiumuser), uncomplete ist möglich

30.10.2017: Bugfix: Das Modul brachte FHEM zum Abstürzen, falls der todoist Dienst kein korrektes JSON liefert.

02.11.2017: Bugfix: Leeres Hash führte zum Absturz von FHEM

03.11.2017: getUsers als set und als Attribut, responsibleUid und assignedByUid

07.11.2017: beim hinzufügen und ändern von Tasks können auch assignedByUid und responsibleUid angegeben werden, assignedByUid und responsibleUid werden ausgeblendet

10.11.2017: Attribut hideId zum Verstecken der todoist ID in den Readings

11.11.2017: remove ist nun möglich (siehe Doku)

12.11.2017: Infos über das Projekt in den Internals

10.01.2018: neues Kommando "closeTask"

14.01.2018: Attribut "showIndent" => 1, indent als Reading / showOrder as Attribute

15.01.2017: parent_id für items wird ausgelesen, falls vorhanden. parent_id kann im update auch gesetzt werden / Attribut "avoidDuplicates"

17.01.2017: neues Attribut listDivider / weblink (ACHTUNG: todoist.js muss nach <FHEMPFAD>/www/pgm2/ kompiert werden

18.01.2017: delete und edit ist aus dem Widget möglich / get version / neues Widget für alle todoist Listen im System

19.01.2017: Widget für mehrere Listen kann nun mit Filer (nach Devspec) versehen werden

21.01.2017: Sortieren der Tasks aus dem Widget heraus möglich.

22.01.2017: Schöneres Widget
« Letzte Änderung: Heute um 14:55:58 von marvin78 »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline fretti

  • New Member
  • *
  • Beiträge: 29
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #1 am: 27 Oktober 2017, 23:40:05 »
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?
raspberry pi, HM-LAN, RFXtrx433

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #2 am: 28 Oktober 2017, 10:00:14 »
Von mir kommt nur das Modul. Wenn das, was du da zeigst, für wunderlist funktioniert hat, sollte es auch mit todoist funktionieren.
« Letzte Änderung: 28 Oktober 2017, 10:31:45 von marvin78 »

Offline mahowi

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 909
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #3 am: 28 Oktober 2017, 10:24:35 »
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.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #4 am: 28 Oktober 2017, 10:36:22 »
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.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #5 am: 28 Oktober 2017, 15:24:19 »
Kleines Update im ersten Post. Es gab noch einen Bug bei der Sortierung nach Alphabet und ich habe ein Attribut "showPriority" eingeführt. Dieses steht default auf 0 (nicht zeigen).

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1041
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #6 am: 28 Oktober 2017, 17:48:29 »
Habe das Modul noch nicht getestet, aber vorab mal ne frage:
Wie ist das Aktualisierungsintervall und ist es einstellbar, wie wäre der kleinste Intervall ?

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #7 am: 28 Oktober 2017, 19:55:00 »
Wie bei wunderlist auch. Per Attribut einstellbar. Bin unterwegs und nicht sicher, was das Minimum ist. Ein at mit getTasks geht aber immer. Intern wird auch nichts anderes verwendet. Wie oft möchtest du denn abrufen? Ich vermute,  dass die API bei gewissen Frequenzen versagt bzw. gesperrt wird.

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1041
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #8 am: 28 Oktober 2017, 20:00:36 »
Die Anbindung an ifttt ist interessant, dann könnte man Dinge von ifttt an FHEM senden...

Offtopic:

Ich versuche im Moment nen vernünftigen und sicheren Weg von ifttt etwas an FHEM zu bekommen, möglichst „realtime“, wobei das mit deinem Modul wahrscheinlich nicht möglich sein wird.

Ich lese auch gerade viel über SLACK, mal schauen was da evtl. machbar wäre, leider bin ich im programmieren ne 0.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #9 am: 29 Oktober 2017, 09:50:09 »
Die neue Version erlaubt das Heruntersetzen des pollintervals auf 60 Sekunden. Außerdem können completed Tasks gelesen werden (Attribut: getCompleted).


Achtung: 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.

Offline Cobra

  • Full Member
  • ***
  • Beiträge: 195
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #10 am: 29 Oktober 2017, 20:44:58 »
Hallo Marvin,

erst einmal danke für das Modul.

Hab es eingerichtet und funktioniert perfekt.

Einzig was mir aufgefallen ist:

Wenn eine Liste leer ist dann kommt bei jedem Abruf folgende Meldung im Log:

2017.10.29 20:40:06 1:     main::__ANON__                      called by fhem.pl (691)
2017.10.29 20:40:06 1:     main::todoist_GetTasksCallback      called by FHEM/HttpUtils.pm (562)
2017.10.29 20:40:06 1:     main::readingsBulkUpdate            called by ./FHEM/98_todoist.pm (670)
2017.10.29 20:40:06 1: stacktrace:
2017.10.29 20:40:06 1: readingsUpdate(TDI.Einkaufsliste,listText,-) missed to call readingsBeginUpdate first.
2017.10.29 20:40:06 1:     main::__ANON__                      called by fhem.pl (691)
2017.10.29 20:40:06 1:     main::todoist_GetTasksCallback      called by FHEM/HttpUtils.pm (562)
2017.10.29 20:40:06 1:     main::readingsBulkUpdate            called by ./FHEM/98_todoist.pm (579)
2017.10.29 20:40:06 1: stacktrace:
2017.10.29 20:40:06 1: readingsUpdate(TDI.Einkaufsliste,count,0) missed to call readingsBeginUpdate first.
2017.10.29 20:40:06 3: todoist (TDI.Einkaufsliste): no data

Kann das irgendwie noch geändert werden (außer dass ich jetzt Verbose auf 0 setze)?
Hab jetzt erstmal etwas in die Einkaufsliste gesetzt was dauerhaft drin steht um die Meldung zu umgehen.

Gruß Cobra
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #11 am: 29 Oktober 2017, 21:24:46 »
Das sollte in der aktuellen Version von heute Nachmittag schon gefixt sein.

Offline Cobra

  • Full Member
  • ***
  • Beiträge: 195
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #12 am: 29 Oktober 2017, 21:32:03 »
Perfekt, gerade getestet.

Jetzt steht nur noch:

2017.10.29 21:30:26 3: todoist (TDI.Einkaufsliste): no data
Das passt soweit  :D

Danke

Gruß Cobra
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM
« Antwort #13 am: 29 Oktober 2017, 21:34:19 »
So soll es sein. Danke für's Testen!

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Bugfix: Das Modul konnte FHEM zum Abstürzen bringen, wenn das von todoist gelieferte JSON falsch formatiert ist oder kein JSON-String zurück geliefert wird. Das ist z.B. der Fall, wenn die API nicht erreichbar ist. Das sollte nun nicht mehr passieren.
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline smn_fx

  • New Member
  • *
  • Beiträge: 12
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #15 am: 01 November 2017, 17:27:05 »
Hi, bei mir klappt es nocht nicht so ganz mit dem Modul. Ich habe ein "Projekt" angelegt, aber in FHEM wird nur no data angezeigt, obwohl die Liste Elemente enthält. Mit addTask kann ich auch nichts hinzufügen. Wenn ich manuell getTasks mache, kommen mit verbose 5 folgende Logeinträge:

2017.11.01 17:17:55 4: todoist (Geburtstage): set getTasks manually. Timer restartet.
2017.11.01 17:17:58 5: Geburtstage: hash: $VAR1 = {
          'NR' => 242,
          'NAME' => 'Geburtstage',
          'NOTIFYDEV' => 'global',
          'TYPE' => 'todoist',
          'PID' => '08157774711',
          'STATE' => 'active',
          'helper' => {
                        'errorData' => ''
                      },
          'READINGS' => {
                          'lastError' => {
                                           'VAL' => 'no data',
                                           'TIME' => '2017-11-01 17:17:33'
                                         },
                          'state' => {
                                       'VAL' => 'active',
                                       'TIME' => '2017-11-01 16:57:02'
                                     },
                          'listText' => {
                                          'TIME' => '2017-11-01 17:17:33',
                                          'VAL' => '-'
                                        },
                          'error' => {
                                       'VAL' => 'no data',
                                       'TIME' => '2017-11-01 17:17:33'
                                     }
                        },
          'NTFY_ORDER' => '50-Geburtstage',
          'INTERVAL' => 1800,
          'DEF' => '08157774711'
        };

2017.11.01 17:17:58 4: todoist (Geburtstage): Curl Data: $VAR1 = {
          'project_id' => '08157774711',
          'token' => '0815b0b5111337ee7d56be6e4711b0ffc2e51111'
        };

2017.11.01 17:17:58 4: todoist (Geburtstage): Param: $VAR1 = {
          'method' => 'POST',
          'completed' => 0,
          'timeout' => 7,
          'data' => {
                      'project_id' => '08157774711',
                      'token' => '0815b0b5111337ee7d56be6e4711b0ffc2e51111'
                    },
          'callback' => sub { "DUMMY" },
          'header' => 'Content-Type: application/x-www-form-urlencoded',
          'url' => 'https://todoist.com/api/v7/projects/get_data',
          'hash' => {
                      'NR' => 242,
                      'NAME' => 'Geburtstage',
                      'NOTIFYDEV' => 'global',
                      'TYPE' => 'todoist',
                      'PID' => '08157774711',
                      'STATE' => 'active',
                      'helper' => {
                                    'errorData' => ''
                                  },
                      'READINGS' => {
                                      'lastError' => {
                                                       'VAL' => 'no data',
                                                       'TIME' => '2017-11-01 17:17:33'
                                                     },
                                      'state' => {
                                                   'VAL' => 'active',
                                                   'TIME' => '2017-11-01 16:57:02'
                                                 },
                                      'listText' => {
                                                      'TIME' => '2017-11-01 17:17:33',
                                                      'VAL' => '-'
                                                    },
                                      'error' => {
                                                   'VAL' => 'no data',
                                                   'TIME' => '2017-11-01 17:17:33'
                                                 }
                                    },
                      'NTFY_ORDER' => '50-Geburtstage',
                      'INTERVAL' => 1800,
                      'DEF' => '08157774711'
                    }
        };

2017.11.01 17:17:59 4: todoist (Geburtstage):  Task Callback data-raw: $VAR1 = '{"error_tag":"INVALID_ARGUMENT_VALUE","error_code":20,"http_code":400,"error_extra":{"expected":"number","argument":"project_id"},"error":"Invalid argument value"}';

2017.11.01 17:17:59 5: todoist (Geburtstage):  Task Callback param: $VAR1 = {
          'method' => 'POST',
          'displayurl' => 'https://todoist.com/api/v7/projects/get_data',
          'conn' => undef,
          'url' => 'https://todoist.com/api/v7/projects/get_data',
          'header' => 'Content-Type: application/x-www-form-urlencoded',
          'host' => 'todoist.com',
          'loglevel' => 4,
          'httpheader' => 'HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 163
Connection: close
Date: Wed, 01 Nov 2017 16:17:59 GMT
Cache-Control: no-cache
P3p: policyref="/static/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Cache: Error from cloudfront
Via: 1.1 f2cc6dbe7150e50a6bc010a2d6868e5f.cloudfront.net (CloudFront)
X-Amz-Cf-Id: qhCag0_i8RNwEd_s-NK858ydjApzhNKo6rla9BWJE8gV-UE5bsROgA==',
          'hu_filecount' => 1,
          'code' => '400',
          'hash' => {
                      'NR' => 242,
                      'NAME' => 'Geburtstage',
                      'NOTIFYDEV' => 'global',
                      'TYPE' => 'todoist',
                      'PID' => '08157774711',
                      'STATE' => 'active',
                      'helper' => {
                                    'errorData' => ''
                                  },
                      'READINGS' => {
                                      'lastError' => {
                                                       'VAL' => 'no data',
                                                       'TIME' => '2017-11-01 17:17:33'
                                                     },
                                      'state' => {
                                                   'VAL' => 'active',
                                                   'TIME' => '2017-11-01 16:57:02'
                                                 },
                                      'listText' => {
                                                      'TIME' => '2017-11-01 17:17:33',
                                                      'VAL' => '-'
                                                    },
                                      'error' => {
                                                   'VAL' => 'no data',
                                                   'TIME' => '2017-11-01 17:17:33'
                                                 }
                                    },
                      'NTFY_ORDER' => '50-Geburtstage',
                      'INTERVAL' => 1800,
                      'DEF' => '08157774711'
                    },
          'sslargs' => {},
          'completed' => 0,
          'buf' => '',
          'timeout' => 7,
          'path' => '/api/v7/projects/get_data',
          'redirects' => 0,
          'callback' => sub { "DUMMY" },
          'data' => {
                      'project_id' => '08157774711',
                      'token' => '0815b0b5111337ee7d56be6e4711b0ffc2e51111'
                    },
          'hu_blocking' => 0,
          'hu_portSfx' => '',
          'NAME' => '',
          'protocol' => 'https',
          'addr' => 'https://todoist.com:443',
          'hu_port' => 443
        };

2017.11.01 17:17:59 5: todoist (Geburtstage):  Task Callback data (decoded JSON): $VAR1 = {
          'error_tag' => 'INVALID_ARGUMENT_VALUE',
          'error_extra' => {
                             'argument' => 'project_id',
                             'expected' => 'number'
                           },
          'error_code' => 20,
          'error' => 'Invalid argument value',
          'http_code' => 400
        };

2017.11.01 17:17:59 3: todoist (Geburtstage): no data

Und hier noch list Geburtstage
Internals:
   DEF        08157774711
   INTERVAL   1800
   NAME       Geburtstage
   NOTIFYDEV  global
   NR         242
   NTFY_ORDER 50-Geburtstage
   PID        08157774711
   STATE      active
   TYPE       todoist
   READINGS:
     2017-11-01 17:17:59   error           no data
     2017-11-01 17:17:59   lastError       no data
     2017-11-01 17:17:59   listText        -
     2017-11-01 16:57:02   state           active
   helper:
     errorData
Attributes:
   room       Test
   verbose    5

Wo könnte das Problem liegen? (außer vorm Bildschirm...)


Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #16 am: 01 November 2017, 18:06:34 »
Das im DEF sieht nicht nach einer korrekten Projekt ID aus.

Offline smn_fx

  • New Member
  • *
  • Beiträge: 12
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #17 am: 01 November 2017, 18:12:15 »
Habe Projekt ID und token natürlich geändert  :)

Die Projekt ID habe ich aus der URL. Alles was ich hier durch # ersetzt habe:
https://todoist.com/app?lang=de#project%###########

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #18 am: 01 November 2017, 18:23:50 »
Das ist zu viel. Die ID ist numerisch. Aktuell fängt sie sicher mit 2 an und startet hinter dem F.

Offline smn_fx

  • New Member
  • *
  • Beiträge: 12
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #19 am: 01 November 2017, 18:33:19 »
Oh man es kann so einfach sein :) Habe 2F entfernt und es läuft... Danke!

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #20 am: 01 November 2017, 19:53:18 »
Ich habe im ersten Post einen Abschnitt ergänzt, der mit einem Beispiel zeigt, wie man an die Projekt-ID kommt.

Offline Cobra

  • Full Member
  • ***
  • Beiträge: 195
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #21 am: 01 November 2017, 23:43:41 »
Hatte vorhin einen Absturz von FHEM.

Das letzte was im Log stand war folgendes:

Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_todoist.pm line 585.
Aktuellste Version des Moduls hab ich installiert.
Vielleicht kannst du ja auf Anhieb erkennen warum sich FHEM aufhängen könnte. Falls nicht bitte kurz um Mitteilung was ich tun kann um ggfs. den Fehler zu loggen.

Seit Tagen ist das Modul stabil gelaufen.

Gruß Cobra
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #22 am: 02 November 2017, 06:47:58 »
Ich habe eine neue Version eingecheckt. Bitte testen und ggf. das Log auf verbose 4 hochdrehen.

Offline Cobra

  • Full Member
  • ***
  • Beiträge: 195
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #23 am: 02 November 2017, 07:35:43 »
Hab die neue Version geladen und lass jetzt einfach mal mit Verbose 4 laufen.
Gebe dann spätestens heut Abend Rückmeldung ob nochmal ein Absturz kam oder ob es läuft.

Gruß Cobra
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #24 am: 02 November 2017, 08:10:53 »
Es sollte eigentlich nicht mehr vorkommen. Aber danke, dass du die Augen offen hälst!

Offline Cobra

  • Full Member
  • ***
  • Beiträge: 195
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #25 am: 02 November 2017, 19:22:27 »
Seit der neuen Version keine Probleme mehr :D

Danke
RaspberryPI 3 mit Raspbian Jessie, HMLAN/HM-LAN-Gateway
Diverse HM-Komponenten, Netatmo, Hue, Sonos, Nuki, Alexa

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #26 am: 03 November 2017, 14:13:19 »
In der neuen Version (von heute um 14:06) werden auch die User mit ihren IDs ausgelesen. Das ganze passiert automatisch nach einem "getTasks", egal ob im regulären Interval im Hintergrund oder manuell. Der Automatismus kann per Attribut "autoGetUsers" deaktiviert werden (auf 0 stellen, default ist 1). "set <dev> getUsers" holt die User manuell ab. Außerdem werden zu den Tasks die assignedByUid und die responsibleUid ausgelesen.


Damit ist mindestens die gleiche Funktionalität erreicht, die auch das wunderlist-Modul hat.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #27 am: 07 November 2017, 14:12:51 »
Mit einem neuen update können nun auch assignedByUid und responsibleUid beim hinzufügen oder ändern eines Tasks angegeben werden.


Weil es mich selbst etwas genervt hat: die Readings zu assignedByUid und responsibleUid werden in der neuen Version im default ausgblendet, sie können aber jeweils per Attribut sichtbar gemacht werden.
« Letzte Änderung: 08 November 2017, 10:09:56 von marvin78 »

Offline Mitch

  • Hero Member
  • *****
  • Beiträge: 2012
  • Give more - Expect less
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #28 am: 10 November 2017, 10:15:51 »
In der neuen Version (von heute um 14:06) werden auch die User mit ihren IDs ausgelesen. Das ganze passiert automatisch nach einem "getTasks", egal ob im regulären Interval im Hintergrund oder manuell. Der Automatismus kann per Attribut "autoGetUsers" deaktiviert werden (auf 0 stellen, default ist 1). "set <dev> getUsers" holt die User manuell ab. Außerdem werden zu den Tasks die assignedByUid und die responsibleUid ausgelesen.


Damit ist mindestens die gleiche Funktionalität erreicht, die auch das wunderlist-Modul hat.

Kann ich die assignedByUid und die Task_000_ID auch per Attribut deaktivieren?

Ich habe die sonst in meiner ReadingsGroup und da bekomme ich sie nicht raus  :P
FHEM auf Intel NUC mit Ubuntu Server, CUNOv2 - FHZ1300 - FritzDECT - 2x HM-LAN - Z-Wave - SIGNALduino@433 - SIGNALduino@868 - Homebridge - Alexa - Nest Protect
RaspberryPi als Room Node per FHEM2FHEM

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #29 am: 10 November 2017, 10:32:14 »

Weil es mich selbst etwas genervt hat: die Readings zu assignedByUid und responsibleUid werden in der neuen Version im default ausgblendet, sie können aber jeweils per Attribut sichtbar gemacht werden.


Die ID kann nicht ausgeblendet werden.


Edit: Aber ich denke readingsGroup kann das.

Offline Mitch

  • Hero Member
  • *****
  • Beiträge: 2012
  • Give more - Expect less
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #30 am: 10 November 2017, 10:36:53 »
Danke marvin, das hatte ich übersehen.

Aber wenn Du schreibst
Zitat
Weil es mich selbst etwas genervt hat: die Readings zu assignedByUid und responsibleUid werden in der neuen Version im default ausgblendet, sie können aber jeweils per Attribut sichtbar gemacht werden.

Heißt das für mich, die IDs sind jetzt ausgeblendet? Bei mir sind sie noch sichtbar?
FHEM auf Intel NUC mit Ubuntu Server, CUNOv2 - FHZ1300 - FritzDECT - 2x HM-LAN - Z-Wave - SIGNALduino@433 - SIGNALduino@868 - Homebridge - Alexa - Nest Protect
RaspberryPi als Room Node per FHEM2FHEM

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #31 am: 10 November 2017, 10:52:23 »
Nein. Die ID wird nicht ausgeblendet, wie geschrieben. Ich gehe davon aus, dass die ID als Reading wichtig ist um damit arbeiten zu können.


Aber ich denke, dass readingsGroup sowas kann.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #32 am: 10 November 2017, 11:06:36 »
Ich habe nochmal nachgesehen. Aktuell benötigt das Modul auch selbst noch die ID als Reading. Bspw. sort würde ohne nicht funktionieren. Ich müsste also etwas mehr Hand anlegen, um die ID ausblendbar zu machen. Ich sage nicht, dass ich das nicht machen möchte aber sehr schnell, kann ich das nicht machen.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #33 am: 10 November 2017, 11:26:40 »
@Mitch: Teste bitte mal die angehängte Version. Wenn sie in allen Facetten funktioniert, checke ich sie ein. Es gibt ein neues Attribut "hideId".


Anhang entfernt. Download im ersten Post.
« Letzte Änderung: 10 November 2017, 12:37:39 von marvin78 »

Offline Mitch

  • Hero Member
  • *****
  • Beiträge: 2012
  • Give more - Expect less
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #34 am: 10 November 2017, 11:33:31 »
Danke marvin, sieht sehr gut aus!
FHEM auf Intel NUC mit Ubuntu Server, CUNOv2 - FHZ1300 - FritzDECT - 2x HM-LAN - Z-Wave - SIGNALduino@433 - SIGNALduino@868 - Homebridge - Alexa - Nest Protect
RaspberryPi als Room Node per FHEM2FHEM
Informativ Informativ x 1 Liste anzeigen

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #35 am: 10 November 2017, 11:37:12 »
Ich habe die Version eingecheckt. Ich bin gespannt auf mögliche Seiteneffekte ;)

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #36 am: 10 November 2017, 12:37:21 »
Ich habe in dem Zusammenhang doch noch einen Fehler in sort gefunden. Korrigiert und neu eingecheckt.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #37 am: 11 November 2017, 17:28:56 »
Es gibt nochmal eine neue Version. Fogendes ist nun möglich


set Einkaufsliste updateTask 2 remove=dueDate
set Einkaufsliste updateTask 5 remove=assignedByUid
set Einkaufsliste updateTask 5 remove=responsibleUid

So können die entsprechenden Attribute aus einem Task entfernt werden.


Für dueDate ist ebenfalls sowas möglich


set Einkaufsliste updateTask 3 dueDate='none'
set Einkaufsliste updateTask 3 dueDate='null'

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #38 am: 13 November 2017, 12:18:20 »
Die neue Version schreibt ein paar Infos über das Projekt (~Liste) in die Internals des Devices. Ggf. gibt es ja noch jemanden, der mit diesen Infos arbeiten kann/muss.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #39 am: 19 November 2017, 11:30:15 »
Einige Fragen an die Nutzer des Moduls:


Ist es aus eurer Sicht nötig, Subtasks handeln zu können? Das heißt, man müsste die parent_ids und den jeweiligen indent mit abspeichern und beim complete müsste ggf. stattdessen ein close gemacht werden. Nutze jemand Subtasks?


Nutzt jemand von euch wiederkehrende Tasks? Müssen wir hier noch das Handling verbessern?

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #40 am: 28 November 2017, 16:11:09 »
Hallo Zusammen,

ich habe das Problem, dass ich weder Tasks abrufen noch setzen kann.

Was ich bisher gemacht habe:
- 98_todoist.pm heruntergeladen, ins FHEM Verzeichnis kopiert und Rechte angepasst (777).
- define einkaufsliste todoist 1234567890 (1234567890 ist meine ProjektID hinter dem 2F von meiner Alexa Einkaufsliste)
- set einkaufsliste AccessToken 5e118ec11ad55b9f1146847de2f21118e8d9d5e5 (Token geändert - es stammt aus meinen Einstellungen, Unterpunkt Integration)

Bei den Readings steht immer "no data" - egal was ich mache.

Wie kann ich den Fehler eingrenzen?

Lieben Gruß, Sprudelverduenner
« Letzte Änderung: 28 November 2017, 16:20:16 von sprudelverduenner »
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #41 am: 28 November 2017, 16:14:38 »
Die Rechte auf 777 funktioniert zwar, ist aber keine gute Idee. Bitte group dialout und User fhem setzen.

Hier gilt das gleiche, wie überall hier im Forum. Man benötigt immer ALLE Infos. Das heißt, ein list vom todoist Device, du solltest ins Log schauen, ggf. die entsprechenden Fehler hier posten (verbose 4 oder 5). Andernfalls kann ich nur raten.

Einmal rate ich: Ist denn was in der Liste? Nutzt du denn da todoist? Eigentlich hat das erstmal nichts mit Alexa zu tun (auch wenn man es integrieren kann).

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #42 am: 28 November 2017, 16:22:58 »
Internals:
   CFGFN
   DEF        1234567890
   INTERVAL   60
   NAME       einkaufszettel
   NOTIFYDEV  global
   NR         772
   NTFY_ORDER 50-einkaufszettel
   PID        1234567890
   STATE      active
   TYPE       todoist
   READINGS:
     2017-11-28 16:20:19   error           no data
     2017-11-28 16:20:19   lastError       no data
     2017-11-28 15:48:31   state           active
   helper:
     errorData
     errorMessage
Attributes:
   pollInterval 60
   room       Home

In der Liste ist ein Eintrag, den ich sowohl im Browser als auch in der APP sehen kann.

Verbose 5 kommt sogleich ...
« Letzte Änderung: 28 November 2017, 16:31:54 von sprudelverduenner »
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #43 am: 28 November 2017, 16:30:39 »
2017.11.28 16:24:17 5: einkaufszettel: hash: $VAR1 = {
          'READINGS' => {
                          'lastError' => {
                                           'TIME' => '2017-11-28 16:23:20',
                                           'VAL' => 'no data'
                                         },
                          'error' => {
                                       'TIME' => '2017-11-28 16:23:20',
                                       'VAL' => 'no data'
                                     },
                          'state' => {
                                       'TIME' => '2017-11-28 15:48:31',
                                       'VAL' => 'active'
                                     }
                        },
          'DEF' => '1234567890',
          'NOTIFYDEV' => 'global',
          'helper' => {
                        'errorMessage' => '',
                        'errorData' => ''
                      },
          'NR' => 772,
          'INTERVAL' => 60,
          'NAME' => 'einkaufszettel',
          'CFGFN' => '',
          'PID' => 1234567890,
          'TYPE' => 'todoist',
          'STATE' => 'active',
          'NTFY_ORDER' => '50-einkaufszettel'
        };

2017.11.28 16:24:17 4: todoist (einkaufszettel): Curl Data: $VAR1 = {
          'token' => '5e6d8ec5cad55b9fba46811112f20a18e8d9d5e5',
          'project_id' => 1234567890
        };

2017.11.28 16:24:17 4: todoist (einkaufszettel): Param: $VAR1 = {
          'data' => {
                      'token' => '5e6d8ec5cad55b9fba46811112f20a18e8d9d5e5',
                      'project_id' => 1234567890
                    },
          'hash' => {
                      'READINGS' => {
                                      'lastError' => {
                                                       'TIME' => '2017-11-28 16:23:20',
                                                       'VAL' => 'no data'
                                                     },
                                      'error' => {
                                                   'TIME' => '2017-11-28 16:23:20',
                                                   'VAL' => 'no data'
                                                 },
                                      'state' => {
                                                   'TIME' => '2017-11-28 15:48:31',
                                                   'VAL' => 'active'
                                                 }
                                    },
                      'DEF' => '1234567890',
                      'NOTIFYDEV' => 'global',
                      'helper' => {
                                    'errorMessage' => '',
                                    'errorData' => ''
                                  },
                      'NR' => 772,
                      'INTERVAL' => 60,
                      'NAME' => 'einkaufszettel',
                      'CFGFN' => '',
                      'PID' => 1234567890,
                      'TYPE' => 'todoist',
                      'STATE' => 'active',
                      'NTFY_ORDER' => '50-einkaufszettel'
                    },
          'timeout' => 7,
          'callback' => sub { "DUMMY" },
          'url' => 'https://todoist.com/api/v7/projects/get_data',
          'method' => 'POST',
          'header' => 'Content-Type: application/x-www-form-urlencoded',
          'completed' => 0
        };

2017.11.28 16:24:17 4: todoist (einkaufszettel):  Task Callback data-raw: $VAR1 = '';

2017.11.28 16:24:17 5: todoist (einkaufszettel):  Task Callback param: $VAR1 = {
          'protocol' => 'https',
          'hu_blocking' => 0,
          'loglevel' => 4,
          'conn' => undef,
          'hu_port' => 443,
          'hu_portSfx' => '',
          'timeout' => 7,
          'displayurl' => 'https://todoist.com/api/v7/projects/get_data',
          'url' => 'https://todoist.com/api/v7/projects/get_data',
          'method' => 'POST',
          'completed' => 0,
          'NAME' => '',
          'sslargs' => {},
          'data' => {
                      'token' => '5e6d8ec5cad55b9fba46811112f20a18e8d9d5e5',
                      'project_id' => 1234567890
                    },
          'path' => '/api/v7/projects/get_data',
          'host' => 'todoist.com',
          'hash' => {
                      'READINGS' => {
                                      'lastError' => {
                                                       'TIME' => '2017-11-28 16:23:20',
                                                       'VAL' => 'no data'
                                                     },
                                      'error' => {
                                                   'TIME' => '2017-11-28 16:23:20',
                                                   'VAL' => 'no data'
                                                 },
                                      'state' => {
                                                   'TIME' => '2017-11-28 15:48:31',
                                                   'VAL' => 'active'
                                                 }
                                    },
                      'DEF' => '1234567890',
                      'NOTIFYDEV' => 'global',
                      'helper' => {
                                    'errorMessage' => '',
                                    'errorData' => ''
                                  },
                      'NR' => 772,
                      'INTERVAL' => 60,
                      'NAME' => 'einkaufszettel',
                      'CFGFN' => '',
                      'PID' => 1234567890,
                      'TYPE' => 'todoist',
                      'STATE' => 'active',
                      'NTFY_ORDER' => '50-einkaufszettel'
                    },
          'redirects' => 0,
          'callback' => sub { "DUMMY" },
          'addr' => 'https://todoist.com:443',
          'header' => 'Content-Type: application/x-www-form-urlencoded'
        };

2017.11.28 16:24:17 2: todoist (einkaufszettel): Error Message: no data
2017.11.28 16:24:17 3: todoist (einkaufszettel): Api-Error Callback-data: https://todoist.com/api/v7/projects/get_data: Can't connect(2) to https://todoist.com:443:  SSL connect attempt failed with unknown error error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
2017.11.28 16:24:17 1: readingsUpdate(einkaufszettel,listText,-) missed to call readingsBeginUpdate first.
2017.11.28 16:24:17 1: stacktrace:
2017.11.28 16:24:17 1:     main::readingsBulkUpdate            called by ./FHEM/98_todoist.pm (762)
2017.11.28 16:24:17 1:     main::todoist_GetTasksCallback      called by FHEM/HttpUtils.pm (374)
2017.11.28 16:24:17 1:     main::__ANON__                      called by fhem.pl (707)
2017.11.28 16:24:19 5: einkaufszettel: hash: $VAR1 = {
          'READINGS' => {
                          'lastError' => {
                                           'TIME' => '2017-11-28 16:24:17',
                                           'VAL' => 'no data'
                                         },
                          'error' => {
                                       'TIME' => '2017-11-28 16:24:17',
                                       'VAL' => 'no data'
                                     },
                          'state' => {
                                       'TIME' => '2017-11-28 15:48:31',
                                       'VAL' => 'active'
                                     }
                        },
          'DEF' => '1234567890',
          'NOTIFYDEV' => 'global',
          'helper' => {
                        'errorMessage' => '',
                        'errorData' => ''
                      },
          'NR' => 772,
          'INTERVAL' => 60,
          'NAME' => 'einkaufszettel',
          'CFGFN' => '',
          'PID' => 1234567890,
          'TYPE' => 'todoist',
          'STATE' => 'active',
          'NTFY_ORDER' => '50-einkaufszettel'
        };

2017.11.28 16:24:19 5: todoist (einkaufszettel): Param: $VAR1 = {
          'hash' => {
                      'READINGS' => {
                                      'lastError' => {
                                                       'TIME' => '2017-11-28 16:24:17',
                                                       'VAL' => 'no data'
                                                     },
                                      'error' => {
                                                   'TIME' => '2017-11-28 16:24:17',
                                                   'VAL' => 'no data'
                                                 },
                                      'state' => {
                                                   'TIME' => '2017-11-28 15:48:31',
                                                   'VAL' => 'active'
                                                 }
                                    },
                      'DEF' => '1234567890',
                      'NOTIFYDEV' => 'global',
                      'helper' => {
                                    'errorMessage' => '',
                                    'errorData' => ''
                                  },
                      'NR' => 772,
                      'INTERVAL' => 60,
                      'NAME' => 'einkaufszettel',
                      'CFGFN' => '',
                      'PID' => 1234567890,
                      'TYPE' => 'todoist',
                      'STATE' => 'active',
                      'NTFY_ORDER' => '50-einkaufszettel'
                    },
          'callback' => sub { "DUMMY" },
          'timeout' => 7,
          'url' => 'https://todoist.com/api/v7/sync',
          'method' => 'POST',
          'data' => {
                      'sync_token' => '*',
                      'token' => '5e6d8ec5cad55b9fba46811112f20a18e8d9d5e5',
                      'resource_types' => '["collaborators"]'
                    },
          'header' => 'Content-Type: application/x-www-form-urlencoded'
        };

2017.11.28 16:24:20 5: todoist (einkaufszettel): User Callback data: $VAR1 = '';

2017.11.28 16:24:20 2: todoist (einkaufszettel): Error Message: no data
2017.11.28 16:24:20 3: todoist (einkaufszettel): Api-Error Callback-data: https://todoist.com/api/v7/sync: Can't connect(2) to https://todoist.com:443:  SSL connect attempt failed with unknown error error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

ich hoffe das hilft ... Token und ID sind geändert.

Danke vorab für Deine Hilfe.
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #44 am: 28 November 2017, 16:42:29 »
Wie da steht, gibt es ein Problem mit deiner ssl Version. Ich kann es nicht genau sagen, aber es könnte an der config deines Servers liegen.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #45 am: 28 November 2017, 16:58:28 »
Nach ein wenig Recherche nutzt du wohl eine zu alte SSL Version auf deinem Server. Was du tun kannst, beantwortet dir google und die entsprechenden Stellen aber besser als ich.

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #46 am: 28 November 2017, 18:19:53 »
im meinem Fall betreibe ich einen raspberry pi.

du meinst die SSL Version von der Linux Distribution ?

Sorry, bin nicht der Linux Profi...
« Letzte Änderung: 28 November 2017, 19:14:51 von sprudelverduenner »
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #47 am: 28 November 2017, 19:07:23 »
Ich weiß zu wenig über dein System und bin auch kein ausgewiesener Linux Experte.

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #48 am: 29 November 2017, 12:05:45 »
Danke für Deine Hinweise.

Ich habe gestern erst einmal mein Debian Wheezy auf dem RasPi auf Jessie upgegradet.
Dort bliebt allerdings der Fehler bestehen.

Dann habe ich eben einen Hinweis gefunden mit
sudo apt-get install libio-socket-ssl-perldas Paket nach zu installieren.

Jetzt läuft bei mir Dein Modul....
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Antw:Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste)
« Antwort #49 am: 07 Dezember 2017, 07:04:08 »
Es wird empfohlen bei jeder FHEM Installation auch IO::Socket::SSL zu installieren. Deshalb habe ich es für das Modul nicht explizit erwähnt. Ich habe es aber vorne ergänzt.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Aufgrund eines issues im git: Es gibt einen neuen set Befehl "closeTask". Dieser unterscheidet sich von "completeTask" wie folgt:

Zitat
regular task is completed and moved to history, subtask is checked (marked as done, but not moved to history), recurring task is moved forward (due date is updated).
« Letzte Änderung: 10 Januar 2018, 11:09:35 von marvin78 »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Super, vielen Dank für das Modul! :-)

Cheers,

Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Durch Attribut "showIndent" kann ab sofort auch das indent (Einrücken) eines Tasks in einem Reading dargestellt werden. Die Stufe der Einrückung wird als Integer angezeigt. Das kann für Steuerungen aber auch für etwaige Frontends verwendet werden.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Natürlich würde man, wenn man "sortTasks" verwendet (verwende ich nicht, deshalb habe ich das zunächst vergessen) auch noch die "order" benötigen, da man sonst den Subtask nicht zuordnen kann. Dazu habe ich noch das Attribut "showOrder" eingeführt.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Die parent_id eines items wird nun ausgelesen. Setzen geht aber über die API leider nur im update. Will man also einem Task einen parent zuweisen, muss man zuerst createTask und dann updateTask aufrufen. indent wird in dem Fall automatisch um 1 zum parent erhöht.
« Letzte Änderung: 15 Januar 2018, 14:09:02 von marvin78 »

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Neues Attribut: "avoidDuplicates"

Setzt man es auf 1, wird auf gleiche Titel in der vorhandenen Taskliste gecheckt und das hinzufügen von Duplikaten verhindert.

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Hallo,

ich habe hier https://forum.fhem.de/index.php/topic,82883.0.html ein widget für ftui für todoist gebastelt. Vielleicht möchte es ja jemand testen?

@marvin78: Beim Erstellen bin ich auf folgendes Problem gestoßen:
Das Modul erstellt für jeden Task ein eigenes Reading, da wird dann aber (scheinbar) kein event gefeuert, das ftui versteht. ein event-on-change-reading bringt hier auch nichts. Es gibt natürlich auch das Reading listText, aber wenn ein Task einen Beistrich enthält, gibts hier Probleme   :( Hast Du dazu evtl eine Idee? Danke übrigens für das avoidDuplicates - erspart eine Menge Probleme  8)

Cheers,

Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Die Tasks werden immer gelöscht und neu geschrieben. Das ist ggf. der Grund für das Problem. Das lässt sich aber nicht anders machen. Auf count könnte man triggern, ist aber ggf. bei Update nicht hilfreich. Was ist das Problem mit listText genau? Das habe ich nicht verstanden.

Edit: Ach du kommst aus Österreich, richtig? ;) Tasks sollten kein Komma enthalten. Dafür gibt es mehrere Gründe. Warum enthalten deine Tasks ein Komma?

Edit2: Du könntest ggf. auf error triggern. Das wird immer gesetzt und ggf. auf none gesetzt (dann mit event-on-update-reading). Zum Komma nochmal: Ich hänge da in listText nicht dran, ich könnte auch rein auf Leerzeichen umstellen. Allerdings weiß ich nicht, ob hier andere ein Problem bekommen. Es könnte ggf. die Sprachausgabe (für die das Reading ursprünglich mal gedacht war) verändern. Ich bin auch bereit, ein komplett neues Reading zu setzen, das bei jeder Änderung einen eindeutigen Wert setzt.
« Letzte Änderung: 17 Januar 2018, 07:02:03 von marvin78 »

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Ich habe eine Version angehängt, die ein ganz rudimentäres Widget als weblink enthält. Einbinden per

defmod <NAME> weblink htmlCode {todoist_Html("<TODOIST_DEVICE>")}
Die todoist.js Datei muss dazu in das Verzeichnis

<FHEM-PFAD>/www/pgm2/
Edit: Anhänge entfernt. Widget ist mittlerweile in der Version im git.
« Letzte Änderung: 17 Januar 2018, 15:44:46 von marvin78 »

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Hallo,

Wow bist du schnell, danke!
Würde das aber trotzdem gerne als ftui Widget machen.
Was hältst du denn von folgender Idee:
Ein neues Attribut (zb listDivider), mit dem man die Trennzeichen nach Bedarf einstellen kann?
Wenn man hier z.B. #! einstellt, sollte man auf der sicheren Seite sein.
Und alle, die das nicht brauchen, haben weiter als default das Komma.
Wäre so eine Idee und bei einem divider aus mehreren Zeichen könnte eigentlich nichts mehr schief gehen.
Und ja, ich komme aus Österreich  :)

Cheers,
Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Das mit dem FHEMWEB Widget hatte jetzt gar nichts mit deiner Anfrage zu tun. Das habe ich schon vorher auf den Zettel gehabt. Es ist auch nicht fertig. Über das Attribut denke ich nach.

Was ich an deinen Ausführungen nicht verstanden habe: Warum macht das Komma für das Event, das du benötigst, ein Problem? Ich verstehe zwar, dass es ein Problem bei der Ansicht macht, aber nicht warum, das Event nicht für das Widget verwendet werden kann?!

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Hi,

technisch macht das Komma kein Problem. Aber ich habe bedenken, weil man schnell mal ein Komma eingibt und dann kommt es zu Problemen...
Cheers,
Puls
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Die neue Version im git hat das gewünschte Attribut und auch das neue Widget ist eingebaut. Die Datei todoist.js muss nach

<FHEMPFAD>/www/pgm2/
kopiert werden.

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Wow, danke sehr!
Werde in der Nacht das ftui Widget anpassen...
Cheers,
Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Hi,

habe das widget angepasst, ist hier https://forum.fhem.de/index.php?topic=82883.msg750237#msg750237 zu finden.
@marvin78: Danke nochmal für das neue attr. Funktioniert wunderbar, das widget kommt mir jetzt (da nur noch auf das listText-Reading und nicht mehr auf die ganzen Task_-Readings geprüft wird schneller und stabiler vor).

Cheers,

Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Es gibt eine neue Version im git:

  • neuer get Befehl version
  • aus dem weblink-Widget heraus kann auch gelöscht und geändert werden. Löschen durch das x hinter dem Task, ändern durch anklicken des Task-Titels, bei Enter oder Verlassen wird gespeichert.


Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Es gibt in der neuen Version ein zweites weblink-Widget, welches alle todoist-Listen im System nebeneinander anzeigt.

Usage:

defmod <NAME> weblink htmlCode {todoist_AllHtml()}
Edit: Als Hinweis: Es können nicht beide widget-Typen in einem Raum verwendet werden.
« Letzte Änderung: 18 Januar 2018, 17:19:15 von marvin78 »

Offline pula

  • Full Member
  • ***
  • Beiträge: 484
Mann, Du bist schnell :-)
Da komm ich mit dem ftui-widget nicht hinterher :-(
Danke für Deine Arbeit!

Cheers,

Pula
fhem unter debian, hm mit HM-LAN, HM-wired, arduino firmata, mysensors, fritzbox, kodi auf cubox, vdr, onkyo, squeezeplayer auf raspi, nanoCUL, wifilight über Arduino-Ethernet-Bridge, HMW-Homebrew, Heizungssteuerung über python und vncdotool

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Ach so schnell war das gar nicht.  ;) Läuft bei mir schon eine Weile. Ich habe vor der Veröffentlichung nur noch ein paar Kleinigkeiten gefixt.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
In der neuen Version (0.7.7) kann das Widget für mehrere Listen mit einem Filter versehen werden. Beispiel

define Einkaufslisten weblink htmlCode {todoist_AllHtml('NAME=Einkauf.*')}
oder auch

define Einkaufslisten weblink htmlCode {todoist_AllHtml('listType=Einkaufen')}
wobei in Beispiel 2 "listType" bspw. ein userattr ist.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
In der Version 0.8.0 ist es möglich, tasks in den weblink widgets per Drag&Drop zu sortieren.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
In Version 0.8.1 sind einige Bugs bei der Sortierung gefixt und es kann nur noch über ein Symbol verschoben werden, dass vor der jeweiligen Zeile bei mouseover erscheint.

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Version 0.8.4: Widgets mit weniger Bugs und flexiblen Inputfeldern, flexible Tabellenbreite.

Konnte schon jemand die Widgets testen?

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Danke für deine tolle Arbeit.

Ich hatte gestern Abend die 0.81 bei mir drauf geschmissen und nur kurz getestet.

Ich habe noch einen Wetter Weblink bei mir am laufen - beide wurden nebeneinander bei mir dargestellt was sehr unschön aussah.
Gibt es dafür evt. eine Lösung?
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Welches Widget hast du verwendet? AllHtml oder Html?

Offline sprudelverduenner

  • Full Member
  • ***
  • Beiträge: 110
Ich meine ich hatte AllHTML ...
RaspberryPi mit FHEM, HMLAN + HMRS485, Homematic, ESPEasy, Fritz!Box 7490, Fritz!Fon, iPhone 5S, iPad Air, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12 WiFi, LD382 WiFi

Online marvin78

  • Hero Member
  • *****
  • Beiträge: 4812
Hast du denn mehrere Listen?

Ich habe eine neue Version 0.8.7 eingecheckt, in der das in beiden Widget-Versionen nicht mehr passieren sollte.