def test_str_humidity(self): """Test resolve state with humidity sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor(xknx, 'TestSensor', group_address_state='1/2/3', value_type="humidity") sensor.sensor_value.payload = DPTArray((0x0e, 0x73)) self.assertEqual(sensor.resolve_state(), 33.02) self.assertEqual(sensor.unit_of_measurement(), "%") self.assertEqual(sensor.ha_device_class(), "humidity")
def test_str_power(self): """Test resolve state with power sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor(xknx, 'TestSensor', group_address_state='1/2/3', value_type="power") sensor.sensor_value.payload = DPTArray((0x43, 0xC6, 0x80, 00)) self.assertEqual(sensor.resolve_state(), 397) self.assertEqual(sensor.unit_of_measurement(), "W") self.assertEqual(sensor.ha_device_class(), "power")
def test_str_scaling(self): """Test resolve state with percent sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor(xknx, 'TestSensor', group_address_state='1/2/3', value_type="percent") sensor.sensor_value.payload = DPTArray((0x40, )) self.assertEqual(sensor.resolve_state(), 25) self.assertEqual(sensor.unit_of_measurement(), "%") self.assertEqual(sensor.ha_device_class(), None)
def test_str_temp(self): """Test resolve state with temperature sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor(xknx, 'TestSensor', group_address_state='1/2/3', value_type="temperature") sensor.sensor_value.payload = DPTArray((0x0c, 0x1a)) self.assertEqual(sensor.resolve_state(), 21.00) self.assertEqual(sensor.unit_of_measurement(), "°C") self.assertEqual(sensor.ha_device_class(), "temperature")
def test_str_power(self): """Test resolve state with power sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor( xknx, 'TestSensor', group_address_state='1/2/3', value_type="power") sensor.sensor_value.payload = DPTArray((0x43, 0xC6, 0x80, 00)) self.assertEqual(sensor.resolve_state(), 397) self.assertEqual(sensor.unit_of_measurement(), "W") self.assertEqual(sensor.ha_device_class(), "power")
def test_str_humidity(self): """Test resolve state with humidity sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor( xknx, 'TestSensor', group_address_state='1/2/3', value_type="humidity") sensor.sensor_value.payload = DPTArray((0x0e, 0x73)) self.assertEqual(sensor.resolve_state(), 33.02) self.assertEqual(sensor.unit_of_measurement(), "%") self.assertEqual(sensor.ha_device_class(), "humidity")
def test_str_temp(self): """Test resolve state with temperature sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor( xknx, 'TestSensor', group_address_state='1/2/3', value_type="temperature") sensor.sensor_value.payload = DPTArray((0x0c, 0x1a)) self.assertEqual(sensor.resolve_state(), 21.00) self.assertEqual(sensor.unit_of_measurement(), "°C") self.assertEqual(sensor.ha_device_class(), "temperature")
def test_str_speed_ms(self): """Test resolve state with speed_ms sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor( xknx, 'TestSensor', group_address_state='1/2/3', value_type="speed_ms") sensor.sensor_value.payload = DPTArray((0x00, 0x1b,)) self.assertEqual(sensor.resolve_state(), 0.27) self.assertEqual(sensor.unit_of_measurement(), "m/s") self.assertEqual(sensor.ha_device_class(), None)
def test_str_scaling(self): """Test resolve state with percent sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor( xknx, 'TestSensor', group_address_state='1/2/3', value_type="percent") sensor.sensor_value.payload = DPTArray((0x40,)) self.assertEqual(sensor.resolve_state(), 25) self.assertEqual(sensor.unit_of_measurement(), "%") self.assertEqual(sensor.ha_device_class(), None)
def test_str_speed_ms(self): """Test resolve state with speed_ms sensor.""" xknx = XKNX(loop=self.loop) sensor = Sensor(xknx, 'TestSensor', group_address_state='1/2/3', value_type="speed_ms") sensor.sensor_value.payload = DPTArray(( 0x00, 0x1b, )) self.assertEqual(sensor.resolve_state(), 0.27) self.assertEqual(sensor.unit_of_measurement(), "m/s") self.assertEqual(sensor.ha_device_class(), None)
async def test_process(self): """Test process / reading telegrams from telegram queue.""" xknx = XKNX() sensor = Sensor( xknx, "TestSensor", value_type="temperature", group_address_state="1/2/3" ) telegram = Telegram( destination_address=GroupAddress("1/2/3"), payload=GroupValueWrite(DPTArray((0x06, 0xA0))), ) await sensor.process(telegram) assert sensor.sensor_value.value == 16.96 assert sensor.sensor_value.telegram.payload.value == DPTArray((0x06, 0xA0)) assert sensor.resolve_state() == 16.96 # test HomeAssistant device class assert sensor.ha_device_class() == "temperature"