mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-11 00:54:28 +05:00
fix errors
This commit is contained in:
@@ -78,14 +78,15 @@ class MegaBinarySensor(BinarySensorEntity, MegaPushEntity):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def is_on(self) -> bool:
|
def is_on(self) -> bool:
|
||||||
val = self.mega.values.get(self.port, {}).get("value") \
|
val = self.mega.values.get(self.port, {})
|
||||||
or self.mega.values.get(self.port, {}).get('m')
|
if isinstance(val, dict):
|
||||||
|
val = val.get("value", val.get('m'))
|
||||||
if val is None and self._state is not None:
|
if val is None and self._state is not None:
|
||||||
return self._state == 'ON'
|
return self._state == 'ON'
|
||||||
elif val is not None:
|
elif val is not None:
|
||||||
if val in ['ON', 'OFF']:
|
if val in ['ON', 'OFF', '1', '0']:
|
||||||
return val == 'ON' if not self.invert else val == 'OFF'
|
return val in ['ON', '1'] if not self.invert else val in ['OFF', '0']
|
||||||
else:
|
elif isinstance(val, int):
|
||||||
return val != 1 if not self.invert else val == 1
|
return val != 1 if not self.invert else val == 1
|
||||||
|
|
||||||
def _update(self, payload: dict):
|
def _update(self, payload: dict):
|
||||||
|
|||||||
@@ -247,8 +247,8 @@ class MegaOutPort(MegaPushEntity):
|
|||||||
val = 0
|
val = 0
|
||||||
if val == 0:
|
if val == 0:
|
||||||
return self._brightness
|
return self._brightness
|
||||||
else:
|
elif isinstance(val, (int, float)):
|
||||||
return val
|
return int(val / self.dimmer_scale)
|
||||||
elif val is not None:
|
elif val is not None:
|
||||||
val = val.get("value")
|
val = val.get("value")
|
||||||
if val is None:
|
if val is None:
|
||||||
@@ -269,7 +269,8 @@ class MegaOutPort(MegaPushEntity):
|
|||||||
return
|
return
|
||||||
if self.dimmer:
|
if self.dimmer:
|
||||||
val = safe_int(val)
|
val = safe_int(val)
|
||||||
return val > 0 if not self.invert else val == 0
|
if val is not None:
|
||||||
|
return val > 0 if not self.invert else val == 0
|
||||||
else:
|
else:
|
||||||
return val == 'ON' if not self.invert else val == 'OFF'
|
return val == 'ON' if not self.invert else val == 'OFF'
|
||||||
elif val is not None:
|
elif val is not None:
|
||||||
@@ -358,8 +359,10 @@ class MegaOutPort(MegaPushEntity):
|
|||||||
|
|
||||||
|
|
||||||
def safe_int(v):
|
def safe_int(v):
|
||||||
if v in ['ON', 'OFF']:
|
if v == 'ON':
|
||||||
return None
|
return 1
|
||||||
|
elif v == 'OFF':
|
||||||
|
return 0
|
||||||
try:
|
try:
|
||||||
return int(v)
|
return int(v)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
|
|||||||
Reference in New Issue
Block a user