So gerade nochmal die einstelluingen kontrolliert.
vorallem auf dem Bezug email… es funktioniert bei mir nur, wenn ich die Einstellungen für den Kalender auf öffentlich stelle
Dann kann ich Auslesen und mir werden die Termine auch angezeigt.
So gerade nochmal die einstelluingen kontrolliert.
vorallem auf dem Bezug email… es funktioniert bei mir nur, wenn ich die Einstellungen für den Kalender auf öffentlich stelle
Dann kann ich Auslesen und mir werden die Termine auch angezeigt.
Moin zusammen,
ich hab mir das Ganze auch mal eingerichtet und es funktioniert soweit erst mal gut!
Ich habe aber festgestellt, dass bei mehrtägigen Einträgen nur der Starttermin als ganztägiger Eintrag ausgegeben wird. Es wird aber kein Endedatum erzeugt. Das ist insofern unschön weil ich das Ganze eigentlich für meine Rollladensteuerung nutzen möchte.
Idee war es einmal um 00:00 Uhr das Skript zu starten und zu schauen, ob der aktuelle Tag ein Urlaubstag ist. Dann soll ein Flag gesetzt werden das ich dann in der Beschattungssteuerung verwenden kann. Dazu reicht es aber nicht, nur den Starttag zu kennen.
Hat jemand eine Idee?
Ich hab die Lösung selbst gefunden:
Ich suche einfach nach dem nächsten Event ab dem aktuellen Tag.
Wenn das Event Datum <= dem aktuellen Tag ist, dann ist der Tag in dem ein- oder mehrtägigen Termin drin.
Alle Termine die später anfangen müssen nicht berücksichtigt werden.
Alle Termine die früher beendet sind werden nicht mehr gelistet.
Eigentlich ganz einfach.
Hallo,
Möchte gerne diese Skripte ausprobieren und habe es jetzt nach mehrmaligen Versuchen und lesen des Threads das Ganze hinbekommen, da vorne im ersten Post die Screenshots nicht mehr zutreffen.
Habe mir einfach mal das Skript „HTML Jahreskalender mit Keywords“ raus gepickt und bekomme eine Fehlermeldung im Skript, das sich der Ordner der autoload Datei geändert hat. Ist das so richtig das ich den Ordner im Skript ändern muss zu „google-api-php-client/src/Google/autoload.php“ ?
Edit: hat sich erledigt…
Ein Modul des ganzen wäre echt nicht schlecht
Hallo,
die unten besagte Fehlermeldung wurde hier zwar schon mal behandelt, was ich aber nicht verstehe, das ich diese Meldung nur bei 2 oder 3 Skripte diese Fehlermeldung bekomme. Habe jetzt alle Skripte des Threads angelegt um die Unterschiede im Webfront zu sehen.
Fatal error: Uncaught Google_Service_Exception: Error calling GET https://www.googleapis.com/calendar/v3/calendars/mail2%40googlemail.com/events?singleEvents=true&timeMin=2018-10-01T13%3A46%3A51%2B02%3A00&timeMax=2019-01-09T13%3A46%3A51%2B01%3A00: (404) Not Found in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:110
Stack trace:
#0 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(62): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Task\Runner.php(174): Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(46): Google_Task_Runner->run()
#3 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(593): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#4 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(240): Google_Client->execute( in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on line 110
Abort Processing during Fatal-Error: Uncaught Google_Service_Exception: Error calling GET https://www.googleapis.com/calendar/v3/calendars/mail2%40googlemail.com/events?singleEvents=true&timeMin=2018-10-01T13%3A46%3A51%2B02%3A00&timeMax=2019-01-09T13%3A46%3A51%2B01%3A00: (404) Not Found in C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php:110
Stack trace:
#0 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(62): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Task\Runner.php(174): Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php(46): Google_Task_Runner->run()
#3 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Client.php(593): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#4 C:\IP-Symcon\scripts\google-api-php-client\src\Google\Service\Resource.php(240): Google_Client->execute(
Error in Script C:\IP-Symcon\scripts\google-api-php-client\src\Google\Http\REST.php on Line 110
Hallo Forum, gibt es die möglichkeit nur zukünftige Termine anzeigen zu lassen.
(Google Kalenderscript).
Also wenn ich meinen Kalender um 16 Uhr abfrage, das ich dann die Termine von morgen und keine mehr von heute angezeigt bekomme.
Habe Tagelang nach einer Lösung gesucht, komme aber nicht weiter.
Gruß Werner
… ohne den gesamte Code zu berücksichtigen, man könnte das so abfragen:
<?
$zeitpunkt = 16; /* Uhrzeit/Schwelle */
$unixtime = strtotime('today midnight')+($zeitpunkt * 3600); /* Uhrzeit/Schwelle als unixtime */
if(time() < $unixtime)
{echo "alle Kalendereinträge von heute ausgeben
";}
else
{echo "nur Kalendereinträge die größer sind als heute ".$zeitpunkt." Uhr = Unixtime: ". $unixtime." = ".date('d.m. H:i',$unixtime)." ausgeben
";}
?>
Hallo,
mit dem Angaben/Dateien aus #176 ff. und der Schlüssel-ID als Client-ID funktionert es…
Vielen Dank für die Skripte und die (Ausgangs-)Beschreibung…
Götz
Hallo,
wäre es auch möglich, die Termine für ein bestimmtes Jahr oder einen (oder mehrere) bestimmte(n) Monat(e) auszulesen?
Viele Grüße
Götz
Hallo,
Habe das Script letzten Donnerstag nach ein wenig ärger mit den Google Zugangsdaten und der Freigabe des Kalenders doch noch zum laufen gebracht. Super Script bis jetzt, Danke an die Ersteller. Jedoch fehlte mir als Anzeige die „Beschreibung“ und der „Ort“ von meinen Terminen.
Basierend auf dem Script: „Termine auslesen mit zusätzlicher HTML-Ausgabe“ hier noch eine kleine Anleitung, wie man „Beschreibung“ und „Ort“ mit ausließt und anzeigt. Hierzu muss man folgendes im Code Suchen und Hinzufügen:
1. Bei der Variablen Deklaration:
// Variablen Deklaration
...
$Titles = array();
...
// Variablen Deklaration
...
$Titles = array();
$Ort = array();
$Beschreibung = array();
...
2. Weiter ca. 71 Zeilen darunter bei der Suchanfrage
// Die Suchanfrage ausführen
...
$Titles[] = utf8_decode($event->getSummary());
...
// Die Suchanfrage ausführen
...
$Titles[] = utf8_decode($event->getSummary());
$Beschreibung[] = utf8_decode($event->getDescription());
$Ort[] = utf8_decode($event->getLocation());
...
3. Anzeigen fürs Event Display und HTML-Zeile (Ganztägig):
...
$event_display .= Date("d.m.Y",(int)$StartTimes[$sz])." --- Ganztägig --- ".$Titles[$sz]."
";
//zusammenbauen der HTML-Zeile
$browser .= '<tr>';
$browser .= '<td width="80px" align="center" '.$arrStyle_akt[$sz].'>'.Date("d.m.Y",(int)$StartTimes[$sz]).'</td>';
$browser .= '<td width="150px" align="center" '.$arrStyle_akt[$sz].'>'." --- Ganztägig --- ".'</td>';
$browser .= '<td width="300px" align="left" '.$arrStyle_akt[$sz].'>'.$Titles[$sz].'</td>';
$browser .= '</tr>';
}
...
...
$event_display .= Date("d.m.Y",(int)$StartTimes[$sz])." --- Ganztägig --- ".$Titles[$sz]." - ".$Beschreibung[$sz]." - ".$Ort[$sz]."
";
//zusammenbauen der HTML-Zeile
$browser .= '<tr>';
$browser .= '<td width="100px" align="center" '.$arrStyle_akt[$sz].'>'.Date("d.m.Y",(int)$StartTimes[$sz]).'</td>';
$browser .= '<td width="160px" align="center" '.$arrStyle_akt[$sz].'>'." --- Ganztägig --- ".'</td>';
$browser .= '<td width="350px" align="left" '.$arrStyle_akt[$sz].'>'.$Titles[$sz].'</td>';
$browser .= '<td width="700px" align="left" '.$arrStyle_akt[$sz].'>'.$Beschreibung[$sz].'</td>';
$browser .= '<td width="500px" align="left" '.$arrStyle_akt[$sz].'>'.$Ort[$sz].'</td>';
$browser .= '</tr>';
}...
4. und einmal für das Anzeigen Von - Bis Uhrzeit:
...
$event_display .= Date("d.m.Y H:i:s",(int)$StartTimes[$sz])." - ".Date("H:i:s",(int)$EndTimes[$sz])." ".$Titles[$sz]."
";
//zusammenbauen der HTML-Zeile
$browser .= '<tr>';
$browser .= '<td width="80px" align="center" '.$arrStyle_akt[$sz].'>'.Date("d.m.Y",(int)$StartTimes[$sz]).'</td>';
$browser .= '<td width="150px" align="center" '.$arrStyle_akt[$sz].'>'.Date("H:i:s",(int)$StartTimes[$sz])." - ".Date("H:i:s",(int)$EndTimes[$sz]).'</td>';
$browser .= '<td width="300px" align="left" '.$arrStyle_akt[$sz].'>'.$Titles[$sz].'</td>';
$browser .= '</tr>';
}
...
...
$event_display .= Date("d.m.Y H:i:s",(int)$StartTimes[$sz])." - ".Date("H:i:s",(int)$EndTimes[$sz])." - ".$Titles[$sz]." - ".$Beschreibung[$sz]." - ".$Ort[$sz]."
";
//zusammenbauen der HTML-Zeile
$browser .= '<tr>';
$browser .= '<td width="100px" align="center" '.$arrStyle_akt[$sz].'>'.Date("d.m.Y",(int)$StartTimes[$sz]).'</td>';
$browser .= '<td width="160px" align="center" '.$arrStyle_akt[$sz].'>'.Date("H:i:s",(int)$StartTimes[$sz])." - ".Date("H:i:s",(int)$EndTimes[$sz]).'</td>';
$browser .= '<td width="350px" align="left" '.$arrStyle_akt[$sz].'>'.$Titles[$sz].'</td>';
$browser .= '<td width="700px" align="left" '.$arrStyle_akt[$sz].'>'.$Beschreibung[$sz].'</td>';
$browser .= '<td width="500px" align="left" '.$arrStyle_akt[$sz].'>'.$Ort[$sz].'</td>';
$browser .= '</tr>';
...
5. Anschließend kann die Breite und die Textausrichtung von jeder einzelnen Spalte noch angepasst werden.
...width="XXXNpx" align="XXX...
Bei Fehlern oder Fragen beim Hinzufügen von „Beschreibung“ und „Ort“ meldet euch einfach.
Gruß
Bernhard
Nachtrag (Hab ich gerade noch vergessen):
6. für eine Titelleiste bei der HTML Terminanzeige muss folgendes hinzugefügt werden:
...
//Terminanzeige zusammenbauen
$event_display = ""; // Initialisieren der Anzeige
$browser = '<table border="1" cellpadding="1" cellspacing="1" summary="Google-Kalender">';
while($sz < $i)
...
...
//Terminanzeige zusammenbauen
$event_display = ""; // Initialisieren der Anzeige
$browser = '<table border="1" cellpadding="1" cellspacing="1" summary="Google-Kalender">';
// Zusammenbau der Titelleiste
$browser .= '<tr>';
$browser .= '<td width="100px" align="center" >Datum</td>';
$browser .= '<td width="160px" align="center" >Uhrzeit</td>';
$browser .= '<td width="350px" align="center" >Titel</td>';
$browser .= '<td width="700px" align="center" >Beschreibung</td>';
$browser .= '<td width="500px" align="center" >Ort</td>';
$browser .= '</tr>';
while($sz < $i)
...
Gruß
Bernhard
Hallo User,
ich würde den Kalender auch gerne in mein System Einbinden…Jedoch scheiter ich schon an dem Googledienst
Leider hat sich die Oberfläche so verändert das ich mich nicht mehr zurecht finde.
Kann mir hier jemand helfen?
Vll gibt es ja eine Step by Step-Anleitung für die neue vorgehensweise?
Hoffe ich finde hier hilfe
gruß
Sven
Durch die Anleitung hab ich mich irgendwie durchgehangelt.
Versucht die Schlüsselwörter zu finden und es annähend wie in den Bildern zu machen.
Einen Schlüssel und e-mail Adressen wurden bei mir erzeugt.
Nur ob das alles so richtig war kann ich noch nicht sagen.
Unter anderem bekomme ich noch unter dem OAuth 2.0 Client IDs eine Meldung kein Zustimmungsbildschirm konfiguriert wurde.
Ist dieser zwingend erforderlich, oder kann ich die Meldung ignorieren?
Momentan hänge ich unter Punkt 13 fest.
Habe die google-api-php-client.zip Datai auf meinen Win PC runtergeladen und entpackt.
Da ich symcon auf der Pi nutze die entpackte Dateien wie auf den Bildern unter symcon/scripts/google-api-php-client/ kopiert.
Bei GitHub unter dem Link zum runterladen der Datei steht noch das ich den autoloader in mein Projekt einfügen soll und dieses:
" require_once ‚/path/to/google-api-php-client/vendor/autoload.php‘ ; "
Heißt das jetzt das ich unter dem google-api ordner noch eine Datei erzeugen soll die autoload.php heißt und diesen Befehl rein schreiben:confused:
Als nächstes gleich noch die Frage wenn mir jemand beim lösen des Problems geholfen hat, ist wo genau das Script für den passenden Kalender genau reingespeichert werden soll?
In eine neue Datei? Wenn ja wie müsste die heißen?
In eine Bestehende Datei?
Ich bin leider noch blutiger Anfänger und versteh manch anscheinend doch simplen Zusammenhang noch nicht so ganz.
Hab mir heute mal alle 23 Seiten durchgelesen ob ich eventuell in den Kommentaren eine Lösung finde.
Muss man immer noch die v.1 benutzen?
Die aktuellste wäre demnach 1.1.8 vom 6.7.2016
Habe zuerst die neuste Version 2.8.3 genommen.
Die Ordnungsstruktur sieht allerdings doch etwas anders aus zu der v1.1.8 oder zu der von Schablone im Post #176.
Müsste ich die zip Datei zwingend im symcon Ordner auf der Pi entpacken oder wäre es auch möglich die entpackten Dateien vom WinRechner in den passenden Ordner auf der Pi zu kopieren?
Natürlich mit dem passenden Programm dazu.
Hallo,
nach mehreren Jahren mit diesem Verfahren hat mich die Abhängigkeit von der Google-API dazu gebracht auf das Modul iCal Abfrage zu wechseln.
Das funktioniert ohne x Skripte, Magic-Zeug und ohne externe Bibliotheken.
Mein Müll-Kalender liegt nach wie vor auf Google und wird von dem Modulsuper verarbeitet.
Grüße
Björn
Selbst ich bin auf das Modul iCal umgestiegen!!
Die Scripte haben mehrere Jahre super geklappt.
Hab sie jetzt in die Tonne gehauen.
Ich würde auch gerne auf das Modul umsteigen, es kann aber wohl leider keine Termine in den Google-Kalender schreiben…
Das weiß ich nicht. Ich brauche das aber auch nicht. Ich würde das mal erfragen.
Ich muss mal wieder ein altes Thema aufwärmen. Durch einen neuen PC und kein vernünftiges Backup, versuche ich seit 3 Tagen meinen Googlekalender in IPS einzulesen. Mit dem ICal-Modul habe ich es zwischenzeitlich geschafft. Die Meldungen die durch das script 180 geben aber immer in Zeile 43 einen Fehler aus.
43 Client_ID = „xxxxxxxxxx-eur3i4ovr001qloa22i2a96dd8ofil1n.apps.googleusercontent.com“;
bringt folgende Meldung: Parse error: syntax error, unexpected token „=“ in C:\ProgramData\Symcon\scripts\43583.ips.php on line 43.
Kann mir jemand helfen? (Gleiche Zugangsdaten wie früher!)
Das ist aber das falsche Thema für das Modul.
Oder …
Nutzt du jetzt doch ein eigenes Script?
Da musst du uns schon mehr als die eine Zeile zeigen und bitte auch als vorformatierter Text
sonst zerhaut das Forum den PHP Code und man damit nix anfangen.
Michael