mysmarthome/packages/wfh.yaml

89 lines
3.3 KiB
YAML

###############################################################################
# @author : Mahasri Kalavala
# @date : 11/07/2017
# @package : Work From Home (wfh)
# @description : Reminds me to Get Up and Walk around the house once
# every 30 minutes during Work From Home days
###############################################################################
homeassistant:
customize:
timer.wfh_timer:
hidden: true
timer:
wfh_timer:
duration: '00:30:00'
###############################################################################
# _ _ _
# /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
#
###############################################################################
automation:
# Start WFH timer if Suresh is HOME during weekdays between 10 AM and 5 PM
###############################################################################
- alias: WFH Timer Start
initial_state: false
trigger:
- platform: time_pattern
minutes: '/5'
seconds: 00
condition:
- condition: template
value_template: '{{ states.binary_sensor.workday_sensor.state == "on" }}'
- condition: template
value_template: '{{ now().hour|int >= 10 and now().hour|int < 17 }}'
- condition: template
value_template: '{{ states.timer.wfh_timer.state == "idle" }}'
- condition: template
value_template: '{{ states.device_tracker.suresh_suresh.state == "home" }}'
action:
- service: timer.start
entity_id: timer.wfh_timer
# Timer elapsed... Remind Suresh to take a quick walk
# Restart the timer ONLY if the time is betwen office hours (10 AM and 5 PM)
###############################################################################
- alias: Timer Elapsed - Take a walk
initial_state: false
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.wfh_timer
action:
- service_template: >
{% if now().hour | int >= 10 and now().hour | int < 17 %}
timer.start
{% else %}
timer.cancel
{% endif %}
entity_id: timer.wfh_timer
- condition: template
value_template: '{{ now().hour|int >= 10 and now().hour|int < 17 }}'
- service: script.voice_notify
data_template:
message: "It is time to stand up and walk around!"
# Cancel timer (if active) When Suresh left home
###############################################################################
- alias: Cancel WFH Timer When Suresh Leaves Home
initial_state: false
trigger:
- platform: zone
entity_id: device_tracker.suresh_suresh
zone: zone.home
event: leave
condition:
- condition: template
value_template: '{{ states.timer.wfh_timer.state == "active" }}'
action:
- service: timer.cancel
entity_id: timer.wfh_timer