- alias: Turn TV on if not already on id: turn_tv_on_if_not_already_on description: Required to turn the TV on from Home Assistant - sends a wake on lan magic packet triggers: - trigger: webostv.turn_on entity_id: media_player.tv actions: - action: wake_on_lan.send_magic_packet data: mac: secret tv_mac - alias: Renew LG TV developer mode session weekly id: renew_lgtv_developer_mode_session_weekly description: Required to use TV app launcher and media state reporter actions: - action: rest_command.renew_lgtv_developer_mode_session triggers: - trigger: time at: 01:01:01 conditions: - condition: time weekday: - sun mode: single - alias: Reset security monitoring start time id: reset_security_monitoring_start_time triggers: trigger: state entity_id: sensor.security_monitoring condition: condition: template value_template: '{{ trigger.from_state.state == ''off'' }}' actions: - action: input_datetime.set_datetime target: entity_id: input_datetime.security_monitoring_start_time data: datetime: '{{ now() }}' - alias: Update device issue and battery groups id: update_device_issue_and_battery_groups description: Update device issue and battery groups mode: single max_exceeded: silent triggers: - trigger: event event_type: call_service event_data: domain: group service: reload - trigger: time_pattern minutes: /5 actions: - action: group.set data: object_id: unavailable_entities entities: "{% set allowed_entities = [\n 'sensor.power_meter_relative_self_consumption',\n\ ] + integration_entities('iBeacon Tracker') + integration_entities('netgear')|select('search',\ \ '_ssid$')|list %} {% set unknown_allowed_entities =\n [\n states.sensor.extreme_forecast,\n\ \ ]\n |selectattr('state', 'eq', 'unknown')\n |map(attribute='entity_id')|list\n\ %} {% set long_delay_hours = 3 %} {% set long_unknown_allowed_entities =\n\ \ [\n states.sensor.rachel_s_phone_detected_activity,\n states.binary_sensor.rachel_s_phone_still,\n\ \ ]\n |selectattr('state', 'eq', 'unknown')\n |selectattr('last_changed',\ \ 'ge', (now().timestamp() - long_delay_hours*60*60)|as_datetime)\n |map(attribute='entity_id')|list\n\ %} {% set disabled_entities = state_attr('sensor.disabled_device_entities',\ \ 'entities')\n |regex_replace(find='\\[|\\]|\\{|\\}|\\'entity_id\\':',\ \ replace='')\n |map(attribute='entity_id')|list\n%} {% set delay_minutes\ \ = 5 %} {{ states\n |rejectattr('entity_id', 'in', allowed_entities +\ \ unknown_allowed_entities + long_unknown_allowed_entities + disabled_entities)\n\ \ |rejectattr('entity_id', 'has_value')\n |rejectattr('domain', 'in',\ \ ['button', 'event', 'group', 'image', 'select'])\n |rejectattr('last_changed',\ \ 'ge', (now().timestamp() - delay_minutes * 60)|as_datetime)\n |map(attribute='entity_id')|list\n\ }}\n" - action: group.set data: object_id: frozen_entities entities: "{% set frozen_entities_10_minute_check_entities =\n [\n states.sensor.outside_apparent_temperature,\n\ \ states.sensor.bedroom_presence_sensor_esp_temperature,\n states.sensor.kitchen_presence_sensor_esp_temperature,\n\ \ states.sensor.nursery_presence_sensor_esp_temperature,\n states.sensor.office_presence_sensor_esp_temperature,\n\ \ states.sensor.smart_meter_real_power,\n states.sensor.power_meter_power_load_consumed,\n\ \ ]\n |selectattr('entity_id', 'has_value')\n |selectattr('last_updated',\ \ 'le', (now().timestamp() - 10 * 60)|as_datetime)\n |map(attribute='entity_id')|list\n\ %} {% set frozen_entities_12_hour_check_entities =\n (\n states.sensor|selectattr('entity_id',\ \ 'search', 'r_temperature$|feels_like|voltage$|last_seen')|list +\n \ \ [\n states.sensor.nursery_heater_uncalibrated_temperature,\n \ \ ]\n )\n |selectattr('entity_id', 'has_value')\n |selectattr('last_updated',\ \ 'le', (now().timestamp() - 12 * 60 * 60)|as_datetime)\n |map(attribute='entity_id')|list\n\ %} {{ frozen_entities_10_minute_check_entities + frozen_entities_12_hour_check_entities\ \ }}\n" - action: group.set data: object_id: low_batteries entities: '{% set low_battery_threshold = 25 %} {% set entities = states.sensor|selectattr(''entity_id'', ''search'', ''battery_level$'')|map(attribute=''entity_id'')|list|sort %} {% set battery_levels = entities|map(''states'')|map(''float'', 0)|list %} {{ zip(entities, battery_levels)|selectattr(1, ''<='', low_battery_threshold)|map(attribute=0)|list }} ' - action: group.set data: object_id: charging_batteries entities: '{% set entities = states.sensor|selectattr(''entity_id'', ''search'', ''charging_status$|battery_state$'')|map(attribute=''entity_id'')|list|sort %} {% set status = entities|map(''states'')|list %} {% set entities = zip(entities, status)|selectattr(1, ''in'', [''charging'', ''Charging'', ''full'', ''Full''])|map(attribute=0)|list %} {{ entities|map(''replace'', ''battery_state'', ''battery_level'')|map(''replace'', ''charging_status'', ''battery_level'')|list }} ' - alias: Reset plants last watered id: reset_plants_last_watered triggers: trigger: state entity_id: sensor.dry_plants to: '0' not_from: - '0' - unknown - unavaiable - none actions: - action: input_datetime.set_datetime target: entity_id: input_datetime.plants_last_watered data: datetime: '{{ now() }}'