From e8d92cfa36aa1ebba365ca7f403955d1ce69830d Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 31 Jan 2021 17:36:56 +0300 Subject: [PATCH] invert inputs --- custom_components/mega/binary_sensor.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/custom_components/mega/binary_sensor.py b/custom_components/mega/binary_sensor.py index 423fb12..6c55824 100644 --- a/custom_components/mega/binary_sensor.py +++ b/custom_components/mega/binary_sensor.py @@ -16,7 +16,7 @@ from homeassistant.const import ( CONF_ENTITY_ID, ) from homeassistant.core import HomeAssistant -from .const import EVENT_BINARY_SENSOR, DOMAIN, CONF_CUSTOM, CONF_SKIP +from .const import EVENT_BINARY_SENSOR, DOMAIN, CONF_CUSTOM, CONF_SKIP, CONF_INVERT from .entities import MegaPushEntity from .hub import MegaD @@ -71,6 +71,10 @@ class MegaBinarySensor(BinarySensorEntity, MegaPushEntity): def state_attributes(self): return self._attrs + @property + def invert(self): + return self.customize.get(CONF_INVERT, False) + @property def is_on(self) -> bool: val = self.mega.values.get(self.port, {}).get("value") \ @@ -79,9 +83,9 @@ class MegaBinarySensor(BinarySensorEntity, MegaPushEntity): return self._state == 'ON' elif val is not None: if val in ['ON', 'OFF']: - return val == 'ON' + return val == 'ON' if not self.invert else val == 'OFF' else: - return val != 1 + return val != 1 if not self.invert else val == 1 def _update(self, payload: dict): self.mega.values[self.port] = payload