Make custom state setters work again in entity manager

This commit is contained in:
Thomas Lovén 2018-12-27 23:47:19 +01:00
parent 975cbf2da0
commit b52f35f0fa

View File

@ -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)