Newer
Older
pyenergenie / src / control_any_noreg.py
@David Whale David Whale on 29 May 2016 1 KB Standalone discovery example written.
# control_any_noreg.py  17/03/2016  D.J.Whale
#
# Control up to 4 legacy green-button sockets (or MiHome control-only sockets)
# Shows how to address sockets directly without using the registry.

import time
import energenie

APP_DELAY = 1

# Devices that use the standard Energenie house code
all_sockets = energenie.Devices.ENER002(0)
socket1     = energenie.Devices.ENER002(1)
socket2     = energenie.Devices.ENER002(2)
socket3     = energenie.Devices.ENER002(3)
socket4     = energenie.Devices.ENER002(4)

# A device that uses a custom house code (e.g. learnt from a hand controller)
socket5     = energenie.Devices.ENER002((0x1234, 1))

# A MiHome device that we know the address of from a previous capture
socket6     = energenie.Devices.MIHO005(0x68b)

sockets     = [all_sockets, socket1, socket2, socket3, socket4, socket5, socket6]


def legacy_socket_loop():
    """Turn all sockets on or off every few seconds"""

    while True:
        for socket_no in range(len(sockets)):
            # socket_no 0 is ALL, then 1=1, 2=2, 3=3, 4=4
            # ON
            print("socket %d ON" % socket_no)
            sockets[socket_no].turn_on()
            time.sleep(APP_DELAY)

            # OFF
            print("socket %d OFF" % socket_no)
            sockets[socket_no].turn_off()
            time.sleep(APP_DELAY)


if __name__ == "__main__":
    print("starting socket tester (no registry)")

    energenie.init()

    try:
        legacy_socket_loop()
    finally:
        energenie.finished()

# END