Hallo,
ich möchte Euch vorstellen, wie man eine Zeitschaltuhr realisieren kann , die sich einfach mit Google Kalender administrieren lässt.
Anwendungsbeispiele für minutengenaues Schalten: Weihnachtsbeleuchtung, Bewässerung, Sauna ...
Anwendungsbeispiele für tagesgenaues Schalten:
Aktivierung Anwesenheitssimulation, Anleuchten der zu leerenden Mülltonne, Feiertagsschaltungen ...
Durch das setzen von Terminen lassen sich einzelne Werte auch ohne VPN , Mailboxscan etc. betätigen z.b. vom iPhone (wenn dort der Kalender eingetragen ist).
Voraussetzungen:
- einen oder mehrere dedizierte Kalender in Google Kalender ( oder anderen ICAL Diensten) zum Festlegen der Schaltzeiten
-privaten ICAL Link (aus Google Kalender kopieren : Einstellungen- Kalender- Kalender wählen - Privater Link
-Trigger in logic.conf auf sinnvolles Intervall einstellen
- Logik zeitschaltuhr.py
- Beispiel HTML Seite zur Kalenderdarstellung - Framecode gibt es bei Google Kalendereinstellungen:
Wünsche Euch viel Spass damit
Gruß Stephan
ich möchte Euch vorstellen, wie man eine Zeitschaltuhr realisieren kann , die sich einfach mit Google Kalender administrieren lässt.
Anwendungsbeispiele für minutengenaues Schalten: Weihnachtsbeleuchtung, Bewässerung, Sauna ...
Anwendungsbeispiele für tagesgenaues Schalten:
Aktivierung Anwesenheitssimulation, Anleuchten der zu leerenden Mülltonne, Feiertagsschaltungen ...
Durch das setzen von Terminen lassen sich einzelne Werte auch ohne VPN , Mailboxscan etc. betätigen z.b. vom iPhone (wenn dort der Kalender eingetragen ist).
Voraussetzungen:
- einen oder mehrere dedizierte Kalender in Google Kalender ( oder anderen ICAL Diensten) zum Festlegen der Schaltzeiten
-privaten ICAL Link (aus Google Kalender kopieren : Einstellungen- Kalender- Kalender wählen - Privater Link
-Trigger in logic.conf auf sinnvolles Intervall einstellen
Code:
[zeitschaltuhr] filename = zeitschaltuhr.py cycle = 60
Code:
#!/usr/bin/env python # * ----------------------------------------------------------------------------- # * # *author Stephan Schaade # *copyright 2013 # *license GPL <[URL="http://www.gnu.de"]GNU.de[/URL]> # * ----------------------------------------------------------------------------- # Prerequisites: # 1. Use patched plugin ical to support Google Calendar ( V.0.9 patched) # 2. Define [zentral] [[googleswitch]] and [zentral] [[google_day_switch]] in items # 3. Import private Google ICAL link from google.calendar # 4. Trigger logic # Comments: # imported events need time correction even if timezone was given with time ( add 1hour as shown below) ) (possible bug in Ical ) # left logger info in as comment for diagnostics active=0 today = sh.now().date() #logger.info(today) tomorrow = today + datetime.timedelta(days=1) now =sh.now() #logger.info(now) # Switch by minute of day googleswitch = sh.ical('https://www.google.com/calendar/ical/hierstehtdergeheimecode.calendar.google.com/private-[U][COLOR=#0066cc]hierstehtdergeheimecode[/COLOR][/U]/basic.ics') for day in googleswitch: #logger.info("Date: {0}".format(day)) for event in googleswitch[day]: estart = event['Start'] + datetime.timedelta(hours=+1) eend = event['End'] + datetime.timedelta(hours=+1) logger.info (estart) logger.info (eend) if now >= estart: if now <= eend: logger.info("Googleswitch EIN") active='1' else: logger.info("Googleswitch AUS") else: logger.info("Googleswitch AUS") if active == 1: sh.zentral.googleswitch (active) else: sh.zentral.googleswitch (active) #logger.info (active) # Switch by day if today in googleswitch: sh.zentral.google_day_switch('1') else: sh.zentral.google_day_switch('0')
Code:
/** * ----------------------------------------------------------------------------- * @package smartVISU * @author Stephan Schaade * @copyright 2013 * @license GPL [http://www.gnu.de] * ----------------------------------------------------------------------------- */ {% extends "rooms.html" %} {% block content %} <h1><img class="icon" src='{{ icon0 }}time_calendar.png' />GoogleSwitch</h1> <iframe src="[URL]https://www.google.com/calendar/embed?src=hierstehtdergeheimecode%40group.calendar.google.com&ctz=Europe/Berlin[/URL]" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe> <div class="block"> <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true"> <div data-role="collapsible" data-collapsed="false"> <h3></h3> {{ basic.symbol('googleswitch1', 'zentral.googleswitch', 'Googleswitch ein', icon1~'time_clock.png') }} {{ basic.symbol('googleswitch2', 'zentral.googleswitch', 'Googleswitch aus', icon0~'time_clock.png',0) }} {{ basic.symbol('googledswitch1', 'zentral.google_day_switch', 'Google Day switch ein', icon1~'time_calendar.png') }} {{ basic.symbol('googledswitch2', 'zentral.google_day_switch', 'Google Day switch aus', icon0~'time_calendar.png',0) }} </div> </div> </div>
Wünsche Euch viel Spass damit
Gruß Stephan
Kommentar