def resolve_state(self): """Return the current state of the sensor as a human readable string.""" # pylint: disable=invalid-name,too-many-return-statements if self.state is None: return None elif self.value_type == 'percent' and \ isinstance(self.state, DPTArray) and \ len(self.state.value) == 1: # TODO: Instanciate DPTScaling object with DPTArray class return "{0}".format(DPTScaling().from_knx(self.state.value)) elif self.value_type == 'humidity': return DPTHumidity().from_knx(self.state.value) elif self.value_type == 'temperature': return DPTTemperature().from_knx(self.state.value) elif self.value_type == 'illuminance': return DPTLux().from_knx(self.state.value) elif self.value_type == 'speed_ms': return DPTWsp().from_knx(self.state.value) elif self.value_type == 'current': return DPTUElCurrentmA().from_knx(self.state.value) elif isinstance(self.state, DPTArray): return ','.join('0x%02x' % i for i in self.state.value) elif isinstance(self.state, DPTBinary): return "{0:b}".format(self.state.value) raise TypeError()
def test_humidity_assert_min_exceeded(self): with self.assertRaises(ConversionError): DPTHumidity().to_knx(-1)
def test_humidity_settings(self): self.assertEqual(DPTHumidity().value_min, 0) self.assertEqual(DPTHumidity().value_max, 670760) self.assertEqual(DPTHumidity().unit, "%") self.assertEqual(DPTHumidity().resolution, 1)
def test_humidity_assert_min_exceeded(self): """Test parsing of DPTHumidity with wrong value.""" with self.assertRaises(ConversionError): DPTHumidity().to_knx(-1)
def test_humidity_settings(self): """Test attributes of DPTHumidity.""" self.assertEqual(DPTHumidity().value_min, 0) self.assertEqual(DPTHumidity().value_max, 670760) self.assertEqual(DPTHumidity().unit, "%") self.assertEqual(DPTHumidity().resolution, 1)