# control_mihome.py 17/03/2016 D.J.Whale # # Control Energenie MiHome Adaptor or AdaptorPlus sockets import energenie from Timer import Timer # Define this if you want to seed the registry with know device_id's for testing # Alternatively, remove this line, and use discover_mihome.py to fill your registry MY_SOCKET_IDS = [0x68b] TX_RATE = 2 # number of seconds to toggle the socket switches #----- TEST APPLICATION ------------------------------------------------------- def socket_toggle_loop(): """Toggle the switch on all devices in the directory""" global socket_state if energenie.registry.size() > 0 and send_timer.check(): print("Setting socket switches to %s" % str(socket_state)) for device in energenie.registry.devices(): #TODO: Make energenie.registry iterable # Only try to toggle the switch for devices that actually have a switch if device.has_switch(): print(" socket id %s" % device) device.set_switch(socket_state) socket_state = not socket_state if __name__ == "__main__": print("starting socket tester") energenie.init() # Seed the registry with known devices to simplify tx-only testing try: for id in MY_SOCKET_IDS: socket = energenie.Devices.MIHO005(id) energenie.registry.add(socket, "socket_%s" % str(hex(id))) except: pass send_timer = Timer(TX_RATE, 1) # every n seconds offset by initial 1 socket_state = False try: while True: socket_toggle_loop() finally: energenie.finished() # END