def track_devices(hass, entity_id, old_state, new_state): """Called when the group.all devices change state.""" # If the target id is not set, return if not TARGET_ID: return # If anyone comes home and the entity is not on, turn it on. if new_state.state == STATE_HOME and not core.is_on(hass, TARGET_ID): core.turn_on(hass, TARGET_ID) # If all people leave the house and the entity is on, turn it off. elif new_state.state == STATE_NOT_HOME and core.is_on(hass, TARGET_ID): core.turn_off(hass, TARGET_ID)
def all_lights_off(hass, entity_id, old_state, new_state): """If all lights turn off, turn off.""" if not TARGET_ID: return if core.is_on(hass, TARGET_ID): _LOGGER.info('All lights have been turned off, turning it off') core.turn_off(hass, TARGET_ID)
def wake_up(hass, now): """Turn light on in the morning. Turn the light on at 7 AM if there are people home and it is not already on. """ if not TARGET_ID: return if device_tracker.is_on(hass) and not core.is_on(hass, TARGET_ID): _LOGGER.info('People home at 7AM, turning it on') core.turn_on(hass, TARGET_ID)
def flash_service(hass, call): """Service that will toggle the target. Set the light to off for 10 seconds if on and vice versa. """ if not TARGET_ID: return if core.is_on(hass, TARGET_ID): core.turn_off(hass, TARGET_ID) time.sleep(10) core.turn_on(hass, TARGET_ID) else: core.turn_on(hass, TARGET_ID) time.sleep(10) core.turn_off(hass, TARGET_ID)
def test_is_on(self): """Test is_on method.""" self.assertTrue(comps.is_on(self.hass, 'light.Bowl')) self.assertFalse(comps.is_on(self.hass, 'light.Ceiling')) self.assertTrue(comps.is_on(self.hass))