def main(): loop = asyncio.get_event_loop() wmbus = WMbus("IM871A_USB") wmbus.start() loop.run_forever() loop.close()
def test_runtime(virtual_serial): master, slave = virtual_serial wMbus = WMbus("IM871A_USB", path=os.ttyname(slave)) wMbus.start() sleep(0.5) assert wMbus.running wMbus.stop() assert not wMbus.running
def test_process_radio_message(virtual_serial): master, slave = virtual_serial context = Context() stick = MockStick() wMbus = WMbus( "IM871A_USB", path=os.ttyname(slave), on_device_registration=context.handle_device_registration, on_radio_message=context.handle_message, stick=stick, ) message = IMSTMessage( endpoint_id=0, message_id=0, payload_length=4, with_timestamp_field=False, with_crc_field=False, with_rssi_field=False, payload= b"\x12\x44\xff\xff\x12\xaa\xaa\xbb\x12\x13\x14\x15\x12\x13\x14\x15", ) wMbus.process_radio_message(message) assert context.device is not None assert type(context.device) == MockDevice assert type(context.message) == WMbusMessage assert type(context.message_device) == MockDevice assert context.device.id == "ffff12aaaabb1213" assert context.message_device.id == "ffff12aaaabb1213" assert context.message.access_number == 21 assert context.message.command == b"\x44" assert context.message.configuration_word == b"\x13" assert context.message.control_field == b"\x14" assert context.message.device_type == b"\x13" assert context.message.length == 18 assert context.message.manufacturer_id == b"\xff\xff" assert ( context.message.raw == b"\x12\x44\xff\xff\x12\xaa\xaa\xbb\x12\x13\x14\x15\x12\x13\x14\x15") assert context.message.serial_number == b"\xff\x12\xaa\xaa\xbb" assert context.message.status == 18 assert context.message.version == b"\x12"
def main(): loop = asyncio.get_event_loop() wmbus = WMbus("IM871A_USB") target_device = "b05c74720000021b" def handle_new_device(device: Device): if device.id == target_device: sleep(1) device.set_aes_key( key= b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" ) wmbus.on_device_registration = handle_new_device wmbus.start() loop.run_forever() loop.close()
def main(): loop = asyncio.get_event_loop() wmbus = WMbus("IM871A_USB") def handle_device_message(device: Device, message: WMbusMessage): logger.info("Receive message per event from device %s:", device.id) for value in message.values: logger.info( "Stored value: %s %s Time: %s", value["value"], value["unit"], value["timestamp"], ) wmbus.on_radio_message = handle_device_message wmbus.start() loop.run_forever() loop.close()
def test_process_radio_message(virtual_serial): master, slave = virtual_serial wMbus = WMbus("IM871A_USB", path=os.ttyname(slave)) message = IMSTMessage( endpoint_id=0, message_id=0, payload_length=4, with_timestamp_field=False, with_crc_field=False, with_rssi_field=False, payload= b"\x12\x44\xff\xff\x12\xaa\xaa\xbb\x12\x13\x14\x15\x12\x13\x14\x15", ) wMbus.process_radio_message(message) print(wMbus.devices) device = wMbus.devices[b"\xff\xff\x12\xaa\xaa\xbb\x12\x13"] assert device is not None assert type(device) == MockDevice assert type(device.last_message) == WMbusMessage
def test_init(virtual_serial): master, slave = virtual_serial wMbus = WMbus("IM871A_USB", path=os.ttyname(slave)) assert type(wMbus) == WMbus