Weg von Google -> calendar mit caldav + fhem + telegram

Begonnen von knopf_piano, 09 Mai 2016, 20:52:52

Vorheriges Thema - Nächstes Thema

knopf_piano

Hatte vor kurzem diesen thread geöffnet.
https://forum.fhem.de/index.php/topic,52610.0.html

Mittlerweile bin ich komplett von google weg und hab adressbuch und calender auch von der Chefin(waf!!) umgezogen.
3 Probleme, die ich gelöst wissen wollte, bevor ich umziehe:

  • calendar-sharing/publish -> geht aktuell in baikal noch nicht
  • weiterhin verfügbarkeit in fhem
  • notification, wenn in freigegeben calendars Termine gelöscht, angelegt, verschoben werden

zur Lösung:
1.
Kein Problem, alle Kalender im user "familie" angelegt, wir haben ja keine geheimnisse...

2.
Zugriff geht wie hier beschrieben problemlos
https://forum.fhem.de/index.php/topic,40636.msg442076.html#msg442076

3.
ja, das war ne fixe Idee, die mit perl elegant machbar ist


  • Ich les den caldav-export des entsprechenden Kalenders aus
  • vergleiche alt mit neu
  • spucke die Änderungen in eine variable und aggreggiere so alle Kalender-Änderungen

sub für die 99_myUtils.pm im Anhang.

Aufruf in fhem folgendermaßen:

###################################################
# ical-check and notify via telegram
###################################################
define Tmr_icalCheck_new at +*04:00:00 {\
      my $txt = "";;\
      my $preamble = "Kalender-Änderungen\\n-----------------\\n";;\
      my $finalMsgText = "";;\
      $txt = check_ical("<path-where-to-store-cal-files>","<url-of-caldav-calendar_1>");;\
      if($txt ne "no_change"){\
$finalMsgText .= $txt;;\
      }\
      $txt = check_ical("<path-where-to-store-cal-files>","<url-of-caldav-calendar_2>");;\
      if($txt ne "no_change"){\
$finalMsgText .= $txt;;\
      }\
      if($finalMsgText ne "") {\
fhem("set myBot message \@<user_1> \@<user_2> $preamble$finalMsgText");;\
      }\
}
attr Tmr_icalCheck_new alignTime 08:00
attr Tmr_icalCheck_new disabledForIntervals 22:00-24:00 00:00-07:00


<path-where-to-store-cal-files> ist z.B. /media/Data/fhem/cal
<url-of-calddav-calendar_*> ist z.B. http://<user>:<passwd>\@192.168.50.1/baikal/html/cal.php/calendars/<user>/<calname>
<user_1> ist Name_Vorname vom TelegramBot
<user_2> ist Name_Vorname vom TelegramBot

Ausgabe im Bot ist dann nach zyklisch 4h-check:

Kalender-Änderungen
-----------------
---
familie_steffen_privat
---
Neu: Slayer - 2016-05-12 - 20:00:00
Gelöscht: Maifest - 2016-05-01 - 14:00:00
Verschoben: Vatertagsbier - 2016-05-05_07:00:00 - 2016-05-05_22:00:00

---
familie_carolin_privat
---
Neu: Chorprobe - 2016-05-12 - 20:00:00
Neu: Volleyball - 2016-05-13 - 20:30:00


Fertig und google hatte meine Daten

Verwendung ohne Gewähr  ;) !!

--
edit: kleine code-optimierung, anhang aktualisiert
zotac nano mit proxmox und ganz viel zeug drauf