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

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

Vorheriges Thema - Nächstes Thema

cbl

{qx /gcalcli list/} liefert mir die aktuelle Liste der Kalender:
 Access  Title
 ------  -----
 owner Kalender mit bösen Zeichen
[0m reader  Feiertage in Deutschland
 reader  Week Numbers



Ich hatte den im Beitrag oben genannten Shellbefehl mit dem FHEM-user ausgeführt.

Gruß
Christian

Jamo

Hallo mumpitzstuff,
ja ich denke auch das keine Daten von Google kamen, bis jetzt ist der Fehler bei mir noch nicht wieder aufgetreten, nur Anfangs der Woche bis Donnerstag. Vielleicht hat sich das jetzt wieder erledigt, ich beobachte weiter! Danke!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

mumpitzstuff

Zitat von: cbl am 09 März 2019, 09:38:30
{qx /gcalcli list/} liefert mir die aktuelle Liste der Kalender:
 Access  Title
 ------  -----
 owner Kalender mit bösen Zeichen
[0m reader  Feiertage in Deutschland
 reader  Week Numbers



Ich hatte den im Beitrag oben genannten Shellbefehl mit dem FHEM-user ausgeführt.

Gruß
Christian

Hmm komisch. Deine Vermutung ist jetzt, das es an fehlenden Anführungszeichen liegt? Den Kalender hattest du doch aber umbenannt oder? Ich kann mich dunkel erinnern, das man die Anmeldung wiederholen müsste, wenn man einen Kalender hinzufügt oder entfernt. Kannst du bitte mal versuchen die beiden gcalcli Verzeichnisse zu löschen und die Authentifizierung erneut durchzuführen? Da müsste es auch ein Cache Verzeichnis von gcalcli geben, das bitte nicht vergessen zu löschen.

Jamo

Hi Mumpitzstuff,
hier mal mein Log mit dem gleichen Fehler von Christian, eine Zeile vorher sagt die Fehlermeldung aber: "socket.error: [Errno 101] Network is unreachable",
also scheint es wirklich so zu sein das google keine Daten liefert.

03.10 00:01:20 3: GoogleCalendar: gcalcli agenda 03/10/2019 03/18/2019  --calendar "xxx.yyyyyy@gmail.com" --calendar "Geburtstage" --calendar "Reminders" --detail_all  --tsv
2019.03.10 00:01:20 3: GoogleCalendar: something went wrong (check your parameters) - Traceback (most recent call last):
  File "/usr/bin/gcalcli", line 2649, in <module>
    BowChickaWowWow()
  File "/usr/bin/gcalcli", line 2495, in BowChickaWowWow
    gcal.AgendaQuery(startText=args[1], endText=args[2])
  File "/usr/bin/gcalcli", line 1732, in AgendaQuery
    eventList = self._SearchForCalEvents(start, end, None)
  File "/usr/bin/gcalcli", line 1637, in _SearchForCalEvents
    events = self._RetryWithBackoff(work)
  File "/usr/bin/gcalcli", line 655, in _RetryWithBackoff
    return method.execute()
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/googleapiclient/http.py", line 833, in execute
    method=str(self.method), body=self.body, headers=self.headers)
  File "/usr/lib/python2.7/dist-packages/googleapiclient/http.py", line 160, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 572, in new_request
    self._refresh(request_orig)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 780, in _refresh
    self._do_refresh_request(http_request)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 799, in _do_refresh_request
    self.token_uri, method='POST', body=body, headers=headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1608, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1350, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1271, in _conn_request
    conn.connect()
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1074, in connect
    raise socket.error, msg
socket.error: [Errno 101] Network is unreachable

2019.03.10 00:01:20 1: ERROR evaluating {GCALVIEW_DoEnd('GoogleCalendar||')}: Can't use string ("") as an ARRAY ref while "strict refs" in use at ./FHEM/57_GCALVIEW.pm line 625.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Zitat von: inoma am 10 März 2019, 11:17:16
Hi Mumpitzstuff,
hier mal mein Log mit dem gleichen Fehler von Christian in der letzten Zeile, eine Zeile vorher sagt die Fehlermeldung aber: "socket.error: [Errno 101] Network is unreachable", also scheint es wirklich so zu sein das google keine Daten liefert.
Vielleicht kann man das ja abfangen wenn google keine Daten liefert.

03.10 00:01:20 3: GoogleCalendar: gcalcli agenda 03/10/2019 03/18/2019  --calendar "xxx.yyyyyy@gmail.com" --calendar "Geburtstage" --calendar "Reminders" --detail_all  --tsv
2019.03.10 00:01:20 3: GoogleCalendar: something went wrong (check your parameters) - Traceback (most recent call last):
  File "/usr/bin/gcalcli", line 2649, in <module>
    BowChickaWowWow()
  File "/usr/bin/gcalcli", line 2495, in BowChickaWowWow
    gcal.AgendaQuery(startText=args[1], endText=args[2])
  File "/usr/bin/gcalcli", line 1732, in AgendaQuery
    eventList = self._SearchForCalEvents(start, end, None)
  File "/usr/bin/gcalcli", line 1637, in _SearchForCalEvents
    events = self._RetryWithBackoff(work)
  File "/usr/bin/gcalcli", line 655, in _RetryWithBackoff
    return method.execute()
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/googleapiclient/http.py", line 833, in execute
    method=str(self.method), body=self.body, headers=self.headers)
  File "/usr/lib/python2.7/dist-packages/googleapiclient/http.py", line 160, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 572, in new_request
    self._refresh(request_orig)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 780, in _refresh
    self._do_refresh_request(http_request)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/client.py", line 799, in _do_refresh_request
    self.token_uri, method='POST', body=body, headers=headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1608, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1350, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1271, in _conn_request
    conn.connect()
  File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1074, in connect
    raise socket.error, msg
socket.error: [Errno 101] Network is unreachable

2019.03.10 00:01:20 1: ERROR evaluating {GCALVIEW_DoEnd('GoogleCalendar||')}: Can't use string ("") as an ARRAY ref while "strict refs" in use at ./FHEM/57_GCALVIEW.pm line 625.

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

cbl

Hallo,
Ich bin noch nicht weitergekommen. Habt ihr noch weitere Ideen?

mumpitzstuff

Authentifizierung (.gcalcli_oauth) + Cache Verzeichnis (.gcalcli_cache) hast du gelöscht gehabt?

Danach sollte unter FHEM nichts mehr angezeigt werden:

{qx(gcalcli list)}

Jetzt noch mal die Authentifizierung durchführen.

BTW steht in dem Kalender auch was drin in dem Zeitraum den du dir anzeigen lässt? Kannst du mir bitte mal ein list vom Kalender Device zukommen lassen?

cbl

Ja, ich habe beide (Auth+cache) gelöscht. Im Kalender steht auch etwas drin.

Ich habe auch gcalcli aus dem GIT auf die aktuellste Version 4.0.4 aktualisiert. Vorher habe ich das Debian-Paket genutzt.
Dann habe ich eine neue Authentifizierung bei Google durchgeführt.
Im Kalender-Device sehe ich auch korrekt die Kalender wie sie aktuell bei Google heißen.

Führe ich dann im Kalender-Device ein Update durch, bekomme ich weiterhin
2019.03.16 10:16:42 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.

Hier ist das List:
Internals:
   DEF        36800
   FUUID      ...
   NAME       kalender.abfall
   NOTIFYDEV  global
   NR         367
   NTFY_ORDER 50-kalender.abfall
   STATE      Initialized
   TIMEOUT    36800
   TYPE       GCALVIEW
   VERSION    1.0.3
   helper:
     RUNNING_PID:
       abortFn    GCALVIEW_DoAbort
       arg        kalender.abfall
       bc_pid     40698
       finishFn   GCALVIEW_DoEnd
       fn         GCALVIEW_DoRun
       pid        DEAD:28162
       telnet     telnetForBlockingFn_1552066782_127.0.0.1_39782
       terminated 1
       timeout    36800
       abortArg:
Attributes:
   DbLogExclude .*
   DbLogInclude Gelber_Sack_date,Blaue_Tonne_days,BioTonne_date,Restmuell_date
   calendarDays 45
   calendarFilter Abfallkalender_J
   calendarType waste
   disable    0
   event-on-change-reading BioTonne_days,Blaue_Tonne_days,Gelber_Sack_days,Restmuell_days
   group      Kalender
   room       Kalender
   updateInterval 3600
   userattr   calendarFilter:multiple-strict, ...


Gruß
Christian

mumpitzstuff

Mit Version 4.0.4 wirst du Probleme bekommen. In dem 4er Zweig haben sie anscheinend einiges an den Optionen geändert. Diese heißen anders bzw. einige gibt es gar nicht mehr. Versuch mal unbedingt die 3.4.0 zu verwenden, diese habe ich ebenfalls. Ich muss mal gucken was ich da machen kann, um auch die 4er Version zu unterstützen.

cbl

Mit Version 3.4.0 aus dem GIT bin ich jetzt weitergekommen und bekomme auch wieder Termine abgerufen. Danke für den Hinweis. Vielleicht kannst du den in den ersten Beitrag aufnehmen. Da steht bislang "mindestens Version 3.4.0". Das sollte "genau Version 3.4.0" heißen.

Danke für die Unterstützung.

mumpitzstuff

#310
Ich habe im ersten Beitrag die Installation wesentlich vereinfacht. Außerdem habe ich jetzt bei mir die Version 4.0.4 installiert und meines Erachtens zum laufen gebracht. Anbei eine Version, welche ich bisher NUR mit gcalcli 4.0.4 getestet habe.

Bitte achtet darauf, das ihr gcalcli für Python3 und nicht für Python2 installiert! Unter Python2 werdet ihr Probleme mit Umlauten oder anderen Sonderzeichen in Kalendernamen bekommen!

Hier sind grob die Schritte dazu:

sudo apt install python-pip3
git clone https://github.com/insanum/gcalcli.git
cd gcalcli
python3 setup.py install


Falls gcalcli bereits über apt-get installiert wurde, bekommt man eine Fehlermeldung und muss dann zuerst folgendes machen:
sudo apt remove gcalcli

1-2 Module musste ich manuell upgraden mit:
pip3 install <modul> --upgrade

Kann jemand bitte verifizieren, ob das auch bei ihm klappt?

mumpitzstuff

Ich habe jetzt das Update hochgeladen, konnte allerdings nicht mehr testen, ob es noch mit der Version 3.4.0 kompatibel ist. Ich kannte zwar die alte Version wieder installieren, aber keine Authentifizierung mehr durchführen. Ich bin deshalb wieder auf die 4.0.4 gegangen. Wenn jemand Hilfe bei der Umstellung benötigt, dann meldt euch bitte.

Jamo

Hallo mumpitzstuff,
nein ist nicht mit Version 3.4.0 kompatibel, es kommt eine FehlermeldungGoogleCalendar: export PYTHONIOENCODING=utf8 && gcalcli v3.4.0 (...)
Ich muss dann auch wohl mal den update machen. . . .

Danke für die Modulpflege, das ist eines meiner liebsten!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

mumpitzstuff

Könntest du versuchen an den 2-3 Stellen im Modul das hier rauszuwerfen?

export PYTHONIOENCODING=utf8 &&

Also alles was in dem Befehlsaufruf vor gcalcli steht.

Jamo

vorher:2019.03.25 19:24:48 3: Datum: Event: UpdateCal UpdateCal
2019.03.25 19:24:49 3: GoogleCalendar: export PYTHONIOENCODING=utf8 && gcalcli --version
2019.03.25 19:24:49 3: GoogleCalendar: something went wrong (check your parameters) - gcalcli v3.4.0 (Eric Davis, Brian Hartvigsen)

nachher2019.03.25 21:32:11 3: Datum: Event: UpdateCal UpdateCal
2019.03.25 21:32:12 3: GoogleCalendar: gcalcli --version
2019.03.25 21:32:12 3: GoogleCalendar: something went wrong (check your parameters) - gcalcli v3.4.0 (Eric Davis, Brian Hartvigsen)


Ich habe mal testweise einen neuen Kalendareintrag im Google Kalender gemacht, den hat er sich fehlerfrei geholt, trotz der 'Fehlermeldung'.

PS: Habs gerade nochmal rückgängig gemacht, also die "export PYTHONIOENCODING=utf8 &&" wieder eingefügt, auch dann holt er sich einen neuen Kalendereintrag, scheint also trotz Fehlermeldung auch mt der neuen Version zu funktionieren. Anscheinend ist es dann doch mit der Version 3.4.0 kompatibel?

Was kann ich noch testen?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack