-
jkerdreu authored
git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2185 b32b6428-25c9-4566-ad07-03861ab6144f
jkerdreu authoredgit-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2185 b32b6428-25c9-4566-ad07-03861ab6144f
btn_relay_labo.py 2.78 KiB
from xaal.lib import Engine
from xaal.schemas import devices
from xaal.monitor import Monitor
import platform
PKG_NAME = 'btn_relay_labo'
LAMPS=['ccc44227-d4fc-46eb-8578-159e2c47da03','ccc44227-d4fc-46eb-8578-159e2c47da04','ccc44227-d4fc-46eb-8578-159e2c47da05',
'ccc44227-d4fc-46eb-8578-159e2c47da06','ccc44227-d4fc-46eb-8578-159e2c47da07','ccc44227-d4fc-46eb-8578-159e2c47da08']
# Edisio labo
BTNS=['743034ca-c2f0-11e8-9485-a40074bcb601','743034ca-c2f0-11e8-9485-a40074bcb603','743034ca-c2f0-11e8-9485-a40074bcb605',
'743034ca-c2f0-11e8-9485-a40074bcb607','743034ca-c2f0-11e8-9485-a40074bcb608']
# Aquara sw1
AQUARA=['1ec6bbd0-20b5-11e9-b352-a4badbf92500']
# Edisio bureau
#BTNS = ['c4b33536-c314-11e8-a5d6-000673742b01','c4b33536-c314-11e8-a5d6-000673742b03','c4b33536-c314-11e8-a5d6-000673742b05',
# 'c4b33536-c314-11e8-a5d6-000673742b07','c4b33536-c314-11e8-a5d6-000673742b08']
SHUTERS=['e4b05165-be5d-46d5-acd0-4da7be1158ed','2fe70f46-3ece-44d1-af34-2d82e10fb854']
LAMPS_A = [LAMPS[0], LAMPS[2], LAMPS[5]]
LAMPS_B = [LAMPS[1], LAMPS[3], LAMPS[4]]
mon = None
def send(targets,action,body=None):
global mon
engine = mon.dev.engine
engine.send_request(dev,targets,action,body)
def search_for_light(lamps):
for l in lamps:
dev = mon.devices.get_with_addr(l)
if dev:
light = dev.attributes.get('light',None)
if light:
return True
return False
def on_off_light(lamps):
if search_for_light(lamps):
send(lamps,'off')
return False
else:
send(lamps,'on')
return True
def handle_msg(msg):
if not msg.is_notify():
return
# search for the buttons
if msg.action == 'click':
if msg.source == BTNS[0]:
on_off_light(LAMPS_A)
if msg.source == BTNS[1]:
on_off_light(LAMPS_B)
# btn du milieu / on éteint tout
if msg.source == BTNS[2]:
on_off_light(LAMPS)
#send(SHUTERS,'stop')
if msg.source in AQUARA:
if on_off_light(LAMPS):
#send([SHUTERS[0],],'up')
#send([SHUTERS[1],],'up')
pass
else:
#send([SHUTERS[0],],'down')
#send([SHUTERS[1],],'down')
pass
if msg.action == 'double_click':
if msg.source in AQUARA:
send([SHUTERS[0],],'stop')
send([SHUTERS[1],],'stop')
def main():
global dev
global mon
dev = devices.basic()
dev.info = '%s@%s' % (PKG_NAME,platform.node())
engine = Engine()
engine.add_device(dev)
engine.add_rx_handler(handle_msg)
mon = Monitor(dev)
engine.run()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print('Bye bye')