class ScriptEntity(ToggleEntity): """Representation of a script entity.""" # pylint: disable=too-many-instance-attributes def __init__(self, hass, object_id, name, sequence): """Initialize the script.""" self.entity_id = ENTITY_ID_FORMAT.format(object_id) self.script = Script(hass, sequence, name, self.async_update_ha_state) @property def should_poll(self): """No polling needed.""" return False @property def name(self): """Return the name of the entity.""" return self.script.name @property def state_attributes(self): """Return the state attributes.""" attrs = {} if self.script.can_cancel: attrs[ATTR_CAN_CANCEL] = self.script.can_cancel if self.script.last_action: attrs[ATTR_LAST_ACTION] = self.script.last_action return attrs @property def is_on(self): """Return true if script is on.""" return self.script.is_running def turn_on(self, **kwargs): """Turn the entity on.""" self.script.run(kwargs.get(ATTR_VARIABLES)) def turn_off(self, **kwargs): """Turn script off.""" self.script.stop()
class ScriptEntity(ToggleEntity): """Representation of a script entity.""" # pylint: disable=too-many-instance-attributes def __init__(self, hass, object_id, name, sequence): """Initialize the script.""" self.entity_id = ENTITY_ID_FORMAT.format(object_id) self.script = Script(hass, sequence, name, self.update_ha_state) @property def should_poll(self): """No polling needed.""" return False @property def name(self): """Return the name of the entity.""" return self.script.name @property def state_attributes(self): """Return the state attributes.""" attrs = {} if self.script.can_cancel: attrs[ATTR_CAN_CANCEL] = self.script.can_cancel if self.script.last_action: attrs[ATTR_LAST_ACTION] = self.script.last_action return attrs @property def is_on(self): """Return true if script is on.""" return self.script.is_running def turn_on(self, **kwargs): """Turn the entity on.""" self.script.run(kwargs.get(ATTR_VARIABLES)) def turn_off(self, **kwargs): """Turn script off.""" self.script.stop()