-
Notifications
You must be signed in to change notification settings - Fork 67
Gleichzeitiges Ein oder Ausschalten
Mit einem Schaltbefehl ein anderes Objekt mit Ein- oder Aussschalten. Der jeweilig andere Schaltzustand wird ignoriert. Anstonsten hätte ich ja ein Gruppenobjekt mehrfach zuordnen können.
Ich nutze die beiden Logiken z.B. im Badezimmer um die Rollladen herunterzufahren wenn der Bewegungsmelder das Licht einschaltet. Wenn ich dann manuell noch Zusatzlicht Einschalte, wird dieses automatisch vom Bewegungsmelder wieder mit dem Hauptlicht ausgeschaltet. Die Logik sendet jeweils ein 0 oder 1 an das mittels switchon oder switchon referenzierte Item. Somit können Lampen aus und Rollladen heruntergefahren werden.
Zuerst die beiden Logiken, die im logics Verzeichnis gespeichert werden. ####switchoff.py####
#!/usr/bin/env python
# get triggering item
trigger_source = trigger['source']
logger.debug('SwitchOff triggered by '+trigger_source)
trigger_item = sh.return_item(trigger_source)
if not trigger_item():
# switch off associated item
item_to_switchoff = sh.return_item(trigger_item.conf['switchoff'])
logger.info('Switching off '+str(item_to_switchoff))
item_to_switchoff(0)
else:
logger.debug('SwitchOff trigger item is switched on. Nothing to do.')
####switchon.py####
#!/usr/bin/env python
# get triggering item
trigger_source = trigger['source']
logger.debug('SwitchOn triggered by '+trigger_source)
trigger_item = sh.return_item(trigger_source)
if trigger_item():
# switch on associated item
item_to_switchon = sh.return_item(trigger_item.conf['switchon'])
logger.info('Switching on '+str(item_to_switchon))
item_to_switchon(1)
else:
logger.debug('SwitchOn trigger item is switched off. Nothing to do.')
In der Zentral.config habe ich Elemente definiert, die die ermittelten Werte aufnehmen. ####logic.conf#### Registriert werden die beiden Logiken in der logic.conf im etc Ordner von smarthome.py. Die Logiken werden auf alle Items registriert, die die Eigenschaften switchon/switchoff definiert haben.
[SwitchOff]
filename = switchoff.py
watch_item = *:switchoff
[SwitchOn]
filename = switchon.py
watch_item = *:switchon
Die Zuordnung der Logiken zu Items geschieht in conf-Dateien im items Ordner.
[og]
[[badezimmer]]
name = Badezimmer
sv_page = room
sv_img = scene_bathroom.svg
[[[licht]]]
name = Badezimmer
[[[[spiegel]]]]
name = Licht Spiegel
...
[[[[decke]]]]
name = Licht
type = bool
...
switchon = og.badezimmer.rollo.fenster.lang
switchoff = og.badezimmer.licht.spiegel
Das Auslösende Element wird ermittelt und über ein zusätzliches Attribut das zugeordnete Objekt gefunden und geschaltet.