Nachdimmen von Leuchten
Ziel
Nachdimmen von Leuchten auf einen bestimmten Wert um das Licht nachts gedimmt einzuschalten, obwohl es über einen Schalter mit voller Helligkeit eingeschaltet wurde.
Logik
Die Logik prüft ob globale oder lokale Voraussetzungen für das Nachdimmen gegeben sind. Wenn ja wird gedimmt, ansonsten wird nichts gemacht.
Das lokale Item überschreibt dabei das globale Item, somit lassen sich Leuchten 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.
/usr/local/smarthome/logics/nachdimmen.py
#!/usr/bin/env python3
# nachdimmen.py
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
# Leuchte 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/logics.yaml
mit dem Eintrag von:
/usr/local/smarthome/etc/logics.yaml
nachdimmen:
filename: nachdimmen.py
watch_item: '*:nachdimm_wert'
Items
/usr/local/smarthome/items/zentral.yaml
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
/usr/local/smarthome/items/nachdimm_test.yaml
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