diff --git a/scripts/btn_relay_labo.py b/scripts/btn_relay_labo.py new file mode 100644 index 0000000000000000000000000000000000000000..2480ffef941bab3edc1ba7dddfd3192d127f86cd --- /dev/null +++ b/scripts/btn_relay_labo.py @@ -0,0 +1,82 @@ +from xaal.lib import helpers +from xaal.schemas import devices +from xaal.monitor import Monitor +import platform +import logging + +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'] + +# 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 +logger = logging.getLogger(PKG_NAME) + +def send(targets,action,body=None): + logger.debug('%s => %s' % (targets,action) ) + 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') + else: + send(lamps,'on') + +def monitor_filter(msg): + if msg.source in LAMPS + SHUTERS: + return True + return False + + +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') + +def setup(engine): + global dev + global mon + dev = devices.basic() + dev.info = '%s@%s' % (PKG_NAME,platform.node()) + engine.add_device(dev) + engine.add_rx_handler(handle_msg) + mon = Monitor(dev,monitor_filter) + return True + +if __name__ == '__main__': + helpers.run_package(PKG_NAME,setup) \ No newline at end of file