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

Begonnen von marvin78, 27 Oktober 2017, 16:26:48

Vorheriges Thema - Nächstes Thema

marvin78


sxx128

Zitat von: marvin78 am 25 April 2020, 16:10:34
Das ist sogar so dokumentiert  ;)

Gut, dass es läuft.

Wie gesagt. Das passiert halt wenn man sich nicht konzentriert :-)
Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

Christoph Morrison

Mir ist im Log gerade folgendes aufgefallen:

2020.04.30 12:41:47.430 1: readingsUpdate(general.interfaces.todoist.housekeeping,listText,-) missed to call readingsBeginUpdate first.
2020.04.30 12:41:47.430 1: stacktrace:
2020.04.30 12:41:47.430 1:     main::readingsBulkUpdate            called by ./FHEM/98_todoist.pm (1152)
2020.04.30 12:41:47.430 1:     main::todoist_GetTasksCallback      called by FHEM/HttpUtils.pm (416)
2020.04.30 12:41:47.430 1:     main::__ANON__                      called by FHEM/HttpUtils.pm (302)
2020.04.30 12:41:47.431 1:     main::directReadFn                  called by fhem.pl (750)


Im Device wurde no data als last error geloggt.

Ein kurzer Blick in den Code hat mir aber auch nicht klar gezeigt, warum das readingsBeginUpdate in L949 vorher nicht zieht ...
98_todoist.pm 21387 2020-03-09 07:25:00Z marvin78


marvin78

Es ist mir ein Rätsel. Nein, stimmt nicht, ich habe es kapiert.

Fehler sollte in der eben eingecheckten Version beseitigt sein.

blixx

Hm, ich bekomme bei -_>completetask title: Biomuell rausbringen<_- immer "task Biomuell not found"
Wie muss ich das leerzeichen codieren, damit er den gesamten Titel zum löschen nimmt und NICHT nach dem Leerzeichen abschneidet?

marvin78


blixx

leider nein:
---->set FaListe completeTask title:"Biomuell rausbringen"

<task 'Biomuell not found>

bzw.
   
<task "Biomuell not found>

marvin78

Spätestens in der Version, die morgen früh per Update kommt, sollte folgendes gehen:

set FaListe completeTask title=Biomuell rausbringen

Ich bin der Meinung, dass das schon jetzt gehen sollte.

blixx

 :) :D ;D
Es FUNKTIONIERT!
Dankeschön!
Hast du eine Kaffee(Kleingeld)tasse?

Wen es interessiert:
Ich teile mir eine ToDoListe mit meinen Mitbewohnern (Haus) und die vergessen manchmal in der Liste abzuhaken, dass sie den Müll rausgebracht haben.
Darum schließe ich die Einträge, wenn die Abfuhr da war (dann braucht ja auch keiner mehr Muelltonnen rausbringen) und erstelle gleichzeitig neue Einträge: Mülltonnen reinholen.

slupus

Hallo zusammen,
ich habe ein Todoist Projekt erfolgreich eingebunden, sehe also die Tasks und kann auch neue Tasks erstellen.
Möchte ich allerdings eine URL im Task haben, in Todoist würde ich [Das ist der Link](https://google.de) eintragen, bekomme ich eine Fehlermeldung, dass das dueDate nicht geparsed werden kann.

Folgendes set nutze ich
set test addTask [Das ist der Link](https://google.de)

Das ist die Fehlermeldung (kommt auch bei jeder anderen Schreibweise der URL, auch wenn ich die Sonderzeichen escape.
todoist (test): got error: Unable to parse "due_string" value | createTask: 0Unknown

Im Log finde ich mit verbose 5 noch folgende Info. Die URL wird immer als dueDate intepretiert. Die Meldung erhalte ich auch, wenn ich ein dueDate explizit mitgebe.
Habe ich irgendetwas übersehen bzw. muss die URL anders mitgeben oder funktioniert das einfach nicht?


2021.05.04 09:37:44 5: todoist (test): Param: {
  'callback' => sub { "DUMMY" },
  'parentId' => 0,
  'header' => 'Content-Type: application/x-www-form-urlencoded',
  'wType' => 'create',
  'tTitle' => 'https',
  'method' => 'POST',
  'timeout' => 7,
  'data' => {
              'project_id' => xxxx,
              'date_string' => '//google.de (Suche)',
              'content' => 'https',
              'token' => 'xxxx'
            },
  'url' => 'https://todoist.com/sync/v8/items/add',
  'hash' => {
              '.triggerUsed' => 0,
              'CL' => {
                        'STATE' => 'Connected',
                        'NR' => 88728,
                        'LASTACCESS' => 1620113864,
                        'FD' => 35,
                        'TYPE' => 'FHEMWEB',
                        'BUF' => '',
                        '.attrminint' => [],
                        'SSL' => undef,
                        'NAME' => 'WEB_192.168.xxx.xxx_55738',
                        'READINGS' => {
                                        'state' => {
                                                     'VAL' => 'Connected',
                                                     'TIME' => '2021-05-04 09:37:16'
                                                   }
                                      },
                        'PEER' => '192.168.xxx.xxx',
                        'FW_ID' => '88444',
                        'TEMPORARY' => 1,
                        'canAsyncOutput' => 1,
                        'SNAME' => 'WEB',
                        '.attraggr' => [],
                        'PORT' => 55738,
                        'Authenticated' => 0,
                        'CD' => bless( \*Symbol::GEN3160496, 'IO::Socket::INET' )
                      },
              'NOTIFYDEV' => 'global',
              'mayBeVisible' => 1,
              'CFGFN' => '',
              'STATE' => 'active',
              'PROJECT_COLOR' => 47,
              'NR' => 88580,
              'TYPE' => 'todoist',
              'VERSION' => '1.3.9',
              'helper' => {
                            'errorData' => '',
                            'TIDS' => [],
                            'errorMessage' => ''
                          },
              '.attrminint' => [],
              'PID' => xxxx,
              'PROJECT_ORDER' => 6,
              'READINGS' => {
                              'countUsers' => {
                                                'VAL' => 0,
                                                'TIME' => '2021-05-04 09:37:32'
                                              },
                              'lastCreatedTask' => {
                                                     'VAL' => 'URL eingetragen - 4798220134',
                                                     'TIME' => '2021-05-04 09:33:10'
                                                   },
                              'listText' => {
                                              'VAL' => '-',
                                              'TIME' => '2021-05-04 09:37:31'
                                            },
                              'state' => {
                                           'TIME' => '2021-05-04 09:31:22',
                                           'VAL' => 'active'
                                         },
                              'count' => {
                                           'VAL' => 0,
                                           'TIME' => '2021-05-04 09:37:31'
                                         },
                              'lastDeletedTask' => {
                                                     'VAL' => 'URL eingetragen - 4798220134',
                                                     'TIME' => '2021-05-04 09:33:46'
                                                   },
                              'error' => {
                                           'VAL' => 'none',
                                           'TIME' => '2021-05-04 09:37:32'
                                         },
                              'lastError' => {
                                               'TIME' => '2021-05-04 09:37:31',
                                               'VAL' => 'no data'
                                             }
                            },
              'NAME' => 'test',
              'FUUID' => 'xxxx',
              'OLDREADINGS' => {},
              'DEF' => 'xxxx',
              'PROJECT_NAME' => 'test',
              '.attraggr' => [],
              'INTERVAL' => 1800,
              'MID' => 'todoist_xxxx',
              'NTFY_ORDER' => '64-test'
            }
}

2021.05.04 09:37:45 4: todoist (test):  create - Task Callback data: '{"error":"Unable to parse \\"due_string\\" value","error_code":480,"error_extra":{"event_id":"xxxx","retry_after":18},"error_tag":"INVALID_DATE","http_code":400}'


Vielen Dank vorab für jeglichen Hinweis!

marvin78

Der Doppelpunkt macht hier Probleme. Das ist der Trenner für Titel und due_date. todoist-API parst alles hinter dem Doppelpunkt als date string (also sowas, wie "heute" oder "morgen" oder "2021-05-06"). Ich überlege mal, wie ich da einen Workaround hinbekomme.

Beim Update müsste es gehen mit

set <todoist> updateTask <ID> title="https://google.de"

Ggf. kann man da einen Workaround bauen, bis ich eine Lösung habe.

totoist API macht da übrigens folgendes selbst raus: [Google](https://google.de).

marvin78

Ab Version 1.3.10 (morgen im Update) kann man folgendes machen:

set <todoist> addTask title="<title>"

Also auch sowas wie:

set Liste addTask title="[Linktitel](https://google.de)"

Der Parameter title hat dabei Vorrang vor einem möglicherweise direkt gesetzten Titel. Macht man z.B. sowas:

set Liste addTask Milch title="[Linktitel](https://google.de)"

wird nicht "Milch" als Titel gesetzt, sondern der Link.

slupus

Hi Marvin,
vielen Dank für die schnelle Antwort und Erweiterung des Moduls! Es funktioniert :D
Der Workaround hätte mir auch erstmal weitergeholfen.
Umlaute werden nur als Ersetzungszeichen dargestellt, aber das lässt sich ja einfach umgehen.

marvin78


slupus