def test_expose_sensor(self): """Test string representation of expose sensor object.""" xknx = XKNX() sensor = ExposeSensor(xknx, name="MeinSensor", group_address="1/2/3", value_type="percent") self.assertEqual( str(sensor), '<ExposeSensor name="MeinSensor" sensor="GroupAddress("1/2/3")/None/None/None" value="None" unit="%"/>', ) self.loop.run_until_complete(sensor.set(25)) self.loop.run_until_complete( sensor.process(xknx.telegrams.get_nowait())) self.assertEqual( str(sensor), '<ExposeSensor name="MeinSensor" sensor="GroupAddress("1/2/3")/None/<DPTArray value="[0x40]" />/25" value="25" unit="%"/>', )
def test_process_temperature(self): """Test reading temperature expose sensor from bus.""" xknx = XKNX() expose_sensor = ExposeSensor( xknx, "TestSensor", value_type="temperature", group_address="1/2/3" ) expose_sensor.sensor_value.payload = DPTArray((0x0C, 0x1A)) telegram = Telegram(GroupAddress("1/2/3"), payload=GroupValueRead()) self.loop.run_until_complete(expose_sensor.process(telegram)) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram( destination_address=GroupAddress("1/2/3"), payload=GroupValueResponse(DPTArray((0x0C, 0x1A))), ), )
def test_process_temperature(self): """Test reading temperature expose sensor from bus.""" xknx = XKNX(loop=self.loop) expose_sensor = ExposeSensor(xknx, 'TestSensor', value_type='temperature', group_address='1/2/3') expose_sensor.sensor_value.payload = DPTArray((0x0c, 0x1a)) telegram = Telegram(GroupAddress('1/2/3')) telegram.telegramtype = TelegramType.GROUP_READ self.loop.run_until_complete( asyncio.Task(expose_sensor.process(telegram))) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram(GroupAddress('1/2/3'), TelegramType.GROUP_RESPONSE, payload=DPTArray((0x0c, 0x1a))))
def test_process_temperature(self): """Test reading temperature expose sensor from bus.""" xknx = XKNX(loop=self.loop) expose_sensor = ExposeSensor( xknx, 'TestSensor', value_type='temperature', group_address='1/2/3') expose_sensor.sensor_value.payload = DPTArray((0x0c, 0x1a)) telegram = Telegram(GroupAddress('1/2/3')) telegram.telegramtype = TelegramType.GROUP_READ self.loop.run_until_complete(asyncio.Task(expose_sensor.process(telegram))) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram( GroupAddress('1/2/3'), TelegramType.GROUP_RESPONSE, payload=DPTArray((0x0c, 0x1a))))
def test_process_percent(self): """Test reading percent expose sensor from bus.""" xknx = XKNX() expose_sensor = ExposeSensor(xknx, "TestSensor", value_type="percent", group_address="1/2/3") expose_sensor.sensor_value.payload = DPTArray((0x40, )) telegram = Telegram(GroupAddress("1/2/3")) telegram.telegramtype = TelegramType.GROUP_READ self.loop.run_until_complete(expose_sensor.process(telegram)) self.assertEqual(xknx.telegrams.qsize(), 1) telegram = xknx.telegrams.get_nowait() self.assertEqual( telegram, Telegram( GroupAddress("1/2/3"), TelegramType.GROUP_RESPONSE, payload=DPTArray((0x40, )), ), )