Add support for flow sensor metrics in RainMachine (#23221)

* Initial commit

* In the clear
This commit is contained in:
Aaron Bach authored and Fabian Affolter committed 2019-05-02 09:45:51 +02:00
1 parent f3925b7ede
commit daa1d103d4
4 files changed
+86 -34

No files matched your search

@@ -7,10 +7,10 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from . import (
BINARY_SENSORS, DATA_CLIENT, DOMAIN as RAINMACHINE_DOMAIN,
OPERATION_RESTRICTIONS_CURRENT, OPERATION_RESTRICTIONS_UNIVERSAL,
SENSOR_UPDATE_TOPIC, TYPE_FREEZE, TYPE_FREEZE_PROTECTION, TYPE_HOT_DAYS,
TYPE_HOURLY, TYPE_MONTH, TYPE_RAINDELAY, TYPE_RAINSENSOR, TYPE_WEEKDAY,
RainMachineEntity)
PROVISION_SETTINGS, RESTRICTIONS_CURRENT, RESTRICTIONS_UNIVERSAL,
SENSOR_UPDATE_TOPIC, TYPE_FLOW_SENSOR, TYPE_FREEZE, TYPE_FREEZE_PROTECTION,
TYPE_HOT_DAYS, TYPE_HOURLY, TYPE_MONTH, TYPE_RAINDELAY, TYPE_RAINSENSOR,
TYPE_WEEKDAY, RainMachineEntity)
_LOGGER = logging.getLogger(__name__)
@@ -79,27 +79,27 @@ class RainMachineBinarySensor(RainMachineEntity, BinarySensorDevice):
async def async_update(self):
"""Update the state."""
if self._sensor_type == TYPE_FREEZE:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['freeze']
if self._sensor_type == TYPE_FLOW_SENSOR:
self._state = self.rainmachine.data[PROVISION_SETTINGS].get(
'useFlowSensor')
elif self._sensor_type == TYPE_FREEZE:
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT]['freeze']
elif self._sensor_type == TYPE_FREEZE_PROTECTION:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_UNIVERSAL]['freezeProtectEnabled']
self._state = self.rainmachine.data[RESTRICTIONS_UNIVERSAL][
'freezeProtectEnabled']
elif self._sensor_type == TYPE_HOT_DAYS:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_UNIVERSAL]['hotDaysExtraWatering']
self._state = self.rainmachine.data[RESTRICTIONS_UNIVERSAL][
'hotDaysExtraWatering']
elif self._sensor_type == TYPE_HOURLY:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['hourly']
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT]['hourly']
elif self._sensor_type == TYPE_MONTH:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['month']
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT]['month']
elif self._sensor_type == TYPE_RAINDELAY:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['rainDelay']
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT][
'rainDelay']
elif self._sensor_type == TYPE_RAINSENSOR:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['rainSensor']
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT][
'rainSensor']
elif self._sensor_type == TYPE_WEEKDAY:
self._state = self.rainmachine.data[
OPERATION_RESTRICTIONS_CURRENT]['weekDay']
self._state = self.rainmachine.data[RESTRICTIONS_CURRENT][
'weekDay']