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

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

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Ja.

Lösch bitte userattr und mach ein Update. Das wird dann neu angelegt und sollte den neuen Eintrag enthalten.

Jamo

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Jamo

Ich möchte eigentlich alle angefangenen Termine ausblenden, aber wenn ich das attr includeStarted auf '0' setze schmeisst das Modul auch die Geburtstage raus.

Ich habe die Geburtstage als ganztages-Termin, beim Aufstehen werden die Geburtstage per Sonos angesagt, deswegen sollen die Geburtstage ganztags drin stehen. Kann man das attribut includeStarted evtl. pro Kalender setzten?

Oder wie macht Ihr das? 
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

rabehd

Hast Du alles in einem Google-Kalender? Dann hast Du wohl ein Problem.
Ich habe mir unter meinem Google-Account verschiedene Kalender angelegt (Geburtstag, Abfall,...), dann noch verschiedene Kalender eingebunden. So komme ich auf 5-10 verschiedene Kalender.
In Fhem habe ich für jeden Zweck ein Device angelegt und greife dort nur auf die passenden Kalender zu.
Abfall -> Abfall
Dienst -> Dienst
Geburtstag -> Geburtstage
Termine -> was so noch übrig bleibt
Auch funktionierende Lösungen kann man hinterfragen.

Jamo

Ich habe nur ein GoogleCalendar GCALVIEW Device, und in Google 2 verschiedene Kalender (Geburtstage / Termine).
Im device sind dann über das beide Kalender eingebunden.
attr GoogleCalendar calendarFilter xxxxxxxx.yyyyyy@gmail.com,Geburtstage
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

mumpitzstuff

Hmm das Attribut kann man pro Device setzen. Wenn du also beide Kalender in einem Device anzeigst, dann solltest du das du das Attribut eher einschalten, damit die Geburtstage nicht sofort rausgeworfen werden. Ansonsten kannst du dir 2 Devices anlegen und kannst dann jeweils das Attribut nach belieben einstellen. Den Filter musst du dann natürlich pro Device anpassen.

Darüber hinaus kann ich ja mal überlegen, ob ich das Attribut includeStarted irgendwie pro Kaledner verfügbar machen kann. Wahrscheinlich aber erst nach Weihnachten, im Moment ist jede Menge los bei uns und ich habe kaum Zeit.

rabehd

Macht es Sinn Geburtstage und Termine in einem Device anzuzeigen?
Für mich nicht.
Auch funktionierende Lösungen kann man hinterfragen.

RoBra81

Zitat von: rabehd am 20 Dezember 2017, 09:21:49
Macht es Sinn Geburtstage und Termine in einem Device anzuzeigen?
Für mich nicht.
Ich habe zum Beispiel Jahrestage und Termine in zwei verschiedenen Kalendern, zeige es aber auf dem tablet an der Wand in einer Tabelle an - also ja, es macht schon wegen der Sortierung Sinn, beides in einem device anzuzeigen...

Gesendet von meinem SM-G935F mit Tapatalk


Jamo

#113
Ja so hab ichs auch gemacht, ein Device, und beide Kalender in einer Tabelle. Die Geburtstage haben nur eine andere Farbe. Und so viele Geburtstage hab ich nicht. Sonst wäre die Geburtstagstabelle meistens leer....
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

blasterx

Hallo,
Ich habe gerade mit
sudo apt-get install gcalcli
das gcalcli installiert und danach mittels
sudo pip install gcalcli
auf die neueste Version geupdatet alles ohne Fehlermeldung.
Danach habe ich ein
gcalcli --version
eingegeben und bekomme folgende Fehlermeldung
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 4, in <module>
    import pkg_resources
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in <modul                                             e>
    working_set.require(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: google-api-python-client

Weiß jemand wo der Fehler liegen könnte?

Gruß BlasterX
Gruß-BlasterX


blasterx

Ok danke für die Antwort hatte es gerade hinbekommen. Aber ich bekomme in fhem keine Daten rein. Wenn ich
{qx(gcalcli list);;}
oder
{qx(gcalcli list --configFolder /opt/fhem);;}
eingebe bekomme ich folgende Fehlermeldung
[31;1mError: must specify a username
[0m

als Antwort und im log steht
2017.12.22 23:52:09 3: GC_Kalender_Privat: gcalcli agenda  --configFolder /opt/fhem  --detail_all   --tsv
2017.12.22 23:52:09 3: GC_Kalender_Privat: something went wrong (check your parameters) - Error: must specify a username

2017.12.22 23:52:09 1: ERROR evaluating {GCALVIEW_DoEnd('GC_Kalender_Privat||')}: Can't use string ("") as an ARRAY ref while "strict refs" in use at ./FHEM/57_GCALVIEW.pm line 626.

Wenn ich das gcalcli list in Putty eingebe bekomme ich meine Kalender angezeigt.

Gruß BlasterX
Gruß-BlasterX

mumpitzstuff

#117
Vermutlich bist du mit Putty als pi User angemeldet und hast dir das OAuth Token als pi User geholt. FHEM arbeitet mit dem User fhem und bekommt dann keinen Zugriff auf die mit dem User pi angelegten OAuth Daten.

Fragen:
1.) Hast du versucht die Punkte 4-5 aus dem ersten Beitrag auszuführen? Was war das Ergebnis?
2.) Hast du versucht die Punkte 4-5 aber mit der zusätzlichen Option --configFolder /opt/fhem auszuführen? Was war das Ergebnis?

Wenn das listing deiner kalender als pi User funktioniert, dann kannst du auch mal nach der datei .gcalcli_oauth suchen. Diese wird vermutlich im home Verzeichnis des pi Users zu finden sein. Man könnte hier auch mal spaßeshalber versuchen diese datei nach /opt/fhem zu kopieren und dann mit:

sudo chown fhem:dialout .gcalcli_oauth

die Rechte so anzupassen, das fhem Zugriff haben müsste.

Falls ich mich geirrt habe und du die OAuth Daten doch bereits als fhem User angelegt hast, versuch mal das OAuth token so zu generieren:

gcalcli list --configFolder /opt/fhem --noauth_local_webserver

und dann in FHEM genauso abzufragen nachdem du die erzeugte URL in den Browser kopiert und das generierte Token auf der Konsole eingegeben hast:

{qx(gcalcli list --configFolder /opt/fhem);;}

blasterx

Also Punkt 4 hatte ich ausgeführt und in die /etc/passwd das  /bin/bash eingetragen. Dann mit Punkt 5 weitergemacht und
sudo su - fhem
eingetragen und es wurde auch zum user fhem gewechselt. Die Datei  .gcalcli_oauth wurde auch in /opt/fhem angelegt.
Wenn ich im Terminal
gcalcli list --configFolder /opt/fhem --noauth_local_webserver
eingebe erhalte ich (User fhem angemeldet)
fhem@raspberrypi:~$ gcalcli list --configFolder /opt/fhem --noauth_local_webserver
Access  Title
------  -----
  owner  Ferien 2017
  owner  Schichten
  owner  Abfall
  owner  Mario
  owner  Martina
  owner  Diana
  owner  Schichten

und es wird mir keine URL angezeigt.
Gebe ich in fhem
{qx(gcalcli list --configFolder /opt/fhem);;}
ein bekomme ich wieder dieße Meldung
[31;1mError: must specify a username



Gruß BlasterX
Gruß-BlasterX

blasterx

Es scheint ein Rechte Problem zu sein. Wenn ich
{qx(sudo gcalcli list);;}
eingebe bekomme ich meine Kalender angezeigt. Leider weis ich nicht was ich genau ändern muß damit er die Rechte richtig verteilt.
Gruß BlasterX
Gruß-BlasterX