Example #1
0
def main():
    loop = asyncio.get_event_loop()
    wmbus = WMbus("IM871A_USB")
    wmbus.start()

    loop.run_forever()
    loop.close()
Example #2
0
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"
Example #3
0
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()
Example #4
0
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()
Example #5
0
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
Example #6
0
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
Example #7
0
def test_init(virtual_serial):
    master, slave = virtual_serial
    wMbus = WMbus("IM871A_USB", path=os.ttyname(slave))

    assert type(wMbus) == WMbus