diff --git a/src/energenie/encoder.py b/src/energenie/encoder.py index 2bc591c..d4afa25 100644 --- a/src/energenie/encoder.py +++ b/src/energenie/encoder.py @@ -4,6 +4,13 @@ ALL_SOCKETS = 0 +def ashex(payload): + line = "" + for b in payload: + line += str(hex(b)) + " " + return line + + def build_relay_msg(relayState=False): """Temporary test code to prove we can turn the relay on or off""" @@ -45,6 +52,14 @@ return payload +def build_test_message(pattern): + payload = [0x8E, 0xE8, 0xEE, 0x88, 0x8E, 0xE8, 0xEE, 0x88, 0x8E, 0xE8] + pattern &= 0x0F + control = encode_bits(pattern, 4) + payload += control + return payload + + def build_switch_msg(state, device_address=ALL_SOCKETS, house_address=None): """Build a message to turn a switch on or off""" #print("build: state:%s, device:%d, house:%s" % (str(state), device_address, str(house_address))) @@ -100,6 +115,7 @@ # 1000 UNUSED 8 # 1001 UNUSED 9 # 1010 socket 3 off A + # 1011 socket 3 on B # 1100 all off C # 1101 all on D # 1110 socket 1 off E diff --git a/src/legacy.py b/src/legacy.py index 45a9ee0..e587264 100644 --- a/src/legacy.py +++ b/src/legacy.py @@ -109,6 +109,16 @@ time.sleep(1) +def pattern_test(): + """Test all patterns""" + while True: + p = raw_input("number 0..F") + p = int(p, 16) + msg = encoder.build_test_message(p) + print("pattern %s payload %s" % (str(hex(p)), encoder.ashex(msg))) + radio.transmit(msg) + + if __name__ == "__main__": print("starting legacy switch tester") @@ -118,7 +128,8 @@ try: #legacy_learn_mode() #legacy_switch_loop() - legacy_test() + #legacy_test() + pattern_test() finally: radio.finished()