Hallo Leute,
ich hab nach folgendem Wiki Eintrag probiert den Google Kalender auszulesen und steuern der Heizung zu nutzten.
http://www.fhemwiki.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies
Leider bekommen die Dummies keinen Status.
Der kalender Ansicht ist auch richtig eingebunden.
Die Abfrage mit full all bringt auch die Ereignisse zum vorschein.
Keine Ahnung wo mein Fehler liegt.
http://www.fhemwiki.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies
Kann mir einer sagen wo mein Fehler liegt?
Code aus der fhem.cfg
define Cal_Rob_FHEM Calendar ical url https://www.google.com/calendar/basic.ics 14400
attr Cal_Rob_FHEM room 9.20_Kalender
define Cal_Rob_FHEM.start notify Cal_Rob_FHEM:modeStarted.*googlecom.* { Kalenderstart("$EVENT");; }
attr Cal_Rob_FHEM.start room 9.20_Kalender
define Cal_Rob_FHEM.ende notify Cal_Rob_FHEM:modeStarted.*googlecom.* { Kalenderende("$EVENT");; }
attr Cal_Rob_FHEM.ende room 9.20_Kalender
define Cal_Rob_FHEM.urlaub dummy
attr Cal_Rob_FHEM.urlaub room 9.20_Kalender
attr Cal_Rob_FHEM.urlaub setList ja nein
attr Cal_Rob_FHEM.urlaub webCmd ja:nein
define Cal_Rob_FHEM.gast dummy
attr Cal_Rob_FHEM.gast room 9.20_Kalender
attr Cal_Rob_FHEM.gast setList ja nein
attr Cal_Rob_FHEM.gast webCmd ja:nein
Und die Myutils:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
###Kalender auslesen
sub Kalenderstart ($)
{
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Cal_Rob_FHEM summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Cal_Rob_FHEM.urlaub ja");
};
if ($Kalendertext =~ /Besuch/) {
fhem("set Cal_Rob_FHEM.gast ja");
};
};
}
sub Kalenderende ($) {
my ($Ereignis) = @_;
my @Ereignisarray = split(/.*:\s/,$Ereignis);
my $Ereignisteil1 = $Ereignisarray[1];
my @uids=split(/;/,$Ereignisteil1);
foreach my $uid (@uids) {
my $Kalendertext = fhem("get Cal_Rob_FHEM summary $uid");
if ($Kalendertext =~ /Urlaub/) {
fhem("set Cal_Rob_FHEM.urlaub nein");
};
if ($Kalendertext =~ /Besuch/) {
fhem("set Cal_Rob_FHEM.gast nein");
};
};
}
# Enter you functions before_this_ line.
1;
Hi!
In WIKI steht doch: url <der richtige Kalenderlink>!
In deinem Definition url https://www.google.com/calendar/basic.ics fehlen aber einige Teile
Der Definition kann man doch komplett aus dem Kalender kopieren: define Cal_Rob_FHEM Calendar ical url https://www.google.com/calendar/ical/************group.calendar.google.com/private-*********/basic.ics
Hallo Franz,
den Kalender Link ich hab eich gekürzt.
Meine echten Daten, damit Sie jeder benutzten kann, welche ich hier nicht posten.
Die Definition des Kalender Funktioniert.
Ich kann ja auch manuell abfragen aber die Auswertung klappt nicht und ich hab keine Ahnung warum.
Gruß Robert
Na, wer Angst hat, dass seine paar Kalenderdaten von Anderen genutzt werden könnten, sollte lieber ganz auf die von Anderen erstellte Software verzichten.
Besser auf kommerzielle Systme ausweichen.
pah
Zitat von: Prof. Dr. Peter Henning am 13 Juni 2015, 13:36:28
Na, wer Angst hat, dass seine paar Kalenderdaten von Anderen genutzt werden könnten, sollte lieber ganz auf die von Anderen erstellte Software verzichten.
Besser auf kommerzielle Systme ausweichen.
pah
Also ernsthaft, soll das ein Grund ein sein mir nicht zu helfen?
Ist doch ne schlechter Scherz.
Zitat von: no_Legend am 13 Juni 2015, 16:47:46
Also ernsthaft, soll das ein Grund ein sein mir nicht zu helfen?
Ist doch ne schlechter Scherz.
Da stimme ich Dir zu.
Ähnlich wäre es, wenn ich Code poste und die Passwörter weg-x-e.
Leider kann ich Dir nicht helfen, aber zumindest bist Du nicht allein mit der Ansicht, dass Profs Kommentar daneben ist.
Es könnte aber durch aus möglich sein dass es an meinen Kalender Einträgen liegt.
Ich habe es bisher nur einen Eintrag mit Start und Ende Zeit an einem Tag definiert.
Das hat nichts funktioniert.
Danach habe ich ein ganz tägiges Ereignis erstellt. Hat aber auch nicht funktioniert.
Kann mir einer sagen wie man die Kalender Einträge anlegen sollte/muss?
Ich kann auch gerne mal die Readings posten, allerdings auch wieder ohne genaue Kalender url. Um gleich mal vorzubeugen.
Gruß Robert
@ChrisK: Bloß nicht den Mund so voll nehmen.
ZitatKann mir einer sagen wie man die Kalender Einträge anlegen sollte/muss?
=> Geholfen bekommt, wer sich selbst bemüht. Dafür gibt es nun wirklich tausende von Anleitungen, man muss sie nur lesen. Beispiel http://www.broeckelmann.info/tag/ics-kalenderformat/
pah
Zitat von: Prof. Dr. Peter Henning am 14 Juni 2015, 05:07:29
@ChrisK: Bloß nicht den Mund so voll nehmen.
=> Geholfen bekommt, wer sich selbst bemüht. Dafür gibt es nun wirklich tausende von Anleitungen, man muss sie nur lesen. Beispiel http://www.broeckelmann.info/tag/ics-kalenderformat/
pah
Ohje du sitzt aber schon auf einem sehr hohen Ross.
Wie ich etwas in eine Google Kalender Einträge ist kein Problem.
Mir geht es darum was eingetragen werden soll.
Ich hab einfach als Termin Betreff Urlaub geschrieben, hier wollte ich bestätigt haben ob das so korrekt ist.
Zitat von: Prof. Dr. Peter Henning am 14 Juni 2015, 05:07:29
@ChrisK: Bloß nicht den Mund so voll nehmen.
Ist das eine Drohung?
Ich würde normalerweise fragen, was Du damit bezwecken willst, aber in diesem Fall ist mir das ziemlich egal.
Schönen Sonntag noch.
Ich habe das Gefühl, dass die 99_myUtils.pm nicht richtig funktioniert.
Wenn ich die uid die mir angezeigt wird von Handy mit get Kalender summary UID , bekomme ich die Richtige Bezeichnung raus auf die reagiert werden sollen.
Entweder der Aufruf der 99_myutils.pm Codezeilen funktioniert nicht oder der Code wird erst gar nicht ausgeführt.
Kann ich das irgendwie nachvollziehen, jemand ne Tip?
Schade, dass bisher keiner ne Antwort hat.
Mal etwas anderes, wird der Code aus einer myUtils zum Aufruf immer komplett ausgeführt?
Also auch Code den man nicht beim FHEM start schon drin hatte?
Zitat von: no_Legend am 22 Juni 2015, 19:19:11
Schade, dass bisher keiner ne Antwort hat.
Mal etwas anderes, wird der Code aus einer myUtils zum Aufruf immer komplett ausgeführt?
Also auch Code den man nicht beim FHEM start schon drin hatte?
wenn du myutils geändert hast musst du mit <reload 99_myutils.pm> das modul neu laden. Ansonsten ist es unbekannt. Um Fehler einzugrenzen bzw. auszugrenzen kannst auch das globale attribut verbose 5 setzen. Dann kommt alles ins Log was ggf. falsch läuft. Vielleicht findest auch Fehler die auf Google-Calendar hinweisen. Wenn du Verbose 5 setzt solltest FHEM komplett neu starten dann wird alles neu gelesen. Habe die Erfahrung gemacht, dass Myutils trotz reload noch irgendwo gecached war.
Nachtrag ... wenn du nicht weiterkommst kannst dir im myutils einträge ins log schreiben lassen. Such dazu im Forum, ich kann dir grad nicht sagen wie das geht weil ich ncht zu Hause bin. Hab das selber in einem Modul schon mal geschafft. Vielleicht kann man auch irgendwie debuggen, hab ich noch nie benötigt aber vielleicht findest dazu was im Forum.
Zitat von: no_Legend am 14 Juni 2015, 08:40:41
Ich hab einfach als Termin Betreff Urlaub geschrieben, hier wollte ich bestätigt haben ob das so korrekt ist.
wenn du im wiki mal liest .... ein Vergleich auf die Werte "Besuch" oder "Urlaub" durchgeführt (if ($Kalendertext =~ /Urlaub/)) .... => schreib im Text (Beschreibung) auch mal Urlaub rein. Vielleicht reicht der Betreff alleine nicht.
Ich hab es jetzt so weit hinbekommen, dass Urlaub gesetzt wird.
Was ich nicht testen konnte war, ob der Urlaub auch wieder off wird wenn kein Termin da ist.
DAs Problem was ich identifizieren konnte war der auf Aufruf der Funktion von der My Utils.
Hier hat was nicht gestimmt.
Also Ende funktioniert auch.
Das Problem waren die beiden notify
Beispiel:
NO: define Kalender_Christian_Start notify Kalender_Christian:modeStarted.*googlecom.* {\
Kalenderstart("$EVENT");;\
}
OK: Kalender_Rob_FHEM:modeEnded.*googlecom.* {Kalenderende("$EVENT")}
Kann ich die Notfies auch so an passen, dass sie jeden Kalender prüfen?
Also auf alles was Kalender* hat?
Ich hab ein wenig mit den Kalendereinträgen rumgespielt.
Also es muss nur der Betreff stimmen.
Urlaub reagiert auf Urlaub egal wo er im Betreff steht.
Es geht also auch Urlaub:Test oder so.