-
Notifications
You must be signed in to change notification settings - Fork 67
Logik Zirkulation Anwesend Warmwasser Pulsweite
Mirko Hirsch edited this page Oct 3, 2013
·
1 revision
Bei Abwesenheit keine Zirkulation. Bei Warmwasserbereitung durchgängig Zirkulation, sonst in der Basiszeit für x Minuten (hier 10% in der Stunde an).
#/logics/zirkulation.py
#!/usr/bin/env python
#trigger logic by ww_item, zirk_item oder anything else
### config ###
zirk_item = sh.zirk #item Zirkulationspumpe (bool)
praesenz_item = sh.ow.praesenz #item Praesenz (bool)
ww_item = sh.ebus.status_wp #item Status Warmwasserbereitung
ww_values = [62,7,8] #Werte von Status Warmwasserbereitung bei denen Zirkulation laufen soll als Liste!
base_time = 60 #Basis-Zeit Minuten
on_perc = 10 #PWM in %
### end config ###
on = int(base_time * 60 * on_perc / 100)
off = int(base_time * 60 - on)
if not praesenz_item(): # niemand da
zirk_item(False)
elif ww_item() in ww_values: # Waermepumpe laeuft
zirk_item(True)
else:
if not zirk_item() and zirk_item.age() >= off: # Zirkpumpe aus und das schon laenger als 'off' Sekunden
zirk_item(True)
zirk_item.timer(on, False)
Folgender Eintrag wird in /etc/logics.conf benötigt.
[zirkulation]
filename = zirkulation.py
crontab = init
watch_item = ebus.status_wp,ow.praesenz
cycle = 60
Folgende Items werden in der items.conf benötigt.
[ow]
[[praesenz]]
name = globale_praesenz
type = bool
value = True
knx_dpt = 1
knx_send = 0/7/0
knx_reply = 0/7/0
[ebus]
[[status_wp]]
type = num
knx_dpt = 6
knx_listen = 8/6/1
knx_reply = 8/6/1
ebus_cmd = "amu wp_stat"
ebus_type = "get"
comment = Warmepumpenstatus
Kurze Erklärung der Logik folgt.