Allow decimal place to be used without corr factor

This commit is contained in:
Philip Lundrigan 2015-12-08 16:15:19 -07:00
parent 9e41c495fc
commit d84bea3621
3 changed files with 18 additions and 28 deletions

View file

@ -127,15 +127,12 @@ class ArestSensor(Entity):
if 'error' in values:
return values['error']
elif 'value' in values:
if self._corr_factor is not None \
and self._decimal_places is not None:
return round((float(values['value']) *
float(self._corr_factor)), self._decimal_places)
elif self._corr_factor is not None \
and self._decimal_places is None:
return round(float(values['value']) * float(self._corr_factor))
else:
return values['value']
value = values['value']
if self._corr_factor is not None:
value = float(value) * float(self._corr_factor)
if self._decimal_places is not None:
value = round(value, self._decimal_places)
return value
else:
return values.get(self._variable, 'n/a')

View file

@ -35,8 +35,8 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
data,
config.get('name', DEFAULT_NAME),
config.get('unit_of_measurement'),
config.get('correction_factor', 1.0),
config.get('decimal_places', 0)
config.get('correction_factor', None),
config.get('decimal_places', None)
)])
@ -49,7 +49,7 @@ class CommandSensor(Entity):
self._name = name
self._state = False
self._unit_of_measurement = unit_of_measurement
self._corr_factor = float(corr_factor)
self._corr_factor = corr_factor
self._decimal_places = decimal_places
self.update()
@ -76,9 +76,9 @@ class CommandSensor(Entity):
try:
if value is not None:
if self._corr_factor is not None:
self._state = round((float(value) * self._corr_factor),
self._decimal_places)
else:
value = float(value) * float(self._corr_factor)
if self._decimal_places is not None:
value = round(value, self._decimal_places)
self._state = value
except ValueError:
self._state = value

View file

@ -136,17 +136,10 @@ class RestSensor(Entity):
try:
if value is not None:
value = RestSensor.extract_value(value, self._variable)
if self._corr_factor is not None \
and self._decimal_places is not None:
self._state = round(
(float(value) *
float(self._corr_factor)),
self._decimal_places)
elif self._corr_factor is not None \
and self._decimal_places is None:
self._state = round(float(value) *
float(self._corr_factor))
else:
if self._corr_factor is not None:
value = float(value) * float(self._corr_factor)
if self._decimal_places is not None:
value = round(value, self._decimal_places)
self._state = value
except ValueError:
self._state = RestSensor.extract_value(value, self._variable)