Modul: wunderlist - Task-/Listenverwaltung über FHEM + Widget

Begonnen von marvin78, 21 Juli 2016, 11:37:36

Vorheriges Thema - Nächstes Thema

Bootscreen

Naja wir haben unsre Einkaufsliste darüber laufen. Und damit man nicht die ganze Liste durchsuchen muss wäre es einfacher wenn sie alphabetisch sortiert ist.
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

marvin78

Die Intention des Moduls ist nicht, die Webseite oder die App zu ersetzen. Es geht darum, die wunderlist-Listen durch FHEM (Aktionen, Reaktionen, die in der Hausautomation verankert sind) für Erinnerungen zu verwenden oder die Liste automatisiert zu verändern. Warum sollte FHEM das gute Interface von wunderlist ersetzen? Das macht keinen Sinn.

Bootscreen

Ich habe die Einkaufsliste im TabletUI eingebunden und kann so direkt im schauen was auf der Liste ist und Einträge ergänzen ohne im Küchentablet die App zu wechseln (iframe ist keine Alternative da ich mich im zweifel immer mal wieder einloggen müsste und es optisch auch nicht hineinpasst), da dies später auch nicht mehr möglich sein soll. Und es wäre um einiges einfacher wenn ich dort die Liste alphabetisch anstatt nach der normalen Reihenfolge hätte
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

marvin78

Wie gesagt, das ist keine der Einsatzmöglichkeiten für die das Modul konzipiert wurde. Ich setze es auf die Liste, aber nicht weit oben.

Hans Franz

@Bootscreen,
Wenn Marvin es  aus für mich durchaus nachvollziehbaren Gründen nicht einbauen möchte, kannst du dir die Funktion  dank der Flexibilität von fhem mit wenigen Zeilen in der myUtils und einem passenden notify selber bauen. In etwa so:
sub wunderlist_sort($$) {
my ($mdev,$prefix) = @_;
my @list;
my $readings = $defs{$mdev}->{READINGS};
foreach my $key (keys %{$readings}) {
if ($key =~ m/^Task_\d\d\d$/) {
push(@list,$readings->{$key}{VAL});
}
}
my @sorted_list = sort { lc($a) cmp lc($b) } @list;
for (my $i=0; $i < @sorted_list; $i++){
fhem("setreading $mdev ".$prefix."_".sprintf("%03s",$i)." @sorted_list[$i]");
}
}

Übergeben werden wunderlist-Device und das gewünschte Prefix der Readings.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Bootscreen

@Hans Franz:

Dank dir, aber das mit dem sort habe ich bei mir nun leider schon etwas anders gelöst. Ich bau mir bereits aus dem listText Reading ein json Reading über das Attribut userreading. Da hab ich mir nun auch ein Sort eingebaut.

Abschließend möchte ich noch sagen: ich persönlich kann es nicht nachvollziehen, das sortieren inkl. einem Attribut sortAlphabetic sind nur ein paar Zeilen Code. Für was das Modul am Anfang mal konzipiert wurde ist doch auch im Grunde egal. Es gibt hunderte, tausende und wahrscheinlich noch viel mehr FHEM Nutzer. Nicht jeder Nutzer nutzt die Module auf die selbe Art und Weise, nicht jeder wird sie so nutzen wie sie einmal gedacht waren, aber das ist ja auch das schöne an FHEM. Jeder kann sie nutzen wie er sie möchte. Module wachsen mit den Usern. Aber einem User so eine Abneigung / Ablehnung entgegen zu bringen nur weil er einen Wunsch geäußert hat und das Modul anders nutzen möchte als der Entwickler es einmal gedacht hat, finde ich einfach daneben. Aber gut, vllt kommt es eines Tages vllt auch nicht. Ich werde es bis dahin anders lösen.

Ich sag dennoch Danke für das Modul.
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

Ma_Bo

@marvin78, ich fände die Sortierung auch nicht schlecht, brauche es nicht unbedingt, aber wenn es nicht viel Arbeit ist dies mit einem attr anzubieten, warum sollte man es nicht einbauen...

Wenn ich das alles drauf hätte mit dem programmieren, dann hätte ich noch so viele Ideen die ich versuchen würde einzubauen, (nicht nur in dem modul hier, allgemein) aber dafür habe ich viel zu wenig Ahnung und auch leider viel zu wenig zeit...

Grüße Marcel
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.

ArminK

Hallo zusammen,
habe heute auch einmal versucht das wunderlist-Modul zum Laufen zu bringen, leider bislang erfolglos. Habe alle notwendigen Module installiert, Wunderlist-Account angelegt und Emailbestätigung ausgeführt, App registriert und Access-Token (nehme mal an das ist der "Client secret"). Bekomme aber immer so etwas im Log:
2016.11.11 11:44:20 4: WEB_192.168.1.86_58770 GET /fhem?XHR=1&inform=type=status;filter=Testliste;since=1478861059;fmt=JSON&fw_id=489×tamp=1478861058903; BUFLEN:0
2016.11.11 11:44:21 4: HttpUtils url=https://a.wunderlist.com/api/v1/tasks?list_id=XXXXXXXXX
2016.11.11 11:44:21 4: https://a.wunderlist.com/api/v1/tasks?list_id=XXXXXXXXX: HTTP response code 401
2016.11.11 11:44:21 4: HttpUtils https://a.wunderlist.com/api/v1/tasks?list_id=XXXXXXXXX: Got data, length: 23
2016.11.11 11:44:21 4: wunderlist (Testliste): got error:
2016.11.11 11:44:21 4: wunderlist (Testliste): got error:

Kann das jemand deuten? Fehler 401 ist ja ein Berechtigungsproblem...
Raspberry Pi 3B mit fhem 5.8;1xCUL USB, 2xCUNO, 1xCUL Raspi über Fhem2Fhem, 2xHMLAN; diverse Homematic und FS20-Komponenten; 7 x Sonos-Player; diverse Eigenbauten mittels FS20 WUE, ESPEasy, MQTT, MySensors

marvin78

Der Access Token ist NICHT Client Secret. Es gibt einen Button "Create Access Token".

Bitte lesen!

ArminK

Zitat von: marvin78 am 11 November 2016, 11:56:37
Der Access Token ist NICHT Client Secret. Es gibt einen Button "Create Access Token".

Bitte lesen!

Ooops - dachte ich hätte das so gemacht. Gelesen habe ich, auch den Button "Create Access Token" geklickt. Aber anstatt dem grauen Token (den ich einfach mal salopp übersehen habe) hatte ich den Client Secret reingepastet, sorry.
Jetzt funktioniert es :-)
Raspberry Pi 3B mit fhem 5.8;1xCUL USB, 2xCUNO, 1xCUL Raspi über Fhem2Fhem, 2xHMLAN; diverse Homematic und FS20-Komponenten; 7 x Sonos-Player; diverse Eigenbauten mittels FS20 WUE, ESPEasy, MQTT, MySensors

marvin78

Zitat von: Bootscreen am 05 November 2016, 20:15:20
Abschließend möchte ich noch sagen: ich persönlich kann es nicht nachvollziehen, das sortieren inkl. einem Attribut sortAlphabetic sind nur ein paar Zeilen Code. Für was das Modul am Anfang mal konzipiert wurde ist doch auch im Grunde egal. Es gibt hunderte, tausende und wahrscheinlich noch viel mehr FHEM Nutzer. Nicht jeder Nutzer nutzt die Module auf die selbe Art und Weise, nicht jeder wird sie so nutzen wie sie einmal gedacht waren, aber das ist ja auch das schöne an FHEM. Jeder kann sie nutzen wie er sie möchte. Module wachsen mit den Usern. Aber einem User so eine Abneigung / Ablehnung entgegen zu bringen nur weil er einen Wunsch geäußert hat und das Modul anders nutzen möchte als der Entwickler es einmal gedacht hat, finde ich einfach daneben. Aber gut, vllt kommt es eines Tages vllt auch nicht. Ich werde es bis dahin anders lösen.


Was du persönlich nachvollziehen kannst, steht hier nicht zur Debatte und es ist mir tatsächlich egal, was du mit dem Modul machst (du kannst es gerne umbauen, patchen oder sonstiges). Das heißt aber nicht, dass ich von meiner Idee für das Modul abrücken muss. Module wachsen nicht mit den Usern sondern mit den Ideen, die ggf. von Usern kommen. Wenn diese nicht der Grundidee des Autors entsprechen, dann finden sie eben nicht oder später den Weg ins Modul. So ist das und so bleibt es. Es steht ja tatsächlich jedem frei, sich das Modul so anzupassen, wie er es braucht. Ein wenig Perl lernen ist nicht schwer.

Zu deinem Abschnitt mit der angeblich persönlichen Abneigung muss ich sagen: Ich habe lediglich sachlich erklärt, warum ich das mit der Sortierung nicht (sofort) einbauen möchte und festgestellt, dass man das nicht zwingend braucht, wenn man das Modulkonzept bedenkt. Nicht mehr und nicht weniger. Wie viele Menschen heute, kannst du aber wohl mit Sachlichkeit nicht umgehen. Das ist ok, aber nicht meins. Ich habe dich nicht perönlich angegriffen und auch nicht auf sonst eine Art beleidigt. Wenn du die Beiträge noch einmal liest, stellst du das ggf. auch fest. Nur weil meine Ansicht nicht deiner entspricht, ist das nichts, was persönlich gemeint ist. Das ist aber eine Lektion, die viele erst lernen müssen.

Nichts desto Trotz und weil es weitere Anfragen gab (ja, das ist tatsächlich ein wirklich guter Grund ein Modul auch um Dinge zu erweitern, die nicht geplant waren) und auch weil Weihnachten ist ( ;) ), gibt es jetzt

set WUNDERLIST sortTasks

Das macht nichts anderes, als das Sortieren der Tasks nach Alphabet. Die neue Version findet ihr im ersten Post. Bitte auf Herz und Nieren Testen. Danke!

Die Weiterentwicklung stockt an anderer Stelle etwas. Ich bin dabei, auf parseParams umzustellen um weitere Parameter im Set leichter zu ermöglichen. Ein wenig wird es noch dauern.

Frohe Weihnachten an alle!

Edit: Als Ergänzung ist natürlich zu sagen, dass die Tasks unsortiert aus wunderlist kommen, wenn sie dort nicht schon sortiert sind. Das Updateinterval sortiert sie also wieder um. GGf. baue ich noch ein Attribut ein, dass die Tasks auch beim update sortiert, wenn gewünscht.

Edit2: Das Attribut "sortTasks" ist eingebaut.

Morius

Hallo zusammen,

sehr begeistert lese ich von dem Wunderlist-Modul für FHEM, möchte es ebenfalls verwenden. Ich finde in FHEM aber kein Wunderlist-Modul. In einem der Posts hier habe ich 98_wunderlist.pm gesehen, dieses gibt es nicht; auch nicht nach einem Update und in der Commandref ebenso nicht.

Wie heißt das Modul für die Wunderlist, bzw. wie kann man es verwenden?

Grüße,
Morius

marvin78


Morius

Danke, das kommt davon wenn man Webseiten auf dem Smartphone liest und solche kleinen Links dann übersieht. Merci!
(Bitte ins offizielle FHEM-Repository submitten!)

Morrino

Hi,

danke für das Modul.
Ist es noch geplant die erledigten Aufgaben auch als Readings anzubieten?

Hintergrund wäre das man dadurch nicht immer neue Tasks erstellen müsste sondern bei wiederkehrenden Ereignissen z.B. "Aufräumen" einfach automatisch mit einem Klick wieder auf aktuell setzen könnte.
So wie in der App halt auch.