Skip to content

Gleichzeitiges Ein oder Ausschalten

mknx edited this page Oct 28, 2014 · 3 revisions

Ziel

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.

Logik

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

Items

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.