1. in logic.conf eintragen
2. in smartvisu.conf Items eintragen
3. als zeitschaltuhr.py in /logics speichern
Mo_Fr suchen und Start und Ende setzen, im BSp. 5:00 - 8:00 und 15:00 - 23:30.
Sa-So ebenfalls.
viel Spass damit
P.S. ist meine 1. "Logik"
PHP-Code:
[zeitschaltuhr]
filename = zeitschaltuhr.py
cycle = 60
PHP-Code:
[Kalender]
[[ZP]]
type = bool
visu = yes
knx_dpt = 1
knx_listen = x/x/x
knx_send = x/x/x
knx_init = x/x/x
visu_acl = rw
PHP-Code:
#!/usr/bin/env python
import time
now = time.localtime(time.time())
Wochentag = now.tm_wday
h = now.tm_hour
m = now.tm_min
Zeitzone = now.tm_isdst
aktiv = 0
#Mo-Fr
#[Start(h), Start(min)], [End(h), End(min)]
Mo_Fr = [
[[ 5,0],[ 8,0 ]],
[[15,0],[23,30]]
]
#Sa-So
Sa_So = [
[[ 6,0],[ 9,0 ]],
[[11,0],[13,0 ]],
[[15,0],[23,30]]
]
#----------------------------------------------------------
#logger.info(now)
if (Wochentag >= 0) & (Wochentag < 6):
logger.info('Werktag')
Events = Mo_Fr
elif Wochentag > 5:
logger.info('Wochenende')
Events = Sa_So
for Event in Events:
EStart = Event[0]
EEnd = Event[1]
logger.info("Event von {0}:{1} bis {2}:{3}".format(EStart[0], EStart[1], EEnd[0], EEnd[1]))
if (h+m/60 >= EStart[0]+EStart[1]/60) & (h+m/60 <= EEnd[0]+EEnd[1]/60) :
logger.info('ist aktiv')
aktiv = 1
else:
logger.info('ist nicht aktiv')
#Schalten
sh.Kalender.ZP(aktiv)
logger.info('schalte sh.Kalender.ZP: {0}'.format(aktiv))
Sa-So ebenfalls.
viel Spass damit
P.S. ist meine 1. "Logik"
Kommentar