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