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