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

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

Vorheriges Thema - Nächstes Thema

marvin78

Das Problem, das ich sehe, dass eine Umsetzung über project_update_orders_indents und die Nutzung dieser Daten statt parent_id voraussetzt, dass man ein echtes parent-Device hat, welches alle Infos zu den Kindprojekten enthält. Es geht zwar auch anders, aber es macht die Dinge unnötig kompliziert und anfällig. Dazu bin ich aktuell nicht bereit. Ich wollte im Grunde nie mehr, als EINE Liste abbilden. Ggf. baue ich noch eine einfache Variante, die dann aber nur ein max indent von 2 zulässt (gefällt mir aber nicht).

@mahowi: Ich habe erstmal eine neue Version ohne deutsche commandref eingecheckt.

@crispyduck: Das Attribut hilft ihm bei seinem Anliegen nicht.


mahowi

@crispyduck: Eine fehlende deutsche Hilfe ist für mich eigentlich kein Problem, da dann automatisch die englische angezeigt wird, sowohl bei "help" als auch in der "Device specific help". In der kompletten Commandref steht ja der Link. Meistens möchte ich was nachlesen, wenn ich gerade im Device bin.

@marvin78: Danke!
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

crispyduck

Ah, wusste nicht das wenn keine deutsche Hilfe verfügbar ist bei "Device specific help" automatisch die englische angezeigt wird.
Habe nämlich ein paar Module, bei denen es eine deutsche commandref gibt, in der aber nur steht das es keine deutsche gibt.
Daher kam eigentlich der Wunsch das system global auf englisch zu lassen.

mahowi

Zitat von: crispyduck am 19 Februar 2018, 12:54:52
Ah, wusste nicht das wenn keine deutsche Hilfe verfügbar ist bei "Device specific help" automatisch die englische angezeigt wird.
Habe nämlich ein paar Module, bei denen es eine deutsche commandref gibt, in der aber nur steht das es keine deutsche gibt.
Daher kam eigentlich der Wunsch das system global auf englisch zu lassen.
Ja, es kommt dann einfach der Satz "Keine deutsche Hilfe gefunden!" und dann die englische Hilfe, z.B. bei MilightDevice:
Module: 31_MilightDevice.pm Maintainer: mattwire Forum: Beleuchtung

Keine deutsche Hilfe gefunden!

MilightDevice

This module represents a Milight LED Bulb or LED strip controller. [...]
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

Brockmann

Ich habe mir das todoist-Modul auch mal installiert, nachdem ich todoist bislang am PC und am Smartphone genutzt haben.
Hat soweit gut geklappt, Danke dafür.

Was ich insbesondere damit umsetzen wollte, war eine eigenen FHEM-ToDo-Liste, wo automatisch Tasks eingetragen werden, wenn beispielsweise ein Device "battery low" meldet, ein Fenster zu lange offensteht und ähnliches.
Dazu suche ich eine Möglichkeit, Tasks durch FHEM auch automatisch wieder löschen zu lassen, wenn sich der Auslöser eines Tasks erledigt hat, beispielsweise wenn die Batterie ersetzt wurde und wieder "ok" meldet oder wenn das Fenster geschlossen wurde.
Die Logik dafür habe ich, allerdings kann ich einen Task ja nur unter Angabe der ID erledigen oder löschen. Ich kenne aber nur den Task-Namen und müsste daraus durch eine eigene Funktion aus den Readings die passende ID ermitteln?

Oder habe ich eine andere Möglichkeit übersehen?

marvin78

Genau so wirst du es machen müssen. Das sollte kein Problem sein, da die ID ja in den Readings steht.  Du kannst dir die ID pro Task auch per notify in ein dummy schreiben. Ohne deine jetzige Logik zu kennen, ist es schwer, dir entsprechende Tipps zu geben.

Tasks über den Namen erledigen habe ich noch auf dem Zettel, löschen bisher nicht.

marvin78

complete, close und delete, sowie auch alle anderen updates eines Tasks funktionieren nun auch über den Titel eines Tasks.

set Einkaufsliste deleteTask TITLE:Brot
set Einkaufsliste updateTask TITLE:Brot dueDate=heute

Das macht natürlich nur bei eingeschaltetem avoidDuplicates Sinn. Andernfalls wird bei gleichem Titel nur einer der Tasks bearbeitet.


crispyduck

Super!

Komme gerade nicht dazu mit FHEM und todoist weiter zu machen; ausserdem warte ich auch noch auf eine Antwort von den todoif devs, wie man nun einen Task oder ein Projekt mit gleichem indent und order behandeln soll.

Da du gerade das avoidDuplicates Attribut erwähnst, fällt mir noch eine Beobachtung die ich letzte Woche gemacht habe auf. Wenn das avoidDuplicates Attribut gesetzt ist und man verschiebt einen Task von einer Liste in eine andere, wo schon ein Task mit selben Namen existiert, kommt zwar die Fehlermeldung das der Task bereits vorhanden ist, aber er wird trotzdem von der source Liste gelöscht.

Gewolltes feature oder bug? Ich hätte mir eigentlich erwartet des nichts passiert.

Lg,
crispyduck

marvin78

Das ist ein Feature. Im Grunde wird hier ja ein deleteTask und ein addTask ausgeführt. Wer einen Task aus einer Liste heraus holt, möchte ihn dort löschen, wenn er in einer anderen Liste vorhanden ist, führt addTask zur Meldung und zum nicht hinzufügen. Das ist so gewollt und aus meiner Sicht auch genau so korrekt.

crispyduck

Ist natürlich auch korrekt.  ;)
Weiß ja das der Task gelöscht und in der anderen Liste hinzu gefügt wird, daher wollte ich nur nachfragen ob das löschen in dem Fall auch gewollt ist.

Brockmann

Zitat von: marvin78 am 25 Februar 2018, 10:47:19
complete, close und delete, sowie auch alle anderen updates eines Tasks funktionieren nun auch über den Titel eines Tasks.
Danke, das ist perfekt!  :)

marvin78

Wenn ein Task über den Titel nicht gefunden wird, gibt es nun das entsprechende error-Event.

noshi21

Hi,
ich würde das Modul gern nutzen, scheitere aber leider schon bei der Einbindung.

Fehler im FHEM-Log:

2018.07.01 00:04:54 1: reload: Error:Modul 98_todoist deactivated:
Can't locate Data/UUID.pm in @INC (you may need to install the Data::UUID module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl ./FHEM) at ./FHEM/98_todoist.pm line 11.
BEGIN failed--compilation aborted at ./FHEM/98_todoist.pm line 11.


Aber cpan shell-Ausgabe:

cpan[1]> install Data::UUID
Reading '/home/pi/.cpan/Metadata'
  Database was generated on Sat, 30 Jun 2018 09:41:03 GMT
Data::UUID is up to date (1.221).


System ist eine Raspi3 mit Jessie.

Hat jemand eine Idee?

Danke.

Christoph Morrison

Was sagt
perl -MData::UUID -le 'print $INC{"Data/UUID.pm"}'; perl -v?

noshi21

Zitat von: Christoph Morrison am 01 Juli 2018, 17:45:17
Was sagt
perl -MData::UUID -le 'print $INC{"Data/UUID.pm"}'; perl -v?


/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/Data/UUID.pm

This is perl 5, version 20, subversion 2 (v5.20.2) built for arm-linux-gnueabihf-thread-multi-64int
(with 102 registered patches, see perl -V for more detail)

Copyright 1987-2015, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.