-
Notifications
You must be signed in to change notification settings - Fork 67
Nachdimmen
cstrassburg edited this page Apr 1, 2015
·
4 revisions
Nachdimmen von Lampen auf einen bestimmten Wert um das Licht nachts gedimmt einzuschalten.
Die Logik pürft ob globale oder lokale Voraussetzungen für das Nachdimmen gegeben sind. Wenn ja wird gedimmt, ansonsten nichts gemacht. Das lokale Item überschreibt dabei das globale Item, somit lassen sich Lampen einzeln auf Uhrzeiten etc. konfigurieren, alle zentral oder auch gemischt nachdimmen. Nur wenn beim Item das "nachdimm_wert" Attribut konfiguriert ist, wird durch die Logik nachgedimmt.
Die Logik wird unter logics/nachdimmen.py gespeichert.
#!/usr/bin/env python
logger.info("Nachdimmen Logik gestartet")
itemname = trigger['source']
item = sh.return_item(itemname)
if trigger['value'] == True:
active = False
has_local = False
#schauen ob es ein lokales Steueritem gibt
search_id = item.id()+".nachdimmen"
for child in item.return_children():
if child.id() == search_id:
has_local = True
if has_local:
if item.nachdimmen:
logger.info("local active")
active = True
else:
if sh.zentral.nachdimmen:
logger.info("zentral active")
active = True
# Lampe auf Wert aus nachdimm_wert = xx dimmen
if active:
item.helligkeit(item.conf['nachdimm_wert'])
else:
logger.info("Nachdimmen Logik: Nachdimmen weder beim Objekt noch zentral aktiviert")
else:
logger.info("Nachdimmen Logik: Licht wird ausgeschaltet")
Die Logik aktiviert man unter etc/logic.conf mit dem Eintrag von:
[nachdimmen]
filename = nachdimmen.py
watch_item = *:nachdimm_wert
[zentral]
[[nachdimmen]]
type = bool
knx_dpt = 1
visu_acl = rw
knx_send = 1/0/3
knx_cache = 1/0/3
[[[uzsu]]]
type=dict
uzsu_item=zentral.nachdimmen
cache=True
visu_acl=rw
[test]
[[testlichtB]]
type = bool
knx_dpt = 1
visu_acl = rw
knx_send = 7/7/5
knx_cache = 7/7/5
nachdimm_wert = 20
[[[helligkeit]]]
type = num
visu_acl = rw
knx_dpt = 5
knx_cache = 7/7/95
enforce_updates = yes
knx_send = 7/7/93
[[testlicht]]
type = bool
knx_dpt = 1
visu_acl = rw
knx_send = 7/7/1
knx_cache = 7/7/2
nachdimm_wert = 45
[[[nachdimmen]]]
type = bool
visu_acl = rw
[[[helligkeit]]]
type = num
visu_acl = rw
knx_dpt = 5
knx_cache = 7/7/85
enforce_updates = yes
knx_send = 7/7/83
[[[uszu]]]
type=dict
uzsu_item=test.testlicht.nachdimmen
cache=True
visu_acl=rw