Google Kalender Abfrage

Begonnen von heha, 01 Dezember 2014, 08:19:44

Vorheriges Thema - Nächstes Thema

heha

Hallo,

ich bin noch ziemlich neu bei fhem, aber mit vielem Lesen und Probieren wird es langsam immer besser.
Aktuell habe ich ein Problem mit dem Calendar-Modul zu lösen.
Und zwar: Ich setze einen Dummy auf on, wenn im Reading ModeAlarmOrStart der String .*googlecom.* vorhanden ist. Ich habe jeden Tag einer Woche einen Ganztagstermin, den ich so rausbekomme.
In der zweiten Woche sind aber keine Termine und ich will den Dummy dann auf off setzen. Das Ganze ist dann eine Anwesenheitssteuerung über den Kalender.
Wie kann ich also im Calendar-Modul auf ein leeres Reading abfragen?
Also noch mal zusammen gefasst: Wenn an einem Tag ein Ganztagstermin: Dummy on, wenn kein Termin: Dummy off


Kuzl

Hallo heha,

du frägst das reading ja mit einem IF ab denke ich.

dann machst dus im Prinzip so:

IF *.* google.com vorhanden, dann Dummy auf on
ELSE Dummy auf off

Also einfach mit einer else anweisung (in perl, ka ob fhem direkt das else kann)

Gruß
Kuzl

heha

Ja das hatte ich auch schon versucht, hat aber nicht funktioniert. Vielleicht hatte ich aber auch Syntaxfehler drin. Eigentlich sollte Fhem IF ELSE verstehen. Aber ob es direkt im Calendars-Modul geht?
Ich habe es nun erst mal über die Abfrage eines zweiten Kalenders gelöst. Wenn mein Dummy off sein soll, muss ich halt da einen Termin eintragen.

Kuzl

Du musst es auch nicht im Modul machen sondern in einem notify

Beispiel:

define mynotify notify { if( "google.com ist vorhanden" ) {
                                         fhem("set Dummy on");
                                     } else {
                                         fhem("set Dummy off");
                                     }
                                   }

und so bitte nicht in nie fhem.cfg eintragen sondern in der detailansicht sonst brauchst du noch zusätzliche "\" und ";"

heha

Gut danke, dass muss ich dann mal versuchen.

Zwischenzeitlich habe ich das Beispiel aus dem Wiki probiert, den Dummy nach den Zeiten im Termin zu setzen. Dabei fällt mir auf: Lösche ich einen Termin im Google Kalender und frage ihn erneut ab, bleibt er in den Readings drin. Also nochmal kurz zum Verständnis:
Ich habe für heute einen Termin 8:00 bis 20:00 Uhr eingertragen->Kalenderabfrage auf modeAlarmOrStart->Eintrag vorhanden -> soweit richtig
Termin gelöscht->neue Abfrage mit set Kalender update -> selber Eintrag unter modeAlarmOrStart immer noch da

Auch eine Stunde Wartezeit oder Neustarten von fhem bringt den Eintrag nicht weg. Ist das normal?

betateilchen

ja.

probier mal "set <kalenderName> reload" anstatt update, manchmal hilft das.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

heha

Das ist zum Testen aber doof! Reload löscht auch keine alten Einträge.
Liegt das an Google oder am Kalender-Modul?
Ich denke, da muss ich mir zum Spielen erst mal einen neuen Kalender mit kurzen Terminen basteln.

heha

Also an Google liegt es wohl nicht, die betreffende UID ist nach dem Löschen in der .ics Datei nicht vorhanden, im reading unter modeAlarmOrStart aber schon. Man müsste also irgendwie die "Datenbank" des Kalendermoduls löschen/resetten können.