Make custom state setters work again in entity manager
This commit is contained in:
parent
975cbf2da0
commit
b52f35f0fa
@ -89,6 +89,8 @@ class Entities(Base):
|
|||||||
|
|
||||||
def __getattr__(self, key):
|
def __getattr__(self, key):
|
||||||
if key == 'state':
|
if key == 'state':
|
||||||
|
if self.get_state:
|
||||||
|
return self.get_state()
|
||||||
return self._hass.get_state(self._entity)
|
return self._hass.get_state(self._entity)
|
||||||
return self._hass.get_state(self._entity,
|
return self._hass.get_state(self._entity,
|
||||||
attribute=key)
|
attribute=key)
|
||||||
@ -97,6 +99,8 @@ class Entities(Base):
|
|||||||
self.__dict__[key] = value
|
self.__dict__[key] = value
|
||||||
return
|
return
|
||||||
if key == 'state':
|
if key == 'state':
|
||||||
|
if self.set_state:
|
||||||
|
self.set_state(value)
|
||||||
return self._hass.set_state(self._entity, state=value)
|
return self._hass.set_state(self._entity, state=value)
|
||||||
attr = self._hass.get_state(self._entity,
|
attr = self._hass.get_state(self._entity,
|
||||||
attribute='all')
|
attribute='all')
|
||||||
@ -113,14 +117,10 @@ class Entities(Base):
|
|||||||
self._hass.set_state(self._entity, attributes=attr)
|
self._hass.set_state(self._entity, attributes=attr)
|
||||||
|
|
||||||
class LightEntity(Entities.Entity):
|
class LightEntity(Entities.Entity):
|
||||||
def __init__(self, hass, entity):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(hass, entity)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
@property
|
def set_state(self, state):
|
||||||
def state(self):
|
|
||||||
return super().state
|
|
||||||
@state.setter
|
|
||||||
def state(self, state):
|
|
||||||
if state == 'on':
|
if state == 'on':
|
||||||
self._hass.call_service('light/turn_on', entity_id =
|
self._hass.call_service('light/turn_on', entity_id =
|
||||||
self._entity)
|
self._entity)
|
||||||
@ -129,5 +129,3 @@ class Entities(Base):
|
|||||||
self._entity)
|
self._entity)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
super(Entities.LightEntity, self.__class__).state.fset(self,
|
|
||||||
state)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user