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

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

Vorheriges Thema - Nächstes Thema

cbl

So, ich bin mit der Anleitung aus https://github.com/insanum/gcalcli#login-information einen Schritt weitergekommen und kann mit GCalcli nun wieder Termine abrufen - auf der Kommandozeile.

Das FHEM-Modul liefert mir bei bestehendem Login (getestet mit https://github.com/insanum/gcalcli#login-information) nun (wieder) die Meldung, die ich vor ein paar Tagen hatte, bevor ich zur vermeintlichen Problemlösung den Login erneuert habe:
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 662.

Ich habe noch einmal geprüft: Ein Semikolon in einem Termin habe ich nicht gefunden. Die Termine im Abfallkalender heißen "Restmüll", "Gelber Sack", "Blaue Tonne" und "BioTonne".

mumpitzstuff

#451
Bist du sicher das du unter dem fhem User die Termine abrufen kannst? Wenn das z.b. als Pi User funktioniert, dann funktioniert es nicht zwangsläufig innerhalb von fhem. Manchmal war es notwendig den Pfad zur Konfiguration mit dem Attribut configFolder anzugeben.

Innerhalb von Fhem kannst du das mal so testen:

{qx(gcalcli list);;}

cbl

Zitat von: mumpitzstuff am 25 Juli 2020, 21:18:17
Bist du sicher das du unter dem fhem User die Termine abrufen kannst? Wenn das z.b. als Pi User funktioniert, dann funktioniert es nicht zwangsläufig innerhalb von fhem. Manchmal war es notwendig den Pfad zur Konfiguration mit dem Attribut configFolder anzugeben.

Innerhalb von Fhem kannst du das mal so testen:

{qx(gcalcli list);;}

Ein wiederholter Neustart von FHEM hat hier offenbar geholfen. Ich bekomme nun wieder Termine in FHEM angezeigt. Meine Beschreibung aus dem vorherigen Beitrag (https://github.com/insanum/gcalcli#login-information) ist damit die Lösung gewesen. Man braucht (zumindest zukünftig) die Client-ID und den Client-Key für neue Authentifizierungen und muss diese in der Datei .gcalclirc im Homeverzeichnis des FHEM-Users ablegen, bevor man den Verifikationstoken anfordert.
Stolperstein ist dann noch, dass diese Methode nicht bei allen API-Typen funktioniert. Es muss eine "native" API sein. Ich habe dafür noch ein altes Projekt vom Typ "andere" verwendet. Diesen Typ kann man aber mittlerweile auf der Google-Seite nicht mehr auswählen.


Aladin222

Hallo zusammen ,

ich quäle mich gerade auch durch die blöde Verifizierung ....leider immer noch erfolglos !
OK, wenn ich mein eigenes Projekt anlege usw. dann erhalte ich die zwei keys ( Client ID und Client Secret )
wo hinterlege ich sie ? In welchem File und wie muss das von syntax her aussehen ....?
Wäre prima, wenn hier hier jemand weiter helfen könnte !

mumpitzstuff

#455
sudo -u fhem gcalcli list --client_id=xxxxxxxxxxxxxxx.apps.googleusercontent.com --client_secret=xxxxxxxxxxxxxxxxx


oder

sudo -u fhem gcalcli list --client-id=xxxxxxxxxxxxxxx.apps.googleusercontent.com --client-secret=xxxxxxxxxxxxxxxxx


Mit dem Standard Weg wie in Beitrag 1 beschrieben hast du es schon versucht? Ich hatte gehofft, das die das irgendwann noch mal in den Griff bekommen würden. Bei mir funktioniert alles immer noch, deshalb kann ich da nix rum fummeln.

Aladin222

Hallo und guten morgen :-)

Ja den Standardweg habe ich versucht ! Kam aber leider immer das die app nicht unterstützt wird ....

Habe nun mal meine client-id und client-secret probiert :

da kommt unter anderem folgende Fehlermeldung

/usr/lib/python3/dist-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access /home/fhem/.gcalcli_oauth: No such file or directory
  warnings.warn(_MISSING_FILE_MESSAGE.format(filename))


und ein Link ...wenn ich den im Browser ausführe kommt:

Fehler 400: redirect_uri_mismatch
The redirect URI in the request, http://localhost:8090/, does not match the ones authorized for the OAuth client. To update the authorized redirect URIs, visit: https://console.developers.google.com/apis/credentials/oauthclient/${your_client_id}?project=${your_project_number}


was mich da am meisten verwirrt ist das http://localhost:8090   ???

mumpitzstuff

/home/fhem... sieht schon mal komisch aus. In welchem Verzeichnis befindest du dich, wenn du den Befehl ausführst? Du solltest dich im FHEM Verzeichnis befinden, also dort wo auch die fhem.pl zu finden ist (/opt/fhem). Wenn es trotzdem nicht klappt, kannst du mal versuchen den config folder mit anzugeben:

--configFolder /opt/fhem

hinten an den Befehl dran hängen.

Aladin222

Hi @mumpitzstuff,

erstmal vielen Dank ,das du mithilfst ! :-)

Wollte heute morgen nur fix deinen Lösungsansatz ausprobieren ( war direkt nach der Nachtschicht ).

Also, meine normale Umgebung im Terminal nach dem einloggen als fhem User ist home/fhem dort befindet sich auch gcalcli
Mit dem Befehl

sudo -u fhem gcalcli list --client-id=xxxxxxxxxxx-2v7pnmc0ecptohtj0bmhgl2q35ti3a35.apps.googleusercontent.com --client-secret=x-xxxxxx_w8hQODL2H6mlazn

oder

sudo -u fhem gcalcli --config-Folder /opt/fhem list --client-id=xxxxxxxxxxx-2v7pnmc0ecptohtj0bmhgl2q35ti3a35.apps.googleusercontent.com --client-secret=x-xxxxxx_w8hQODL2H6mlazn

bekomme ich jeweils einen Link im Terminal erstellt, den ich dann im Browser nutze !
Zuerst bekomme ich eine Auswahl ,mein Googlekonto auszuwählen - das sieht richtig gut aus ...
Dann kommt folgende Meldung :

Diese App wurde nicht überprüft

Diese App wurde noch nicht von Google überprüft. Sie sollten nur fortfahren, wenn Sie den Entwickler als vertrauenswürdig ansehen.

Wenn Sie der Entwickler sind, reichen Sie eine Überprüfungsanfrage ein, um diesen Bildschirm entfernen zu lassen. Weitere Informationen

mit dem Button "erweitert" komme ich dann noch auf folgende Seite :

Diese App wurde noch nicht von Google überprüft, deshalb kann ihre Echtheit nicht bestätigt werden. Nicht überprüfte Apps können eine Gefahr für Ihre personenbezogenen Daten darstellen. Weitere Informationen

gcalcli öffnen (unsicher)

Also klicke ich den Button gcalcli öffnen ...

Jetzt sieht es echt so aus ,als wenn ich am Ziel wäre !!!
Es öffnet sich ein popup :


gcalcli Zugriff gewähren

Alle Kalender, die über Google Kalender verfügbar sind, aufrufen, bearbeiten, freigeben und endgültig löschen


Zulassen
Ablehnen



Natürlich bestätige ich mit zulassen ....

Auswahl bestätigen

renebartels212@gmail.com
Sie haben gcalcli folgende Berechtigungen erteilt:
Alle Kalender, die über Google Kalender verfügbar sind, aufrufen, bearbeiten, freigeben und endgültig löschen
gcalcli vertrauen?
Eventuell teilen Sie vertrauliche Informationen mit dieser Website oder App.In den Nutzungsbedingungen und der Datenschutzerklärung von gcalcli erfahren Sie alles zum Umgang mit Ihren Daten. In Ihrem Google-Konto können Sie die Zugriffsberechtigungen jederzeit einsehen oder entfernen.
Weitere Informationen zu den Risiken

Zulassen

Abbrechen
‪Deutsch‬



Auch das kann ich noch mit zulassen bestätigen !

Jetzt kommt leider die Ernüchterung :
Ich bekomme im Browser eine Fehlermeldung , das Safari keine Verbindung zum Server aufbauen kann .....grummel :-(

Safari kann die Seite ,,‎localhost:8090/?code=4/xxxxxxxxx-ydHjYut5quMhdDW1u-o3xxxxxxxmqT1Rac2lZCt-E&scope=https://www.googleapis.com/auth/calendar" nicht öffnen, da Safari keine Verbindung zum Server ,,localhost" aufbauen kann

( Code habe ich mal an ein paar Stellen ausgeXt )

Meine Fhem Installation läuft auf einem Intel NUC in meinem Netzwerk , so wie ich es verstehe , hat Google versucht die Freigabe zu setzten , kommt aber auf den NUC nicht drauf ....sry das mit dem Localhost:8090 raffe ich nicht :-(

mumpitzstuff

--noauth_local_webserver


Häng das mal hinten dran bitte. Dadurch wird ein lokaler Webserver aufgebaut, vermutlich genau das womit Google eine Verbindung aufbauen möchte.

Aladin222

#460
Danke ! Versuche ich direkt morgen früh ...hänge noch auf der Nachtschicht *heul

(Edit)
Guten Morgen :-)

kurze Rückmeldung :
einfach hinten dran ging nicht , aber es läuft davor :-) Danke für deine Hilfe ....rest teste ich nach dem pennen :-)

sudo -u fhem gcalcli --noauth_local_webserver list --client-id=xxxxxxxxx-e8ldsjh7xxxxxxxxx2lo9v5.apps.googleusercontent.com --client-secret=xxxxxxxxxxxxxx

Aladin222

Hallo zusammen ,

soweit rennt es nun auch bei mir :-)
Nun hätte ich aber direkt noch eine Frage :
Mit filterSource kann ich ja einen Match unterdrücken , gibt es auch eine Möglichkeit , mehrere zu unterdrücken ?
Mit Abfall,Schicht .... hatte ich probiert ....geht leider nicht

mumpitzstuff



Aladin222

Hallo zusammen ,

ich bastel mir gerade einen Schichtkalender ,der aus Früh,Frei,Spät und Nachtschichten besteht.
Das lasse ich mir auch in einer readingsgroup anzeigen ...

Leider kann ich ja nur eine Sourcecolor vergeben ,womit dann in der Readingsgroup z.b. nur die Farbe blau angezeigt wird :-(
Wie bekomme ich es hin , das in der Readingsgroup nur die Nachtschicht blau angezeigt wird und Frühschichten in gelb usw. ?