Neues Modul: 57_GCALVIEW Google Kalender Viewer (+Abfall Kalender)

Begonnen von mumpitzstuff, 04 Oktober 2017, 00:02:11

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Ich versuche es mir heute Abend mal anzusehen und Debug Meldungen einzubauen falls möglich.

Sommerfeld

ZitatHast du in den letzten Tagen einen Eintrag mit einem oder mehreren Kommas erstellt. Das von mir verwendete Programm setzt das leider nicht vernünftig in der Ausgabe um, und es kann zu Fehlern kommen.
Ich könnte mal versuchen an der Stelle mehr Details auszuspucken, so dass du dann direkt den Kalendereintrag identifizieren könntest.

Ich habe den Cache vom Browser gelöscht und den Kalender neu abgerufen.
Nun sind alle Daten wieder in den Readings. Vielen Dank für die Unterstützung.

mumpitzstuff

Cache vom Browser? Der hat doch eigentlich nichts mit dem Modul zu tun. Meinst du den Cache von gcalcli?

Sommerfeld

Den Cache vom Browser. Den Zusammenhang verstehe ich auch nicht.
Es geht aber wieder  :)

mumpitzstuff

Hmm okay. Vielleicht hilft aber tatsächlich den Cache mal im Modul abzuschalten. Dafür gibts das Attribut: cache.

cbl

Cache=0 hat bei mir nichts gebracht.
Was hat es mit dem startDate (siehe oben) auf sich? Gehe ich richtig in der Annahme, dass das Startdatum eines Kalendereintrags ist? Das dürfte doch niemals leer sein, da jedes Event bei Google ein Datum trägt.

Gruß
Christian

mumpitzstuff

Das war nur eine Testversion für FHEM_starter, der sich aber nicht mehr gemeldet hat. Ich habe gestern nicht mehr geschafft es mir anzusehen.

mumpitzstuff

Zitat von: cbl am 05 Februar 2019, 08:03:10
Cache=0 hat bei mir nichts gebracht.
Was hat es mit dem startDate (siehe oben) auf sich? Gehe ich richtig in der Annahme, dass das Startdatum eines Kalendereintrags ist? Das dürfte doch niemals leer sein, da jedes Event bei Google ein Datum trägt.

Gruß
Christian

Das ist komisch. Mir ist unklar, weshalb du einen Eintrag ohne Startdate hast. Das dürfte es eigentlich nicht geben. Kannst du mal versuchen folgende Zeile vor der startDate Zuweisung einzufügen?

Log3 $name, 3, $name.': '.join(', ', @$_);

Das sollte dir im Log jeden Eintrag ausspucken und irgendwann müsste wieder der Fehler kommen. Der Eintrag direkt davor sollte der fehlerhafte Kalendereintrag sein.

cbl

Der Fehler hat nicht mit einem konkreten Kalendereintrag zu tun.Er tritt auch bei meinem Abfallkalender auf.
Auch die von dir genannte Logzeile erzeugt den Fehler. Es ist also nicht ein einzelner fehlerhafte Eintrag das Problem.

Damit habe ich weitergeschaut:
Das Problem war der Verlust der Google-Anmeldung für den User FHEM. Wodurch die verloren gegangen ist, kann ich nicht nachvollziehen. Nachdem ich aber
in der Shell mit gcalcli eine neue Anmeldung durchgeführt habe, ruft das Modul auch wieder fehlerfrei Kalenderereignisse ab.

Nun bleibt die Frage, wodurch die Anmeldung verloren gegangen ist und ob man dem Modul beibringen könnte, in so einem Fall einen passenden Status zu liefern.


mumpitzstuff

Hmm das ist interessant. Ich habe sowas leider noch nie gehabt, deshalb fällt es mir schwer das nachzuvollziehen. Bei Zugriff auf gcalcli speichere ich aber eigentlich die Fehlermeldungen im Logfile (soweit ich mich aktuell erinnere). Wenn man da nichts gesehen hat, dann kann ich eigentlich so gut wie nichts machen.

Ich kann es aber mal als mögliche Fehlerursache im ersten Beitrag aufnehmen. Dann hat man es zumindest mal vor Augen.

cbl

Hallo,

ich habe seit etwa vier Tagen ein Problem mit GCALVIEW. Bis gestern habe ich weder an FHEM (Update gestern gemacht, davor mindestens zwei Wochen kein Update) noch am Kalender selbst etwas verändert.

Das Log verrät mir:
2019.03.04 19:13:15 1 : ERROR evaluating {GCALVIEW_DoEnd('kalender.abfall||')}: Can't use string ("") as an ARRAY ref while "strict refs" in use at ./FHEM/57_GCALVIEW.pm line 625.

Einen leeren Eintrag sehe ich im Kalender nicht.
In der Shel kann ich mir mit "gcalcli list" eine aktuelle Liste der Kalender ausgeben lassen.

Worüber stolpert das Modul hier?

Gruß
Christian

cbl

Hallo,

ich bin etwas weiter in der Analyse. Ursache für das Hängenbleiben ist offenbar der vom Modul ausgeführte Python-Befehl
phyton /usr/bin/gcalcli agenda 03/07/2019 04/21/2019 --calendar Kalendername mit bösen Zeichen ---detail_all -tsv.

Davor sehe ich im Journal noch den Aufruf
sh -c gcalcli agenda 03/07/2019 04/21/2019 --calendar "Kalendername mit bösen Zeichen" ---detail_all -tsv.
Da stehen noch Anführungszeichen um den Kalendernamen.

Rufe ich den Phyton-Befehl mit ergänzten Anführungszeichen auf, funktoniert es in der Shell.

Gruß
Christian

Jamo

Ich habe auch den gleichen Fehler, auch etwa seit 4 Tagen. Ich dachte erst dass es vielleicht an der Internet Zwangstrennung liegt, bis ich heute morgen deine (Christan) Einträge gelesen habe . . . . 
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

cbl

Ich habe nun die oauth- und cache-Dateien gelöscht und die Anmeldung erneuert ... ohne Erfolg.
Auch eine Umbenennung des Kalenders auf eine Zeichenkette ohne Leerzeichen und Umlaut hat nichts gebracht.

Gibt es noch weitere Ideen?

Wo gehen die Anführungszeichen verloren? Im Modul werden sie beim Zusammenbau des Aufrufs offenbar richtig ergänzt.

mumpitzstuff

#299
@cbl: Der Fehler an der Stelle bedeutet, das keine Daten abgeholt wurden. Das du das Kommando in der Konsole absetzen kannst, hat noch nichts damit zu tun, dass es auch mit fhem geht. Das ist in der Regel ein anderer User.

{qx(gcalcli list);}

Was passiert denn, wenn du das in FHEM abschickst?

@inoma: Hast du irgendwelche Details?

Ansonsten kann ich weitere Debugausgaben einbauen, allerdings bin ich ziemlich sicher, das einfach keine Daten von Google kommen.