diff --git a/src/combined.py b/src/combined.py new file mode 100644 index 0000000..bfb30fa --- /dev/null +++ b/src/combined.py @@ -0,0 +1,63 @@ +# combined.py 15/05/2016 D.J.Whale +# +# A simple demo of combining both FSK (MiHome) and OOK (green button legacy) +# +# NOTE: This is only a test harness. +# If you really want a nice way to control these devices, wait for the 'device classes' +# issues to be implemented and tested on top of the raw radio interface, as these +# will be much nicer to use. + +import time +from energenie import Messages, OpenThings, radio, encoder + +# build FSK messages for MiHome purple + +PURPLE_ID = 0x68B # captured from a real device using Monitor.py +m = OpenThings.alterMessage( + Messages.SWITCH, + header_sensorid=PURPLE_ID, + recs_0_value=1) +purple_on = OpenThings.encode(m) + +m = OpenThings.alterMessage( + Messages.SWITCH, + header_sensorid=PURPLE_ID, + recs_0_value=0) +purple_off = OpenThings.encode(m) + +# build OOK messages for legacy green button + +GREEN_ON = encoder.build_switch_msg(True, device_address=1) +GREEN_OFF = encoder.build_switch_msg(False, device_address=1) + + +def switch_loop(): + print("Turning both ON") + radio.transmitter(ook=True) + radio.transmit(GREEN_ON) + radio.transmitter(fsk=True) + radio.transmit(purple_on) + time.sleep(2) + + print("Turning both OFF") + radio.transmitter(ook=True) + radio.transmit(GREEN_OFF) + radio.transmitter(fsk=True) + radio.transmit(purple_off) + time.sleep(2) + + +if __name__ == "__main__": + + print("starting combined switch tester") + print("radio init") + radio.init() + + try: + while True: + switch_loop() + + finally: + radio.finished() + +# END