micor changes and clean up.

This commit is contained in:
Mahasri Kalavala 2019-12-20 10:32:28 -05:00
parent a3c869e9e8
commit 87961b393c
45 changed files with 1628 additions and 1728 deletions

View File

@ -27,33 +27,33 @@ homeassistant:
sun: sun:
alexa: alexa:
config: config:
cloud: # cloud:
alexa: # alexa:
filter: # filter:
include_entities: # include_entities:
- light.family_room # - light.family_room
- light.master_bedroom # - light.master_bedroom
- light.gateway_light_34ce008ad65d # - light.gateway_light_34ce008ad65d
- switch.basement_left # - switch.basement_left
- switch.basement_right # - switch.basement_right
- switch.frontyard_light # - switch.frontyard_light
- switch.garage_lights # - switch.garage_lights
- switch.guest_bedroom # - switch.guest_bedroom
- switch.prayer_room # - switch.prayer_room
- switch.kids_bed_accent # - switch.kids_bed_accent
- switch.kids_bedroom # - switch.kids_bedroom
- switch.kitchen # - switch.kitchen
- switch.office_room # - switch.office_room
- switch.wemobackyardlightswitch # - switch.wemobackyardlightswitch
- switch.wemoswitch1 # - switch.wemoswitch1
include_domains: # include_domains:
- light # - light
- switch # - switch
entity_config: # entity_config:
light.gateway_light_34ce008ad65d: # light.gateway_light_34ce008ad65d:
name: Gateway Light # name: Gateway Light
description: Xiaomi Gateway Light # description: Xiaomi Gateway Light
discovery: discovery:
@ -71,14 +71,15 @@ homekit:
- binary_sensor.single_car_garage_door_tilt_sensor_sensor - binary_sensor.single_car_garage_door_tilt_sensor_sensor
- binary_sensor.two_car_garage_door_tilt_sensor_sensor - binary_sensor.two_car_garage_door_tilt_sensor_sensor
map: mobile_app:
updater: # map:
logbook: # updater:
history: # logbook:
# history:
websocket_api: websocket_api:
python_script: python_script:
recorder: # recorder:
db_url: !secret my_sql_url # db_url: !secret my_sql_url
logger: !include logging.yaml logger: !include logging.yaml
zeroconf: zeroconf:
@ -104,32 +105,6 @@ binary_sensor:
- platform: workday - platform: workday
country: US country: US
person:
- name: Suresh
id: suresh
device_trackers:
- device_tracker.suresh
- device_tracker.suresh_kalavala
- device_tracker.tesla_model_3_5yj3e1ea8jf010610_location_tracker
- name: Mallika
id: mallika
device_trackers:
- device_tracker.mallika
- device_tracker.life360_mallika
- name: Srinika
id: srinika
device_trackers:
- device_tracker.srinika
- device_tracker.life360_srinika
- name: Hasika
id: hasika
device_trackers:
- device_tracker.hasika
- device_tracker.life360_hasika
lovelace: lovelace:
mode: yaml mode: yaml

View File

@ -14,7 +14,7 @@ logs:
homeassistant.setup: error homeassistant.setup: error
homeassistant.loader: error # hide custom_component warnings homeassistant.loader: error # hide custom_component warnings
homeassistant.exceptions: error homeassistant.exceptions: error
homeassistant.helpers.script: error homeassistant.helpers.script: error
homeassistant.helpers.entity: error homeassistant.helpers.entity: error
homeassistant.components.wemo: critical homeassistant.components.wemo: critical
homeassistant.components.cloud.iot: error homeassistant.components.cloud.iot: error

View File

@ -105,17 +105,17 @@ cards:
- script.emergency_script - script.emergency_script
- script.emergency_script_loop - script.emergency_script_loop
- type: horizontal-stack # - type: horizontal-stack
cards: # cards:
- type: glance # - type: glance
entities: # entities:
- input_label.mallika_birthday_days2go # - input_label.mallika_birthday_days2go
- type: glance # - type: glance
entities: # entities:
- input_label.srinika_birthday_days2go # - input_label.srinika_birthday_days2go
- type: glance # - type: glance
entities: # entities:
- input_label.hasika_birthday_days2go # - input_label.hasika_birthday_days2go
- type: entity-filter - type: entity-filter
title: Doors title: Doors
@ -184,15 +184,6 @@ cards:
- type: weather-forecast - type: weather-forecast
entity: weather.dark_sky entity: weather.dark_sky
- type: picture-entity
id: camera_ohio_doppler_weather
title: Ohio Doppler Weather
entity: camera.ohio_doppler_weather
camera_image: camera.ohio_doppler_weather
show_info: true
tap_action:
action: more-info
- type: conditional - type: conditional
conditions: conditions:
- entity: sensor.usps_mail - entity: sensor.usps_mail

View File

@ -7,7 +7,6 @@
############################################################################### ###############################################################################
homeassistant: homeassistant:
customize: customize:
automation.alarm_clock: automation.alarm_clock:
icon: mdi:alarm-check icon: mdi:alarm-check
@ -48,13 +47,13 @@ input_label:
icon: mdi:timer icon: mdi:timer
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
@ -64,7 +63,7 @@ automation:
- platform: homeassistant - platform: homeassistant
event: start event: start
- platform: state - platform: state
entity_id: entity_id:
- input_boolean.am - input_boolean.am
- input_boolean.pm - input_boolean.pm
- input_number.slider_hours - input_number.slider_hours
@ -74,28 +73,28 @@ automation:
entity_id: input_label.alarm_current_time entity_id: input_label.alarm_current_time
data_template: data_template:
value: > value: >
{%- if states.input_number.slider_hours.state | int < 10 -%} {%- if states('input_number.slider_hours') | int < 10 -%}
{%- if states.input_number.slider_hours.state|int == 0 %} {%- if states('input_number.slider_hours') |int == 0 %}
12 12
{%- else -%} {%- else -%}
{{- 0 ~ states.input_number.slider_hours.state|int -}} {{- 0 ~ states('input_number.slider_hours') |int -}}
{%- endif -%} {%- endif -%}
{%- else -%} {%- else -%}
{{- states.input_number.slider_hours.state |int -}} {{- states('input_number.slider_hours') |int -}}
{% endif -%}: {% endif -%}:
{%- if states.input_number.slider_minutes.state | int < 10 -%} {%- if states('input_number.slider_minutes') | int < 10 -%}
{{- 0 ~ states.input_number.slider_minutes.state |int -}} {{- 0 ~ states('input_number.slider_minutes') |int -}}
{%- else -%} {%- else -%}
{{- states.input_number.slider_minutes.state|int -}} {{- states('input_number.slider_minutes') |int -}}
{%- endif -%}{%- if states.input_boolean.am.state == "on" %} AM{%- else %} PM{%- endif -%} {%- endif -%}{%- if states('input_boolean.am') == "on" %} AM{%- else %} PM{%- endif -%}
- alias: AM Change OFF - alias: AM Change OFF
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.am entity_id: input_boolean.am
from: 'on' from: "on"
to: 'off' to: "off"
action: action:
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.pm entity_id: input_boolean.pm
@ -107,8 +106,8 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.am entity_id: input_boolean.am
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.pm entity_id: input_boolean.pm
@ -120,8 +119,8 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.pm entity_id: input_boolean.pm
from: 'on' from: "on"
to: 'off' to: "off"
action: action:
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.am entity_id: input_boolean.am
@ -133,8 +132,8 @@ automation:
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.pm entity_id: input_boolean.pm
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.am entity_id: input_boolean.am
@ -145,7 +144,7 @@ automation:
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/1' minutes: "/1"
seconds: 00 seconds: 00
condition: condition:
- condition: template - condition: template
@ -169,4 +168,4 @@ automation:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: > message: >
"Hello! This is an alarm clock reminder! Have a great day!" "Hello! This is an alarm clock reminder! Have a great day!"

View File

@ -1,78 +1,77 @@
# ############################################################################### # ###############################################################################
# # @author : Mahasri Kalavala # # @author : Mahasri Kalavala
# # @date : 11/27/2017 # # @date : 11/27/2017
# # @package : APC UPS Backup # # @package : APC UPS Backup
# # @description : UPS Backup # # @description : UPS Backup
# ############################################################################### # ###############################################################################
apcupsd: apcupsd:
host: 127.0.0.1 host: 127.0.0.1
port: 3551 port: 3551
sensor: sensor:
- platform: apcupsd - platform: apcupsd
# name: Network Backup UPS # name: Network Backup UPS
resources: resources:
- bcharge - bcharge
- linev - linev
- loadpct - loadpct
- nominv - nominv
- numxfers - numxfers
- status - status
- timeleft - timeleft
- tonbatt - tonbatt
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
- alias: UPS State Change
initial_state: true
trigger:
- platform: state
entity_id: sensor.ups_status
action:
- service: script.notify_me
data_template:
message: "UPS Status changed from {{ trigger.from_state.state }}
to {{ trigger.to_state.state }}
at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p, %B %d,%Y', true) }}."
- alias: UPS State Change # # Power Failure Notification
initial_state: true # ###############################################################################
trigger: - alias: Power Failure
- platform: state initial_state: true
entity_id: sensor.ups_status trigger:
action: - platform: state
- service: script.notify_me entity_id: sensor.ups_status
data_template: from: "ONLINE"
message: "UPS Status changed from {{ trigger.from_state.state }} to: "ONBATT"
to {{ trigger.to_state.state }} action:
at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p, %B %d,%Y', true) }}." - service: script.notify_me
data_template:
message:
Power failure at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %B-%d,%Y', true) }}.
Battery can last for {{ states('sensor.ups_time_left') }} minutes.
# # Power Failure Notification # # Power Restored Notification
# ############################################################################### # ###############################################################################
- alias: Power Failure - alias: Power Restored
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: sensor.ups_status entity_id: sensor.ups_status
from: 'ONLINE' from: "ONBATT"
to: 'ONBATT' to: "ONLINE"
action: action:
- service: script.notify_me - service: script.notify_me
data_template: data_template:
message: message:
Power failure at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %B-%d,%Y', true) }}. Power restored at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %B-%d,%Y', true) }}.
Battery can last for {{ states.sensor.ups_time_left.state }} minutes. Ran on battery for {{ "%0.2f" % (states('sensor.ups_time_on_battery') | int / 60 |float) }} minutes.
# # Power Restored Notification
# ###############################################################################
- alias: Power Restored
initial_state: true
trigger:
- platform: state
entity_id: sensor.ups_status
from: 'ONBATT'
to: 'ONLINE'
action:
- service: script.notify_me
data_template:
message:
Power restored at {{ as_timestamp(now()) | timestamp_custom('%I:%M:%S %p %B-%d,%Y', true) }}.
Ran on battery for {{ "%0.2f" % (states.sensor.ups_time_on_battery.state | int / 60 |float) }} minutes.

View File

@ -9,34 +9,33 @@ homeassistant:
timer: timer:
timer_bathroom_aroma: timer_bathroom_aroma:
duration: '00:30:00' duration: "00:30:00"
timer_downstairs_aroma: timer_downstairs_aroma:
duration: '01:00:00' duration: "01:00:00"
timer_upstairs_aroma: timer_upstairs_aroma:
duration: '01:00:00' duration: "01:00:00"
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
#
# # Automations to start timer when they are switched ON
# Automations to start timer when they are switched ON #
#
- alias: Bathroom Aroma Timer Start - alias: Bathroom Aroma Timer Start
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_bathroom_aroma entity_id: timer.timer_bathroom_aroma
@ -46,8 +45,8 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
from: 'on' from: "on"
to: 'off' to: "off"
action: action:
- service: timer.finish - service: timer.finish
entity_id: timer.timer_bathroom_aroma entity_id: timer.timer_bathroom_aroma
@ -57,8 +56,8 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_downstairs_aroma entity_id: timer.timer_downstairs_aroma
@ -68,8 +67,8 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
from: 'on' from: "on"
to: 'off' to: "off"
action: action:
- service: timer.finish - service: timer.finish
entity_id: timer.timer_downstairs_aroma entity_id: timer.timer_downstairs_aroma
@ -79,8 +78,8 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: switch.upstairs_fragrance entity_id: switch.upstairs_fragrance
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_upstairs_aroma entity_id: timer.timer_upstairs_aroma
@ -90,22 +89,22 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: switch.upstairs_fragrance entity_id: switch.upstairs_fragrance
from: 'on' from: "on"
to: 'off' to: "off"
action: action:
- service: timer.finish - service: timer.finish
entity_id: timer.timer_upstairs_aroma entity_id: timer.timer_upstairs_aroma
# #
# Timer Elapsed Events # Timer Elapsed Events
# #
- alias: Bathroom Aroma Timer Elapsed - alias: Bathroom Aroma Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: event - platform: event
event_type: timer.finished event_type: timer.finished
event_data: event_data:
entity_id: timer.timer_bathroom_aroma entity_id: timer.timer_bathroom_aroma
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
@ -115,8 +114,8 @@ automation:
trigger: trigger:
- platform: event - platform: event
event_type: timer.finished event_type: timer.finished
event_data: event_data:
entity_id: timer.timer_downstairs_aroma entity_id: timer.timer_downstairs_aroma
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance
@ -126,21 +125,21 @@ automation:
trigger: trigger:
- platform: event - platform: event
event_type: timer.finished event_type: timer.finished
event_data: event_data:
entity_id: timer.timer_upstairs_aroma entity_id: timer.timer_upstairs_aroma
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.upstairs_fragrance entity_id: switch.upstairs_fragrance
# #
# Turn ON fragrance outlets automatically at specific times of the day # Turn ON fragrance outlets automatically at specific times of the day
# #
- alias: Turn On Upstairs Aroma - alias: Turn On Upstairs Aroma
trigger: trigger:
- platform: time - platform: time
at: '08:00:00' at: "08:00:00"
- platform: time - platform: time
at: '20:00:00' at: "20:00:00"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.upstairs_fragrance entity_id: switch.upstairs_fragrance
@ -148,7 +147,7 @@ automation:
- alias: Turn On Downstairs Aroma - alias: Turn On Downstairs Aroma
trigger: trigger:
- platform: time - platform: time
at: '17:00:00' at: "17:00:00"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.downstairs_fragrance entity_id: switch.downstairs_fragrance

View File

@ -7,7 +7,6 @@ homeassistant:
friendly_name: All Indoor Lights & Switches OFF friendly_name: All Indoor Lights & Switches OFF
script: script:
home_mode_away: home_mode_away:
sequence: sequence:
- service: script.all_indoor_lights_off - service: script.all_indoor_lights_off
@ -16,7 +15,7 @@ script:
- service: climate.set_away_mode - service: climate.set_away_mode
data: data:
entity_id: climate.dining_room entity_id: climate.dining_room
away_mode: 'true' away_mode: "true"
- service: alarm_control_panel.alarm_arm_away - service: alarm_control_panel.alarm_arm_away
data: data:
entity_id: alarm_control_panel.simplisafe entity_id: alarm_control_panel.simplisafe
@ -35,7 +34,7 @@ script:
- service: notify.notify_smtp - service: notify.notify_smtp
data_template: data_template:
title: 'Indoor Pictures {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}' title: 'Indoor Pictures {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
message: 'No one seem to be home at the moment... Please see the images and make sure everything is okay.' message: "No one seem to be home at the moment... Please see the images and make sure everything is okay."
data: data:
images: images:
- "/home/homeassistant/.homeassistant/www/downloads/camera/kitchen/kitchen_away.jpg" - "/home/homeassistant/.homeassistant/www/downloads/camera/kitchen/kitchen_away.jpg"
@ -64,4 +63,4 @@ script:
state.entity_id != 'switch.rf_switch_five' and state.entity_id != 'switch.rf_switch_five' and
not '_siren_' in state.entity_id -%} not '_siren_' in state.entity_id -%}
{{- "," if not loop.first-}}{{ state.entity_id }}{{-endif-}} {{- "," if not loop.first-}}{{ state.entity_id }}{{-endif-}}
{%- endfor -%} {%- endfor -%}

View File

@ -187,7 +187,7 @@ sensor:
{% if states('sensor.suresh_iphone_battery_ot') != "unknown" %} {% if states('sensor.suresh_iphone_battery_ot') != "unknown" %}
{% set battery_level = states('sensor.suresh_iphone_battery_ot')|int (-1)%} {% set battery_level = states('sensor.suresh_iphone_battery_ot')|int (-1)%}
{% set battery_round = (battery_level|int / 10)|int * 10 %} {% set battery_round = (battery_level|int / 10)|int * 10 %}
{% if states.sensor.suresh_iphone_battery_state.state | lower == "charging" %} {% if states('sensor.suresh_iphone_battery_state') | lower == "charging" %}
{% if battery_level == -1 %} {% if battery_level == -1 %}
mdi:battery-unknown mdi:battery-unknown
{% else %} {% else %}
@ -210,7 +210,7 @@ sensor:
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
@ -225,7 +225,7 @@ sensor:
{% if states('sensor.mallika_iphone_battery_ot') != "unknown" %} {% if states('sensor.mallika_iphone_battery_ot') != "unknown" %}
{% set battery_level = states('sensor.mallika_iphone_battery_ot')|int (-1)%} {% set battery_level = states('sensor.mallika_iphone_battery_ot')|int (-1)%}
{% set battery_round = (battery_level|int / 10)|int * 10 %} {% set battery_round = (battery_level|int / 10)|int * 10 %}
{% if states.sensor.mallika_iphone_battery_state.state | lower == "charging" %} {% if states('sensor.mallika_iphone_battery_state') | lower == "charging" %}
{% if battery_level == -1 %} {% if battery_level == -1 %}
mdi:battery-unknown mdi:battery-unknown
{% else %} {% else %}
@ -248,7 +248,7 @@ sensor:
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
@ -263,7 +263,7 @@ sensor:
{% if states('sensor.srinika_iphone_battery_ot') != "unknown" %} {% if states('sensor.srinika_iphone_battery_ot') != "unknown" %}
{% set battery_level = states('sensor.srinika_iphone_battery_ot')|int (-1)%} {% set battery_level = states('sensor.srinika_iphone_battery_ot')|int (-1)%}
{% set battery_round = (battery_level|int / 10)|int * 10 %} {% set battery_round = (battery_level|int / 10)|int * 10 %}
{% if states.sensor.srinika_iphone_battery_state.state | lower == "charging" %} {% if states('sensor.srinika_iphone_battery_state') | lower == "charging" %}
{% if battery_level == -1 %} {% if battery_level == -1 %}
mdi:battery-unknown mdi:battery-unknown
{% else %} {% else %}
@ -286,7 +286,7 @@ sensor:
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
@ -301,7 +301,7 @@ sensor:
{% if states('sensor.hasika_iphone_battery_ot') != "unknown" %} {% if states('sensor.hasika_iphone_battery_ot') != "unknown" %}
{% set battery_level = states('sensor.hasika_iphone_battery_ot')|int (-1)%} {% set battery_level = states('sensor.hasika_iphone_battery_ot')|int (-1)%}
{% set battery_round = (battery_level|int / 10)|int * 10 %} {% set battery_round = (battery_level|int / 10)|int * 10 %}
{% if states.sensor.hasika_iphone_battery_state.state | lower == "charging" %} {% if states('sensor.hasika_iphone_battery_state') | lower == "charging" %}
{% if battery_level == -1 %} {% if battery_level == -1 %}
mdi:battery-unknown mdi:battery-unknown
{% else %} {% else %}
@ -324,7 +324,7 @@ sensor:
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% else %} {% else %}
mdi:battery-alert mdi:battery-alert
@ -364,9 +364,9 @@ automation:
true true
{%- endif -%} {%- endif -%}
- condition: template - condition: template
value_template: "{{ states.input_boolean.home_mode_away.state == 'off' }}" value_template: "{{ states('input_boolean.home_mode_away') == 'off' }}"
- condition: template - condition: template
value_template: "{{ states.alarm_control_panel.simplisafe.state | lower != 'armed_away' }}" value_template: "{{ states('alarm_control_panel.simplisafe') | lower != 'armed_away' }}"
action: action:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
@ -395,7 +395,7 @@ automation:
below: 25 below: 25
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_boolean.battery_notifications.state == "on" }}' value_template: "{{ states('input_boolean.battery_notifications') == 'on' }}"
action: action:
- service: script.notify_me - service: script.notify_me
data_template: data_template:
@ -423,7 +423,7 @@ automation:
{%- for x in states if x.attributes and x.attributes.battery_level and x.attributes.battery_level |int <= 24 %} {%- for x in states if x.attributes and x.attributes.battery_level and x.attributes.battery_level |int <= 24 %}
{% set ns.lowBattery = ns.lowBattery ~ ',' ~ x.name %} {% set ns.lowBattery = ns.lowBattery ~ ',' ~ x.name %}
{%- endfor %} {%- endfor %}
{{ ns.lowBattery -}} {{ ns.lowBattery -}}
{{- ' battery is ' if ns.lowBattery.split(',')|count == 1 else ' batteries are ' -}} less than 25 percent. {{- ' battery is ' if ns.lowBattery.split(',')|count == 1 else ' batteries are ' -}} less than 25 percent.
# ############################################################################### # ###############################################################################

View File

@ -1,6 +1,5 @@
homeassistant: homeassistant:
sensor: sensor:
- platform: mqtt - platform: mqtt
name: "Master Bed Sensor" name: "Master Bed Sensor"

View File

@ -18,7 +18,7 @@
# Update: I added mqtt code to refresh the sensor values dynamically. # Update: I added mqtt code to refresh the sensor values dynamically.
# The sensor values update on hourly basis. # The sensor values update on hourly basis.
# #
# PLEASE NOTE THAT THIS PACKAGE USES "DATE" SENSOR. IF YOU SEE THE BIRTHDAY # PLEASE NOTE THAT THIS PACKAGE USES "DATE" SENSOR. IF YOU SEE THE BIRTHDAY
# VALUES AS "NOT SET", YOU NEED TO ADD THE FOLLOWING TO YOUR CONFIGURATION FILE # VALUES AS "NOT SET", YOU NEED TO ADD THE FOLLOWING TO YOUR CONFIGURATION FILE
# #
# sensor: # sensor:
@ -27,7 +27,7 @@
# - 'time' # - 'time'
# - 'date' # - 'date'
# - 'date_time' # - 'date_time'
# - 'time_date' # - 'time_date'
# #
############################################################################### ###############################################################################
homeassistant: homeassistant:
@ -51,32 +51,31 @@ input_label:
name: Mallika's Birthday name: Mallika's Birthday
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
###############################################################################
############################################################################### # Build the excitement
# Build the excitement ###############################################################################
###############################################################################
- alias: Birthday Countdown 30 Days - alias: Birthday Countdown 30 Days
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: entity_id:
- input_label.srinika_birthday_days2go - input_label.srinika_birthday_days2go
- input_label.hasika_birthday_days2go - input_label.hasika_birthday_days2go
- input_label.mallika_birthday_days2go - input_label.mallika_birthday_days2go
condition: condition:
- condition: state - condition: state
entity_id: group.all_devices entity_id: group.all_devices
state: 'home' state: "home"
- condition: template - condition: template
value_template: "{{ trigger.to_state.state | int > 0 and trigger.to_state.state | int < 30 }}" value_template: "{{ trigger.to_state.state | int > 0 and trigger.to_state.state | int < 30 }}"
action: action:
@ -84,21 +83,21 @@ automation:
data_template: data_template:
message: "{{ trigger.entity_id.split('.')[1].split('_')[0] | title }}'s Birthday is only {{ trigger.to_state.state }} days to go!" message: "{{ trigger.entity_id.split('.')[1].split('_')[0] | title }}'s Birthday is only {{ trigger.to_state.state }} days to go!"
############################################################################### ###############################################################################
# Celebrate Birthday!!! # Celebrate Birthday!!!
############################################################################### ###############################################################################
- alias: Today is the Birthday - alias: Today is the Birthday
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: entity_id:
- input_label.srinika_birthday_days2go - input_label.srinika_birthday_days2go
- input_label.hasika_birthday_days2go - input_label.hasika_birthday_days2go
- input_label.mallika_birthday_days2go - input_label.mallika_birthday_days2go
condition: condition:
- condition: state - condition: state
entity_id: group.all_devices entity_id: group.all_devices
state: 'home' state: "home"
- condition: template - condition: template
value_template: "{{ trigger.to_state.state | int == 0 }}" value_template: "{{ trigger.to_state.state | int == 0 }}"
action: action:
@ -106,14 +105,14 @@ automation:
data_template: data_template:
message: "Hurray! Today is {{ trigger.entity_id.split('.')[1].split('_')[0] | title }}'s Birthday!" message: "Hurray! Today is {{ trigger.entity_id.split('.')[1].split('_')[0] | title }}'s Birthday!"
############################################################################### ###############################################################################
# Announce Happy Birthday message every hour starting 7 am until 9 PM # Announce Happy Birthday message every hour starting 7 am until 9 PM
############################################################################### ###############################################################################
- alias: Random Birthday Wishes - alias: Random Birthday Wishes
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
hours: '/1' hours: "/1"
minutes: 3 minutes: 3
seconds: 00 seconds: 00
condition: condition:
@ -121,18 +120,18 @@ automation:
conditions: conditions:
- condition: state - condition: state
entity_id: group.all_devices entity_id: group.all_devices
state: 'home' state: "home"
- condition: time - condition: time
after: '07:00:00' after: "07:00:00"
before: '21:00:00' before: "21:00:00"
- condition: or - condition: or
conditions: conditions:
- condition: template - condition: template
value_template: "{{ states.input_label.srinika_birthday_days2go.state | int == 0 }}" value_template: "{{ states('input_label.srinika_birthday_days2go') | int == 0 }}"
- condition: template - condition: template
value_template: "{{ states.input_label.hasika_birthday_days2go.state | int == 0 }}" value_template: "{{ states('input_label.hasika_birthday_days2go') | int == 0 }}"
- condition: template - condition: template
value_template: "{{ states.input_label.mallika_birthday_days2go.state | int == 0 }}" value_template: "{{ states('input_label.mallika_birthday_days2go') | int == 0 }}"
action: action:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
@ -142,34 +141,34 @@ automation:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: "Alexa, Sing Happy Birthday Song." message: "Alexa, Sing Happy Birthday Song."
greeting: 'no' greeting: "no"
- alias: Update Birthdays - alias: Update Birthdays
initial_state: true initial_state: true
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
- platform: homeassistant - platform: homeassistant
event: start event: start
condition: condition:
- condition: template - condition: template
value_template: "{{ states.input_label.srinika_birthday.state.split('-') | length > 0 }}" value_template: "{{ states('input_label.srinika_birthday').split('-') | length > 0 }}"
- condition: template - condition: template
value_template: "{{ states.input_label.hasika_birthday.state.split('-') | length > 0 }}" value_template: "{{ states('input_label.hasika_birthday').split('-') | length > 0 }}"
- condition: template - condition: template
value_template: "{{ states.input_label.mallika_birthday.state.split('-') | length > 0 }}" value_template: "{{ states('input_label.mallika_birthday').split('-') | length > 0 }}"
action: action:
- service: input_label.set_value - service: input_label.set_value
data_template: data_template:
entity_id: input_label.srinika_birthday_days2go entity_id: input_label.srinika_birthday_days2go
value: > value: >
{% set year = states.sensor.date.state.split('-')[0] %} {% set year = states('sensor.date').split('-')[0] %}
{% set month = states.sensor.date.state.split('-')[1] %} {% set month = states('sensor.date').split('-')[1] %}
{% set date = states.sensor.date.state.split('-')[2] %} {% set date = states('sensor.date').split('-')[2] %}
{% if states('input_label.srinika_birthday') != "unknown" %} {% if states('input_label.srinika_birthday') != "unknown" %}
{%- set bDayMonth = states.input_label.srinika_birthday.state.split('-')[0] -%} {%- set bDayMonth = states('input_label.srinika_birthday').split('-')[0] -%}
{%- set bDayDate = states.input_label.srinika_birthday.state.split('-')[1] -%} {%- set bDayDate = states('input_label.srinika_birthday').split('-')[1] -%}
{%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%} {%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%}
{%- if numOfDays < 0 -%} {%- if numOfDays < 0 -%}
{{ numOfDays + 365 }} {{ numOfDays + 365 }}
@ -183,12 +182,12 @@ automation:
data_template: data_template:
entity_id: input_label.hasika_birthday_days2go entity_id: input_label.hasika_birthday_days2go
value: > value: >
{% set year = states.sensor.date.state.split('-')[0] %} {% set year = states('sensor.date').split('-')[0] %}
{% set month = states.sensor.date.state.split('-')[1] %} {% set month = states('sensor.date').split('-')[1] %}
{% set date = states.sensor.date.state.split('-')[2] %} {% set date = states('sensor.date').split('-')[2] %}
{% if states('input_label.hasika_birthday') != "unknown" %} {% if states('input_label.hasika_birthday') != "unknown" %}
{%- set bDayMonth = states.input_label.hasika_birthday.state.split('-')[0] -%} {%- set bDayMonth = states('input_label.hasika_birthday').split('-')[0] -%}
{%- set bDayDate = states.input_label.hasika_birthday.state.split('-')[1] -%} {%- set bDayDate = states('input_label.hasika_birthday').split('-')[1] -%}
{%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%} {%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%}
{%- if numOfDays < 0 -%} {%- if numOfDays < 0 -%}
{{ numOfDays + 365 }} {{ numOfDays + 365 }}
@ -202,12 +201,12 @@ automation:
data_template: data_template:
entity_id: input_label.mallika_birthday_days2go entity_id: input_label.mallika_birthday_days2go
value: > value: >
{% set year = states.sensor.date.state.split('-')[0] %} {% set year = states('sensor.date').split('-')[0] %}
{% set month = states.sensor.date.state.split('-')[1] %} {% set month = states('sensor.date').split('-')[1] %}
{% set date = states.sensor.date.state.split('-')[2] %} {% set date = states('sensor.date').split('-')[2] %}
{% if states('input_label.mallika_birthday') != "unknown" %} {% if states('input_label.mallika_birthday') != "unknown" %}
{%- set bDayMonth = states.input_label.mallika_birthday.state.split('-')[0] -%} {%- set bDayMonth = states('input_label.mallika_birthday').split('-')[0] -%}
{%- set bDayDate = states.input_label.mallika_birthday.state.split('-')[1] -%} {%- set bDayDate = states('input_label.mallika_birthday').split('-')[1] -%}
{%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%} {%- set numOfDays = ((as_timestamp(strptime(year ~ '-' ~ bDayMonth ~ '-' ~ bDayDate , '%Y-%m-%d')) | timestamp_custom('%j', true) | int ) - (as_timestamp(strptime(year ~ '-' ~ month~ '-' ~ date , '%Y-%m-%d')) | timestamp_custom('%j', true) | int)) -%}
{%- if numOfDays < 0 -%} {%- if numOfDays < 0 -%}
{{ numOfDays + 365 }} {{ numOfDays + 365 }}
@ -216,4 +215,4 @@ automation:
{%- endif -%} {%- endif -%}
{% else %} {% else %}
- -
{% endif %} {% endif %}

View File

@ -363,8 +363,8 @@ automation:
- "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_latest.jpg" - "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_latest.jpg"
- condition: template - condition: template
value_template: > value_template: >
{% if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" or {% if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" or
states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" %} states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" %}
True True
{% else %} {% else %}
False False
@ -442,8 +442,8 @@ automation:
- "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_latest.jpg" - "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_latest.jpg"
- condition: template - condition: template
value_template: > value_template: >
{% if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" or {% if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" or
states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" %} states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" %}
True True
{% else %} {% else %}
False False
@ -475,8 +475,8 @@ automation:
entity_id: image_processing.tensorflow_garage_camera entity_id: image_processing.tensorflow_garage_camera
- condition: template - condition: template
value_template: > value_template: >
{% if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" or {% if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" or
states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" %} states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" %}
True True
{% else %} {% else %}
False False
@ -643,7 +643,7 @@ automation:
- condition: template - condition: template
value_template: "{{ states('alarm_control_panel.simplisafe') == 'armed_home' or states('alarm_control_panel.simplisafe') == 'armed_away' }}" value_template: "{{ states('alarm_control_panel.simplisafe') == 'armed_home' or states('alarm_control_panel.simplisafe') == 'armed_away' }}"
action: action:
- delay: "{{ '00:00:08' if states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == 'on' else '0:0:0' }}" - delay: "{{ '00:00:08' if states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == 'on' else '0:0:0' }}"
- service: camera.snapshot - service: camera.snapshot
data_template: data_template:
entity_id: "camera.frontdoor_camera" entity_id: "camera.frontdoor_camera"
@ -681,7 +681,7 @@ automation:
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_') (states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
- condition: template - condition: template
value_template: "{{ states.device_tracker.life360_suresh.state == 'home' }}" value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
- service: notify.ios_devices - service: notify.ios_devices
data_template: data_template:
message: "Check Front Door camera!" message: "Check Front Door camera!"
@ -751,7 +751,7 @@ automation:
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_') (states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
- condition: template - condition: template
value_template: "{{ states.device_tracker.life360_suresh.state == 'home' }}" value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
- service: notify.ios_devices - service: notify.ios_devices
data_template: data_template:
message: "Check Driveway camera!" message: "Check Driveway camera!"
@ -822,7 +822,7 @@ automation:
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_') (states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
- condition: template - condition: template
value_template: "{{ states.device_tracker.life360_suresh.state == 'home' }}" value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
- service: notify.ios_devices - service: notify.ios_devices
data_template: data_template:
message: "Check Patio camera!" message: "Check Patio camera!"
@ -866,30 +866,30 @@ automation:
- service: script.frontdoor_camera_text_overlay - service: script.frontdoor_camera_text_overlay
data_template: data_template:
text: > text: >
{{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or {{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or
states('alarm_control_panel.simplisafe') == 'armed_away' -}} states('alarm_control_panel.simplisafe') == 'armed_away' -}}
{{- states('sensor.dark_sky_temperature')|int}} °F, Feels like {{- states('sensor.dark_sky_temperature')|int}} °F, Feels like
{{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}} {{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}}
- service: script.driveway_camera_text_overlay - service: script.driveway_camera_text_overlay
data_template: data_template:
text: > text: >
{{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or {{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or
states('alarm_control_panel.simplisafe') == 'armed_away' -}} states('alarm_control_panel.simplisafe') == 'armed_away' -}}
{{- states('sensor.dark_sky_temperature')|int}} °F, Feels like {{- states('sensor.dark_sky_temperature')|int}} °F, Feels like
{{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}} {{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}}
- service: script.playarea_camera_text_overlay - service: script.playarea_camera_text_overlay
data_template: data_template:
text: > text: >
{{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or {{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or
states('alarm_control_panel.simplisafe') == 'armed_away' -}} states('alarm_control_panel.simplisafe') == 'armed_away' -}}
{{- states('sensor.dark_sky_temperature')|int}} °F, Feels like {{- states('sensor.dark_sky_temperature')|int}} °F, Feels like
{{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}} {{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}}
- service: script.patio_camera_text_overlay - service: script.patio_camera_text_overlay
data_template: data_template:
text: > text: >
{{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or {{ '* ' if states('alarm_control_panel.simplisafe') == 'armed_home' or
states('alarm_control_panel.simplisafe') == 'armed_away' -}} states('alarm_control_panel.simplisafe') == 'armed_away' -}}
{{- states('sensor.dark_sky_temperature')|int}} °F, Feels like {{- states('sensor.dark_sky_temperature')|int}} °F, Feels like
{{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}} {{- ' ' ~ states('sensor.dark_sky_apparent_temperature') |int -}}
############################################################################### ###############################################################################

View File

@ -1,409 +1,409 @@
# # #
# I COMMENTED OUT ALL THE TAGBOX RELATED STUFF AS I USE TENSORFLOW COMPONENT FOR IT. # # I COMMENTED OUT ALL THE TAGBOX RELATED STUFF AS I USE TENSORFLOW COMPONENT FOR IT.
# # #
homeassistant: # homeassistant:
customize: # customize:
image_processing.facebox_frontdoor_camera: # image_processing.facebox_frontdoor_camera:
friendly_name: People @ Front Door # friendly_name: People @ Front Door
image_processing.facebox_driveway_camera: # image_processing.facebox_driveway_camera:
friendly_name: People @ Driveway # friendly_name: People @ Driveway
image_processing.facebox_patio_camera: # image_processing.facebox_patio_camera:
friendly_name: People @ Patio # friendly_name: People @ Patio
image_processing.facebox_playarea_camera: # image_processing.facebox_playarea_camera:
friendly_name: People @ Playarea # friendly_name: People @ Playarea
image_processing.facebox_garage_camera: # image_processing.facebox_garage_camera:
friendly_name: People @ Garage # friendly_name: People @ Garage
image_processing.tagbox_frontdoor_camera: # image_processing.tagbox_frontdoor_camera:
friendly_name: Frontdoor Tag # friendly_name: Frontdoor Tag
image_processing.tagbox_driveway_camera: # image_processing.tagbox_driveway_camera:
friendly_name: Driveway Tag # friendly_name: Driveway Tag
image_processing.tagbox_playarea_camera: # image_processing.tagbox_playarea_camera:
friendly_name: Playarea Tag # friendly_name: Playarea Tag
image_processing.tagbox_patio_camera: # image_processing.tagbox_patio_camera:
friendly_name: Patio Tag # friendly_name: Patio Tag
image_processing.tagbox_garage_camera: # image_processing.tagbox_garage_camera:
friendly_name: Garage Tag # friendly_name: Garage Tag
sensor.frontdoor_camera_objects: # sensor.frontdoor_camera_objects:
friendly_name: Things At Front Door # friendly_name: Things At Front Door
sensor.driveway_camera_objects: # sensor.driveway_camera_objects:
friendly_name: Things At Driveway # friendly_name: Things At Driveway
sensor.playarea_camera_objects: # sensor.playarea_camera_objects:
friendly_name: Things At Playarea # friendly_name: Things At Playarea
sensor.patio_camera_objects: # sensor.patio_camera_objects:
friendly_name: Things At Patio # friendly_name: Things At Patio
sensor.garage_camera_objects: # sensor.garage_camera_objects:
friendly_name: Things in Garage # friendly_name: Things in Garage
sensor.frontdoor_camera_people: # sensor.frontdoor_camera_people:
friendly_name: People At Front Door # friendly_name: People At Front Door
sensor.driveway_camera_people: # sensor.driveway_camera_people:
friendly_name: People Driveway # friendly_name: People Driveway
sensor.playarea_camera_people: # sensor.playarea_camera_people:
friendly_name: People Playarea # friendly_name: People Playarea
sensor.patio_camera_people: # sensor.patio_camera_people:
friendly_name: People Patio # friendly_name: People Patio
sensor.garage_camera_people: # sensor.garage_camera_people:
friendly_name: Garage Patio # friendly_name: Garage Patio
image_processing: # image_processing:
- platform: facebox # - platform: facebox
ip_address: !secret ha_ip_address # ip_address: !secret ha_ip_address
scan_interval: 360 # scan_interval: 360
port: 8080 # port: 8080
source: # source:
- entity_id: camera.frontdoor_camera # - entity_id: camera.frontdoor_camera
- entity_id: camera.driveway_camera # - entity_id: camera.driveway_camera
- entity_id: camera.patio_camera # - entity_id: camera.patio_camera
- entity_id: camera.playarea_camera # - entity_id: camera.playarea_camera
- entity_id: camera.garage_camera # - entity_id: camera.garage_camera
# - platform: tagbox # # - platform: tagbox
# scan_interval: 10000 # Default 10 # # scan_interval: 10000 # Default 10
# ip_address: !secret ha_ip_address # # ip_address: !secret ha_ip_address
# port: 8081 # # port: 8081
# source: # # source:
# - entity_id: camera.frontdoor_camera # # - entity_id: camera.frontdoor_camera
# - entity_id: camera.driveway_camera # # - entity_id: camera.driveway_camera
# - entity_id: camera.patio_camera # # - entity_id: camera.patio_camera
# - entity_id: camera.playarea_camera # # - entity_id: camera.playarea_camera
# - entity_id: camera.garage_camera # # - entity_id: camera.garage_camera
sensor: # sensor:
## # ##
#Facebox related sensors # #Facebox related sensors
## # ##
- platform: template # - platform: template
sensors: # sensors:
frontdoor_camera_people: # frontdoor_camera_people:
value_template: >- # value_template: >-
{% set faces = state_attr('image_processing.facebox_frontdoor_camera', 'matched_faces') %} # {% set faces = state_attr('image_processing.facebox_frontdoor_camera', 'matched_faces') %}
{% if None != faces %} # {% if None != faces %}
{% if faces | list | count == 0 %} # {% if faces | list | count == 0 %}
Clear # Clear
{% else %} # {% else %}
{%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %} # {%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %}
{% endif %} # {% endif %}
{% endif %} # {% endif %}
icon_template: mdi:cctv # icon_template: mdi:cctv
- platform: template # - platform: template
sensors: # sensors:
driveway_camera_people: # driveway_camera_people:
value_template: >- # value_template: >-
{% set faces = state_attr('image_processing.facebox_driveway_camera', 'matched_faces') %} # {% set faces = state_attr('image_processing.facebox_driveway_camera', 'matched_faces') %}
{% if None != faces %} # {% if None != faces %}
{% if faces | list | count == 0 %} # {% if faces | list | count == 0 %}
Clear # Clear
{% else %} # {% else %}
{%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %} # {%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %}
{% endif %} # {% endif %}
{% endif %} # {% endif %}
icon_template: mdi:cctv # icon_template: mdi:cctv
- platform: template # - platform: template
sensors: # sensors:
patio_camera_people: # patio_camera_people:
value_template: >- # value_template: >-
{% set faces = state_attr('image_processing.facebox_patio_camera', 'matched_faces') %} # {% set faces = state_attr('image_processing.facebox_patio_camera', 'matched_faces') %}
{% if None != faces %} # {% if None != faces %}
{% if faces | list | count == 0 %} # {% if faces | list | count == 0 %}
Clear # Clear
{% else %} # {% else %}
{%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %} # {%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %}
{% endif %} # {% endif %}
{% endif %} # {% endif %}
icon_template: mdi:cctv # icon_template: mdi:cctv
- platform: template # - platform: template
sensors: # sensors:
playarea_camera_people: # playarea_camera_people:
value_template: >- # value_template: >-
{% set faces = state_attr('image_processing.facebox_playarea_camera', 'matched_faces') %} # {% set faces = state_attr('image_processing.facebox_playarea_camera', 'matched_faces') %}
{% if None != faces %} # {% if None != faces %}
{% if faces | list | count == 0 %} # {% if faces | list | count == 0 %}
Clear # Clear
{% else %} # {% else %}
{%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %} # {%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %}
{% endif %} # {% endif %}
{% endif %} # {% endif %}
icon_template: mdi:cctv # icon_template: mdi:cctv
- platform: template # - platform: template
sensors: # sensors:
garage_camera_people: # garage_camera_people:
value_template: >- # value_template: >-
{% set faces = state_attr('image_processing.facebox_garage_camera', 'matched_faces') %} # {% set faces = state_attr('image_processing.facebox_garage_camera', 'matched_faces') %}
{% if None != faces %} # {% if None != faces %}
{% if faces | list | count == 0 %} # {% if faces | list | count == 0 %}
Clear # Clear
{% else %} # {% else %}
{%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %} # {%- for face in faces | list %}{%- if loop.first %}{% elif loop.last %} and {% else %}, {% endif -%}{{ face }}{%- endfor %}
{% endif %} # {% endif %}
{% endif %} # {% endif %}
icon_template: mdi:cctv # icon_template: mdi:cctv
# ########################################################################################################################### # # ###########################################################################################################################
# # Tagbox related Sensors; Please don't go crazy looking at the code. Here is the simple explanation. # # # Tagbox related Sensors; Please don't go crazy looking at the code. Here is the simple explanation.
# # The tagbox gives a bunch of tags for each picture, and I eliminate a bunch of unwanted tags by filtering them out # # # The tagbox gives a bunch of tags for each picture, and I eliminate a bunch of unwanted tags by filtering them out
# # The unwanted tags are something that I really don't care - like a Tree in the front yard. # # # The unwanted tags are something that I really don't care - like a Tree in the front yard.
# # Then I do custom mapping of the tags that fits my needs. That way I can display what I want rather than what I was given. # # # Then I do custom mapping of the tags that fits my needs. That way I can display what I want rather than what I was given.
# # I have no control over what tagbox gives, I want to pick and choose tags irrespective of confidence level. # # # I have no control over what tagbox gives, I want to pick and choose tags irrespective of confidence level.
# ########################################################################################################################### # # ###########################################################################################################################
# - platform: template # # - platform: template
# sensors: # # sensors:
# frontdoor_camera_objects: # # frontdoor_camera_objects:
# value_template: >- # # value_template: >-
# {% set attribs = state_attr('image_processing.tagbox_frontdoor_camera', 'tags') %} # # {% set attribs = state_attr('image_processing.tagbox_frontdoor_camera', 'tags') %}
# {%- if None != attribs -%} # # {%- if None != attribs -%}
# {%- set tag_map = {'Vehicle':'Car', 'Sedan':'Car', 'Luxury vehicle':'Car', 'Driving':'Car', # # {%- set tag_map = {'Vehicle':'Car', 'Sedan':'Car', 'Luxury vehicle':'Car', 'Driving':'Car',
# 'Wheel':'Car', 'Automotive design':'Car', 'Automotive exterior':'Car', # # 'Wheel':'Car', 'Automotive design':'Car', 'Automotive exterior':'Car',
# 'Transport':'Car', 'Sports car':'Car', 'Land vehicle':'Car', 'Supercar':'Car', # # 'Transport':'Car', 'Sports car':'Car', 'Land vehicle':'Car', 'Supercar':'Car',
# 'Waterway':'Rain', 'Super car': 'Car' # # 'Waterway':'Rain', 'Super car': 'Car'
# } -%} # # } -%}
# {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Car', 'Vehicle', 'Suburb', 'Street', # # {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Car', 'Vehicle', 'Suburb', 'Street',
# 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Super car', 'Snow', 'Winter', 'Supercar', # # 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Super car', 'Snow', 'Winter', 'Supercar',
# 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sport venue', 'Soil', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration', # # 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sport venue', 'Soil', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration',
# 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Drawing', 'Sketch', 'Stadium', # # 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Drawing', 'Sketch', 'Stadium',
# 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Parking lot', 'Parking', # # 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Parking lot', 'Parking',
# 'Black', 'White', 'Darkness', 'Light', 'Text'] -%} # # 'Black', 'White', 'Darkness', 'Light', 'Text'] -%}
# {%- macro filter_unwanted(tags) -%} # # {%- macro filter_unwanted(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%} # # {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%}
# {%- macro mapped_items(tags) -%} # # {%- macro mapped_items(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}} # # {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}
# {%- endfor -%} # # {%- endfor -%}
# {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%} # # {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%}
# {%- endmacro -%} # # {%- endmacro -%}
# {% macro get_final_output(output_list) %} # # {% macro get_final_output(output_list) %}
# {%- for x in output_list if x != "" -%} # # {%- for x in output_list if x != "" -%}
# {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}} # # {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}}
# {%- endfor -%} # # {%- endfor -%}
# {% endmacro %} # # {% endmacro %}
# {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%} # # {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%}
# {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%} # # {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%}
# {{- "Clear" if output |trim == "" else output -}} # # {{- "Clear" if output |trim == "" else output -}}
# {% endif %} # # {% endif %}
# icon_template: mdi:cctv # # icon_template: mdi:cctv
# - platform: template # # - platform: template
# sensors: # # sensors:
# driveway_camera_objects: # # driveway_camera_objects:
# value_template: >- # # value_template: >-
# {%- set attribs = state_attr('image_processing.tagbox_driveway_camera', 'tags') -%} # # {%- set attribs = state_attr('image_processing.tagbox_driveway_camera', 'tags') -%}
# {%- if None != attribs -%} # # {%- if None != attribs -%}
# {%- set tag_map = {'Vehicle':'Car', 'Sedan':'Car', 'Luxury vehicle':'Car', 'Driving':'Car', # # {%- set tag_map = {'Vehicle':'Car', 'Sedan':'Car', 'Luxury vehicle':'Car', 'Driving':'Car',
# 'Wheel':'Car', 'Automotive design':'Car', 'Automotive exterior':'Car', # # 'Wheel':'Car', 'Automotive design':'Car', 'Automotive exterior':'Car',
# 'Transport':'Car', 'Sports car':'Car', 'Land vehicle':'Car','Supercar':'Car', # # 'Transport':'Car', 'Sports car':'Car', 'Land vehicle':'Car','Supercar':'Car',
# 'Waterway':'Rain', 'Super car': 'Car' # # 'Waterway':'Rain', 'Super car': 'Car'
# } -%} # # } -%}
# {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Car', 'Vehicle', 'Suburb', 'Street', # # {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Car', 'Vehicle', 'Suburb', 'Street',
# 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Super car', 'Sport venue', 'Supercar', # # 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Super car', 'Sport venue', 'Supercar',
# 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Snow', 'Winter', 'Soil', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration', # # 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Snow', 'Winter', 'Soil', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration',
# 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Drawing', 'Sketch', 'Stadium', # # 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Drawing', 'Sketch', 'Stadium',
# 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', # # 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White',
# 'Black', 'White', 'Darkness', 'Light', 'Text'] -%} # # 'Black', 'White', 'Darkness', 'Light', 'Text'] -%}
# {%- macro filter_unwanted(tags) -%} # # {%- macro filter_unwanted(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%} # # {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%}
# {%- macro mapped_items(tags) -%} # # {%- macro mapped_items(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}} # # {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}
# {%- endfor -%} # # {%- endfor -%}
# {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%} # # {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%}
# {%- endmacro -%} # # {%- endmacro -%}
# {% macro get_final_output(output_list) %} # # {% macro get_final_output(output_list) %}
# {%- for x in output_list if x != "" -%} # # {%- for x in output_list if x != "" -%}
# {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}} # # {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}}
# {%- endfor -%} # # {%- endfor -%}
# {% endmacro %} # # {% endmacro %}
# {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%} # # {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%}
# {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%} # # {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%}
# {{- "Clear" if output |trim == "" else output -}} # # {{- "Clear" if output |trim == "" else output -}}
# {% endif %} # # {% endif %}
# icon_template: mdi:cctv # # icon_template: mdi:cctv
# - platform: template # # - platform: template
# sensors: # # sensors:
# patio_camera_objects: # # patio_camera_objects:
# value_template: >- # # value_template: >-
# {% set attribs = state_attr('image_processing.tagbox_patio_camera', 'tags') %} # # {% set attribs = state_attr('image_processing.tagbox_patio_camera', 'tags') %}
# {%- if None != attribs -%} # # {%- if None != attribs -%}
# {%- set tag_map = {'Waterway':'Rain'} -%} # # {%- set tag_map = {'Waterway':'Rain'} -%}
# {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Vehicle','Driving', 'Transport', 'Car', 'Vehicle', 'Suburb', 'Street', # # {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Vehicle','Driving', 'Transport', 'Car', 'Vehicle', 'Suburb', 'Street',
# 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Car', 'Wheel', 'Sports car','Super car', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration', # # 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Car', 'Wheel', 'Sports car','Super car', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration',
# 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Winter', 'Soil', 'Stadium', # # 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Winter', 'Soil', 'Stadium',
# 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch', # # 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch',
# 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%} # # 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%}
# {%- macro filter_unwanted(tags) -%} # # {%- macro filter_unwanted(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%} # # {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%}
# {%- macro mapped_items(tags) -%} # # {%- macro mapped_items(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}} # # {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}
# {%- endfor -%} # # {%- endfor -%}
# {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%} # # {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%}
# {%- endmacro -%} # # {%- endmacro -%}
# {% macro get_final_output(output_list) %} # # {% macro get_final_output(output_list) %}
# {%- for x in output_list if x != "" -%} # # {%- for x in output_list if x != "" -%}
# {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}} # # {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}}
# {%- endfor -%} # # {%- endfor -%}
# {% endmacro %} # # {% endmacro %}
# {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%} # # {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%}
# {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%} # # {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%}
# {{- "Clear" if output |trim == "" else output -}} # # {{- "Clear" if output |trim == "" else output -}}
# {% endif %} # # {% endif %}
# icon_template: mdi:cctv # # icon_template: mdi:cctv
# - platform: template # # - platform: template
# sensors: # # sensors:
# playarea_camera_objects: # # playarea_camera_objects:
# value_template: >- # # value_template: >-
# {% set attribs = state_attr('image_processing.tagbox_playarea_camera', 'tags') %} # # {% set attribs = state_attr('image_processing.tagbox_playarea_camera', 'tags') %}
# {%- if None != attribs -%} # # {%- if None != attribs -%}
# {%- set tag_map = {'Waterway':'Rain'} -%} # # {%- set tag_map = {'Waterway':'Rain'} -%}
# {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Vehicle','Driving', 'Transport', 'Car', 'Vehicle', 'Suburb', 'Street', # # {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Vehicle','Driving', 'Transport', 'Car', 'Vehicle', 'Suburb', 'Street',
# 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Car', 'Wheel', 'Sports car', 'Super car', 'Winter', 'Soil', 'Stadium', # # 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Car', 'Wheel', 'Sports car', 'Super car', 'Winter', 'Soil', 'Stadium',
# 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration', # # 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration',
# 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch', # # 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch',
# 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%} # # 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%}
# {%- macro filter_unwanted(tags) -%} # # {%- macro filter_unwanted(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%} # # {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%}
# {%- macro mapped_items(tags) -%} # # {%- macro mapped_items(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}{%- endfor -%} # # {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}{%- endfor -%}
# {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%} # # {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%}
# {%- endmacro -%} # # {%- endmacro -%}
# {% macro get_final_output(output_list) %} # # {% macro get_final_output(output_list) %}
# {%- for x in output_list if x != "" -%} # # {%- for x in output_list if x != "" -%}
# {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}} # # {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}}
# {%- endfor -%} # # {%- endfor -%}
# {% endmacro %} # # {% endmacro %}
# {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%} # # {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%}
# {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%} # # {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%}
# {{- "Clear" if output |trim == "" else output -}} # # {{- "Clear" if output |trim == "" else output -}}
# {% endif %} # # {% endif %}
# icon_template: mdi:cctv # # icon_template: mdi:cctv
# - platform: template # # - platform: template
# sensors: # # sensors:
# garage_camera_objects: # # garage_camera_objects:
# value_template: >- # # value_template: >-
# {% set attribs = state_attr('image_processing.tagbox_garage_camera', 'tags') %} # # {% set attribs = state_attr('image_processing.tagbox_garage_camera', 'tags') %}
# {%- if None != attribs -%} # # {%- if None != attribs -%}
# {%- set tag_map = {'Waterway':'Rain'} -%} # # {%- set tag_map = {'Waterway':'Rain'} -%}
# {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Driving', 'Transport', 'Suburb', 'Street', # # {%- set unwanted_tags = ['Asphalt', 'Backyard', 'City', 'Estate', 'Flower', 'Garden', 'Grass', 'Tree', 'Driving', 'Transport', 'Suburb', 'Street',
# 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Winter', 'Soil', 'Stadium', # # 'Highway', 'Infrastructure', 'Lane', 'Lawn', 'Neighbourhood', 'Public space', 'Winter', 'Soil', 'Stadium',
# 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration', # # 'Residential area', 'Road', 'Road surface', 'Sidewalk', 'Tarmac', 'Race track', 'Sedan', 'Automotive design', 'Snow', 'Sport venue', 'Outdoor structure', 'Cartoon', 'Poster', 'Illustration',
# 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch', # # 'Transport', 'Walkway', 'Yard', 'Screenshot', 'Night', 'Lighting and Light', 'Luxury vehicle', 'Automotive exterior', 'Drawing', 'Sketch',
# 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%} # # 'Black-and-white', 'Monochrome', 'Monochrome photography', 'Black and White', 'Black', 'White', 'Light', 'Text'] -%}
# {%- macro filter_unwanted(tags) -%} # # {%- macro filter_unwanted(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%} # # {%- for item in tags if item not in unwanted_tags -%}{{- comma() -}}{{- item -}}{% endfor %}{%- endmacro -%}
# {%- macro mapped_items(tags) -%} # # {%- macro mapped_items(tags) -%}
# {%- set comma = joiner(',') -%} # # {%- set comma = joiner(',') -%}
# {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}{%- endfor -%} # # {%- for item in tags if item not in tag_map -%}{{- comma() -}}{{- item -}}{%- endfor -%}
# {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%} # # {%- for item in tags if item in tag_map -%}{{- comma() -}}{{- tag_map[item] -}}{%- endfor -%}
# {%- endmacro -%} # # {%- endmacro -%}
# {% macro get_final_output(output_list) %} # # {% macro get_final_output(output_list) %}
# {%- for x in output_list if x != "" -%} # # {%- for x in output_list if x != "" -%}
# {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}} # # {%- if loop.first %}{% elif loop.last %},{% else %},{% endif -%}{{- x -}}
# {%- endfor -%} # # {%- endfor -%}
# {% endmacro %} # # {% endmacro %}
# {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%} # # {%- set result = filter_unwanted(attribs| map(attribute='name')|list).split(',') -%}
# {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%} # # {%- set output = get_final_output(mapped_items(result).split(',') | unique|list) -%}
# {{- "Clear" if output |trim == "" else output -}} # # {{- "Clear" if output |trim == "" else output -}}
# {% endif %} # # {% endif %}
# icon_template: mdi:cctv # # icon_template: mdi:cctv
automation: # automation:
- alias: Alert Family Member Activity # - alias: Alert Family Member Activity
trigger: # trigger:
- platform: state # - platform: state
entity_id: # entity_id:
- sensor.frontdoor_camera_people # - sensor.frontdoor_camera_people
- sensor.driveway_camera_people # - sensor.driveway_camera_people
- sensor.patio_camera_people # - sensor.patio_camera_people
- sensor.playarea_camera_people # - sensor.playarea_camera_people
- sensor.garage_camera_people # - sensor.garage_camera_people
condition: # condition:
- condition: template # - condition: template
value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}" # value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}"
- condition: template # - condition: template
value_template: '{{ trigger.to_state.state | trim != "" and # value_template: '{{ trigger.to_state.state | trim != "" and
trigger.to_state.state | lower | trim != "unknown" and # trigger.to_state.state | lower | trim != "unknown" and
trigger.to_state.state | lower | trim != "clear" }}' # trigger.to_state.state | lower | trim != "clear" }}'
action: # action:
- service: script.notify_me # - service: script.notify_me
data_template: # data_template:
message: >- # message: >-
{% set camera_name = states['camera'][trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera'].attributes.friendly_name %} # {% set camera_name = states['camera'][trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera'].attributes.friendly_name %}
{{ trigger.to_state.state }} is at the {{ camera_name }}. # {{ trigger.to_state.state }} is at the {{ camera_name }}.
# - alias: Alert Object Activity # # - alias: Alert Object Activity
# trigger: # # trigger:
# - platform: state # # - platform: state
# entity_id: # # entity_id:
# - sensor.frontdoor_camera_objects # # - sensor.frontdoor_camera_objects
# - sensor.driveway_camera_objects # # - sensor.driveway_camera_objects
# - sensor.patio_camera_objects # # - sensor.patio_camera_objects
# - sensor.playarea_camera_objects # # - sensor.playarea_camera_objects
# - sensor.garage_camera_objects # # - sensor.garage_camera_objects
# condition: # # condition:
# - condition: template # # - condition: template
# value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}" # # value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}"
# - condition: template # # - condition: template
# value_template: '{{ trigger.to_state.state | trim != "" and # # value_template: '{{ trigger.to_state.state | trim != "" and
# trigger.to_state.state | lower | trim != "unknown" and # # trigger.to_state.state | lower | trim != "unknown" and
# trigger.to_state.state | lower | trim != "clear" }}' # # trigger.to_state.state | lower | trim != "clear" }}'
# action: # # action:
# - service: script.notify_me # # - service: script.notify_me
# data_template: # # data_template:
# message: >- # # message: >-
# {% set camera_name = states['camera'][trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera'].attributes.friendly_name %} # # {% set camera_name = states['camera'][trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera'].attributes.friendly_name %}
# {{ trigger.to_state.state }} detected at the {{ camera_name }}. # # {{ trigger.to_state.state }} detected at the {{ camera_name }}.
# # #
# This automation basically scans image and keeps a count of people from each camera view and notifies using iOS notification # # This automation basically scans image and keeps a count of people from each camera view and notifies using iOS notification
# There is another automation that alerts in the house (using TTS) based on the data # # There is another automation that alerts in the house (using TTS) based on the data
# # #
- alias: Scan People and Objects # - alias: Scan People and Objects
initial_state: true # initial_state: true
trigger: # trigger:
- platform: state # - platform: state
entity_id: # entity_id:
- binary_sensor.frontdoor_camera_motion # - binary_sensor.frontdoor_camera_motion
- binary_sensor.driveway_camera_motion # - binary_sensor.driveway_camera_motion
- binary_sensor.patio_camera_motion # - binary_sensor.patio_camera_motion
- binary_sensor.playarea_camera_motion # - binary_sensor.playarea_camera_motion
- binary_sensor.frontdoor_camera_field_detection # - binary_sensor.frontdoor_camera_field_detection
- binary_sensor.driveway_camera_field_detection # - binary_sensor.driveway_camera_field_detection
- binary_sensor.patio_camera_field_detection # - binary_sensor.patio_camera_field_detection
- binary_sensor.playarea_camera_field_detection # - binary_sensor.playarea_camera_field_detection
- binary_sensor.frontdoor_camera_line_crossing # - binary_sensor.frontdoor_camera_line_crossing
- binary_sensor.driveway_camera_line_crossing # - binary_sensor.driveway_camera_line_crossing
- binary_sensor.patio_camera_line_crossing # - binary_sensor.patio_camera_line_crossing
- binary_sensor.playarea_camera_line_crossing # - binary_sensor.playarea_camera_line_crossing
- binary_sensor.garage_motion # - binary_sensor.garage_motion
to: 'on' # to: 'on'
condition: # condition:
- condition: template # - condition: template
value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}" # value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}"
- condition: template # - condition: template
value_template: > # value_template: >
{% macro last_triggered(entity) %} # {% macro last_triggered(entity) %}
{% set time_in_seconds = 30 %} # {% set time_in_seconds = 30 %}
{{ ( (as_timestamp(now()) - as_timestamp(states["binary_sensor"][entity].attributes.last_tripped_time)))|round|abs < time_in_seconds }} # {{ ( (as_timestamp(now()) - as_timestamp(states["binary_sensor"][entity].attributes.last_tripped_time)))|round|abs < time_in_seconds }}
{% endmacro %} # {% endmacro %}
{{ last_triggered(trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera_motion')}} # {{ last_triggered(trigger.entity_id.split('.')[1].split('_')[0] ~ '_camera_motion')}}
action: # action:
- service: image_processing.scan # - service: image_processing.scan
data_template: # data_template:
entity_id: "image_processing.facebox_{{- trigger.entity_id.split('.')[1].split('_')[0] -}}_camera" # entity_id: "image_processing.facebox_{{- trigger.entity_id.split('.')[1].split('_')[0] -}}_camera"
# - service: image_processing.scan # # - service: image_processing.scan
# data_template: # # data_template:
# entity_id: "image_processing.tagbox_{{- trigger.entity_id.split('.')[1].split('_')[0] -}}_camera" # # entity_id: "image_processing.tagbox_{{- trigger.entity_id.split('.')[1].split('_')[0] -}}_camera"

View File

@ -1,69 +1,68 @@
############################################################################### ###############################################################################
# @author : Mahasri Kalavala # @author : Mahasri Kalavala
# @date : 04/15/2017 # @date : 04/15/2017
# @package : Daily Light Routine around the house # @package : Daily Light Routine around the house
# @description : Daily light routine stuff # @description : Daily light routine stuff
############################################################################### ###############################################################################
automation: automation:
# ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛ
# ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛ # °°ÛÛÛÛÛÛ ÛÛÛÛÛÛ °°°
# °°ÛÛÛÛÛÛ ÛÛÛÛÛÛ °°° # °ÛÛÛ°ÛÛÛÛÛ°ÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ
# °ÛÛÛ°ÛÛÛÛÛ°ÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ # °ÛÛÛ°°ÛÛÛ °ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °°ÛÛÛ °°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ
# °ÛÛÛ°°ÛÛÛ °ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °°ÛÛÛ °°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ # °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ
# °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ # °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ
# °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ # ÛÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ
# ÛÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ # °°°°° °°°°° °°°°°° °°°°° °°°° °°°°° °°°°° °°°° °°°°° °°°°°ÛÛÛ
# °°°°° °°°°° °°°°°° °°°°° °°°° °°°°° °°°°° °°°° °°°°° °°°°°ÛÛÛ # ÛÛÛ °ÛÛÛ
# ÛÛÛ °ÛÛÛ # °°ÛÛÛÛÛÛ
# °°ÛÛÛÛÛÛ # °°°°°°
# °°°°°° ###############################################################################
############################################################################### # Turn Indoor lights ON only during weekdays
# Turn Indoor lights ON only during weekdays ###############################################################################
###############################################################################
- alias: Morning Indoor Lights ON - alias: Morning Indoor Lights ON
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: state - condition: state
entity_id: 'binary_sensor.workday_sensor' entity_id: "binary_sensor.workday_sensor"
state: 'on' state: "on"
- condition: template - condition: template
value_template: '{{ states.sensor.wakeup_hour.state |int == now().hour |int }}' value_template: "{{ states('sensor.wakeup_hour') |int == now().hour |int }}"
- condition: template - condition: template
value_template: '{{ states.sensor.wakeup_minute.state|int == now().minute|int }}' value_template: "{{ states('sensor.wakeup_minute') |int == now().minute|int }}"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: switch.turn_on - service: switch.turn_on
data: data:
entity_id: switch.kitchen entity_id: switch.kitchen
############################################################################### ###############################################################################
# Turn ON Master Bedroom lights ON in the morning # Turn ON Master Bedroom lights ON in the morning
# Turn On Bedroom Lights 10 minutes after wake up time # Turn On Bedroom Lights 10 minutes after wake up time
############################################################################### ###############################################################################
- alias: Morning Master Bedroom Lights ON (Mallika) - alias: Morning Master Bedroom Lights ON (Mallika)
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: state - condition: state
entity_id: 'binary_sensor.workday_sensor' entity_id: "binary_sensor.workday_sensor"
state: 'on' state: "on"
- condition: template - condition: template
value_template: '{{ states.sensor.wakeup_hour.state |int == now().hour|int }}' value_template: "{{ states('sensor.wakeup_hour') |int == now().hour|int }}"
- condition: template - condition: template
value_template: '{{ now().minute | int == (states.sensor.wakeup_minute.state | int + 10) }}' value_template: "{{ now().minute | int == (states('sensor.wakeup_minute') | int + 10) }}"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -76,113 +75,113 @@ automation:
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: state - condition: state
entity_id: 'binary_sensor.workday_sensor' entity_id: "binary_sensor.workday_sensor"
state: 'on' state: "on"
- condition: template - condition: template
value_template: '{{ states.sensor.wakeup_hour.state|int == now().hour|int }}' value_template: "{{ states('sensor.wakeup_hour') |int == now().hour|int }}"
- condition: template - condition: template
value_template: '{{ now().minute|int == (states.sensor.wakeup_minute.state|int + 15) }}' value_template: "{{ now().minute|int == (states('sensor.wakeup_minute') |int + 15) }}"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_off - service: light.turn_off
data: data:
entity_id: light.master_bedroom_2 entity_id: light.master_bedroom_2
############################################################################### ###############################################################################
# Turn off outdoor lights 15 minutes after sunrise # Turn off outdoor lights 15 minutes after sunrise
############################################################################### ###############################################################################
- alias: Morning Outdoor Lights OFF - alias: Morning Outdoor Lights OFF
initial_state: true initial_state: true
trigger: trigger:
platform: sun platform: sun
event: sunrise event: sunrise
offset: '00:15:00' offset: "00:15:00"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.frontyard_light entity_id: switch.frontyard_light
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.wemobackyardlightswitch entity_id: switch.wemobackyardlightswitch
############################################################################### ###############################################################################
# Turn OF Kitchen Lights after 3 hours of wake up time during school/work days # Turn OF Kitchen Lights after 3 hours of wake up time during school/work days
############################################################################### ###############################################################################
- alias: Morning Kitchen Light OFF - alias: Morning Kitchen Light OFF
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: state - condition: state
entity_id: 'binary_sensor.workday_sensor' entity_id: "binary_sensor.workday_sensor"
state: 'on' state: "on"
- condition: template - condition: template
value_template: '{{ now().hour|int == (states.sensor.wakeup_hour.state|int + 3) }}' value_template: "{{ now().hour|int == (states('sensor.wakeup_hour') |int + 3) }}"
- condition: template - condition: template
value_template: '{{ states.sensor.wakeup_minute.state|int == now().minute|int }}' value_template: "{{ states('sensor.wakeup_minute') |int == now().minute|int }}"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.kitchen entity_id: switch.kitchen
# ÛÛÛÛÛÛÛÛÛÛ ÛÛÛ # ÛÛÛÛÛÛÛÛÛÛ ÛÛÛ
# °°ÛÛÛ°°°°°Û °°° # °°ÛÛÛ°°°°°Û °°°
# °ÛÛÛ Û ° ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ # °ÛÛÛ Û ° ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ
# °ÛÛÛÛÛÛ °°ÛÛÛ °°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °°ÛÛÛ °°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ # °ÛÛÛÛÛÛ °°ÛÛÛ °°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °°ÛÛÛ °°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ
# °ÛÛÛ°°Û °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ # °ÛÛÛ°°Û °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ
# °ÛÛÛ ° Û °°ÛÛÛ ÛÛÛ °ÛÛÛ°°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ # °ÛÛÛ ° Û °°ÛÛÛ ÛÛÛ °ÛÛÛ°°° °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ
# ÛÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛ °°ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ # ÛÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛ °°ÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ
# °°°°°°°°°° °°°°° °°°°°° °°°° °°°°° °°°°° °°°° °°°°° °°°°°ÛÛÛ # °°°°°°°°°° °°°°° °°°°°° °°°° °°°°° °°°°° °°°° °°°°° °°°°°ÛÛÛ
# ÛÛÛ °ÛÛÛ # ÛÛÛ °ÛÛÛ
# °°ÛÛÛÛÛÛ # °°ÛÛÛÛÛÛ
# °°°°°° # °°°°°°
############################################################################### ###############################################################################
# Turn outdoor lights on 15 minutes before sunset # Turn outdoor lights on 15 minutes before sunset
############################################################################### ###############################################################################
- alias: Evening Outdoor Lights ON (At Sunset) - alias: Evening Outdoor Lights ON (At Sunset)
initial_state: true initial_state: true
trigger: trigger:
platform: sun platform: sun
event: sunset event: sunset
offset: '+00:00:00' offset: "+00:00:00"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.frontyard_light entity_id: switch.frontyard_light
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.wemobackyardlightswitch entity_id: switch.wemobackyardlightswitch
############################################################################### ###############################################################################
# Turn indoor lights on 30 minutes before sunset # Turn indoor lights on 30 minutes before sunset
############################################################################### ###############################################################################
- alias: Evening Indoor Lights ON Before Sunset - alias: Evening Indoor Lights ON Before Sunset
initial_state: true initial_state: true
trigger: trigger:
platform: sun platform: sun
event: sunset event: sunset
offset: '-00:30:00' offset: "-00:30:00"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.movie_time entity_id: input_boolean.movie_time
state: 'off' state: "off"
action: action:
- service: switch.turn_on - service: switch.turn_on
data: data:
@ -220,37 +219,37 @@ automation:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.kids_bed_accent entity_id: switch.kids_bed_accent
# ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ # ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛ
# °°ÛÛÛÛÛÛ °°ÛÛÛ °°° °°ÛÛÛ °°ÛÛÛ # °°ÛÛÛÛÛÛ °°ÛÛÛ °°° °°ÛÛÛ °°ÛÛÛ
# °ÛÛÛ°ÛÛÛ °ÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ °ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ # °ÛÛÛ°ÛÛÛ °ÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛ °ÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ
# °ÛÛÛ°°ÛÛÛ°ÛÛÛ °°ÛÛÛ ÛÛÛ°°ÛÛÛ °ÛÛÛ°°ÛÛÛ °°°ÛÛÛ° # °ÛÛÛ°°ÛÛÛ°ÛÛÛ °°ÛÛÛ ÛÛÛ°°ÛÛÛ °ÛÛÛ°°ÛÛÛ °°°ÛÛÛ°
# °ÛÛÛ °°ÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ # °ÛÛÛ °°ÛÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ
# °ÛÛÛ °°ÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ # °ÛÛÛ °°ÛÛÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ ÛÛÛ
# ÛÛÛÛÛ °°ÛÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ °°ÛÛÛÛÛ # ÛÛÛÛÛ °°ÛÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ °°ÛÛÛÛÛ
# °°°°° °°°°° °°°°° °°°°°ÛÛÛ°°°° °°°°° °°°°° # °°°°° °°°°° °°°°° °°°°°ÛÛÛ°°°° °°°°° °°°°°
# ÛÛÛ °ÛÛÛ # ÛÛÛ °ÛÛÛ
# °°ÛÛÛÛÛÛ # °°ÛÛÛÛÛÛ
# °°°°°° # °°°°°°
############################################################################### ###############################################################################
# Set the mood for bed time - Dim Family Room lights if they are ON # Set the mood for bed time - Dim Family Room lights if they are ON
############################################################################### ###############################################################################
- alias: Night Dim TV Lights - alias: Night Dim TV Lights
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: template - condition: template
value_template: '{{ states.sensor.bedtime_hour.state|int == now().hour|int }}' value_template: "{{ states('sensor.bedtime_hour') |int == now().hour|int }}"
- condition: template - condition: template
value_template: '{{ (states.sensor.bedtime_minute.state|int - 15 ) == now().minute|int }}' value_template: "{{ (states('sensor.bedtime_minute') |int - 15 ) == now().minute|int }}"
- condition: state - condition: state
entity_id: light.family_room entity_id: light.family_room
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -259,42 +258,42 @@ automation:
color_temp: 154 color_temp: 154
transition: 15 transition: 15
############################################################################### ###############################################################################
# TURN INDOOR LIGHTS OFF AFTER BED TIME # TURN INDOOR LIGHTS OFF AFTER BED TIME
############################################################################### ###############################################################################
- alias: Night Turn Lights Off - alias: Night Turn Lights Off
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
minutes: '/5' minutes: "/5"
seconds: 00 seconds: 00
condition: condition:
- condition: template - condition: template
value_template: '{{ states.sensor.bedtime_hour.state|int == now().hour|int }}' value_template: "{{ states('sensor.bedtime_hour') |int == now().hour|int }}"
- condition: template - condition: template
value_template: '{{ states.sensor.bedtime_minute.state|int == now().minute|int }}' value_template: "{{ states('sensor.bedtime_minute') |int == now().minute|int }}"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: script.all_indoor_lights_off - service: script.all_indoor_lights_off
- service: script.notify_me - service: script.notify_me
data: data:
message: "It is bed time, turned lights off!" message: "It is bed time, turned lights off!"
############################################################################### ###############################################################################
# Provide Bed time Report via TTS # Provide Bed time Report via TTS
############################################################################### ###############################################################################
- alias: Night Bedtime Report - alias: Night Bedtime Report
initial_state: true initial_state: true
trigger: trigger:
platform: time platform: time
at: '22:10:00' at: "22:10:00"
condition: condition:
- condition: state - condition: state
entity_id: group.all_devices entity_id: group.all_devices
state: 'home' state: "home"
- condition: template - condition: template
value_template: "{{ states('input_boolean.nightly_report') == 'on' }}" value_template: "{{ states('input_boolean.nightly_report') == 'on' }}"
action: action:
- service: script.good_night_tts - service: script.good_night_tts

View File

@ -1,20 +1,20 @@
homeassistant: homeassistant:
sensor: sensor:
- platform: template - platform: template
sensors: sensors:
single_car_garage_door_sensor_status: single_car_garage_door_sensor_status:
friendly_name: Single Car Garage Door Sensor Status friendly_name: Single Car Garage Door Sensor Status
value_template: >- value_template: >-
{% if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == 'on' %} {% if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == 'on' %}
Open Open
{% elif states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == 'off' %} {% elif states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == 'off' %}
Closed Closed
{% else %} {% else %}
Unknown Unknown
{% endif %} {% endif %}
icon_template: >- icon_template: >-
{% set door_status = states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state |d('unknown') %} {% set door_status = states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') %}
{% if door_status == 'unknown' %} {% if door_status == 'unknown' %}
mdi:alert-circle mdi:alert-circle
{% else %} {% else %}
@ -24,21 +24,21 @@ sensor:
mdi:garage mdi:garage
{% endif %} {% endif %}
{% endif %} {% endif %}
- platform: template - platform: template
sensors: sensors:
two_car_garage_door_sensor_status: two_car_garage_door_sensor_status:
value_template: >- value_template: >-
{% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == 'on' %} {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == 'on' %}
Open Open
{% elif states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == 'off' %} {% elif states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == 'off' %}
Closed Closed
{% else %} {% else %}
Unknown Unknown
{% endif %} {% endif %}
friendly_name: Double Car Garage Door Sensor Status friendly_name: Double Car Garage Door Sensor Status
icon_template: >- icon_template: >-
{% set door_status = states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state |d('unknown') %} {% set door_status = states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') %}
{% if door_status == 'unknown' %} {% if door_status == 'unknown' %}
mdi:alert-circle mdi:alert-circle
{% else %} {% else %}
@ -54,51 +54,50 @@ binary_sensor:
state_topic: "/garage/motion" state_topic: "/garage/motion"
name: "Garage Motion" name: "Garage Motion"
device_class: motion device_class: motion
payload_on: 'on' payload_on: "on"
payload_off: 'off' payload_off: "off"
value_template: "{{ value }}" value_template: "{{ value }}"
- platform: mqtt - platform: mqtt
state_topic: "/kitchen/motion" state_topic: "/kitchen/motion"
name: "Kitchen Camera Motion" name: "Kitchen Camera Motion"
device_class: motion device_class: motion
payload_on: 'on' payload_on: "on"
payload_off: 'off' payload_off: "off"
value_template: "{{ value }}" value_template: "{{ value }}"
- platform: mqtt - platform: mqtt
state_topic: "/frontroom/motion" state_topic: "/frontroom/motion"
name: "Frontroom Camera Motion" name: "Frontroom Camera Motion"
device_class: motion device_class: motion
payload_on: 'on' payload_on: "on"
payload_off: 'off' payload_off: "off"
value_template: "{{ value }}" value_template: "{{ value }}"
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
- alias: Garage Motion Reset - alias: Garage Motion Reset
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.garage_motion entity_id: binary_sensor.garage_motion
to: 'on' to: "on"
from: 'off' from: "off"
action: action:
- delay: '00:00:30' - delay: "00:00:30"
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: "/garage/motion" topic: "/garage/motion"
payload: 'off' payload: "off"
retain: false retain: false
- alias: Kitchen Camera Motion Reset - alias: Kitchen Camera Motion Reset
@ -106,14 +105,14 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.kitchen_camera_motion entity_id: binary_sensor.kitchen_camera_motion
to: 'on' to: "on"
from: 'off' from: "off"
action: action:
- delay: '00:00:30' - delay: "00:00:30"
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: "/kitchen/motion" topic: "/kitchen/motion"
payload: 'off' payload: "off"
retain: false retain: false
- alias: Frontroom Camera Motion Reset - alias: Frontroom Camera Motion Reset
@ -121,29 +120,29 @@ automation:
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.frontroom_camera_motion entity_id: binary_sensor.frontroom_camera_motion
to: 'on' to: "on"
from: 'off' from: "off"
action: action:
- delay: '00:00:30' - delay: "00:00:30"
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: "/frontroom/motion" topic: "/frontroom/motion"
payload: 'off' payload: "off"
retain: false retain: false
################################################################################ ################################################################################
# Notifies when either of the garage door is opened or closed # Notifies when either of the garage door is opened or closed
# When the garage is opened, it sends an actionable ios notification with an # When the garage is opened, it sends an actionable ios notification with an
# option to close the garage door. This iso actionable notification only occurs # option to close the garage door. This iso actionable notification only occurs
# when garage door is open and not when it is closed. # when garage door is open and not when it is closed.
############################################################################### ###############################################################################
- alias: Notify Garage Door Status - alias: Notify Garage Door Status
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: entity_id:
- binary_sensor.two_car_garage_door_tilt_sensor_sensor - binary_sensor.two_car_garage_door_tilt_sensor_sensor
- binary_sensor.single_car_garage_door_tilt_sensor_sensor - binary_sensor.single_car_garage_door_tilt_sensor_sensor
condition: condition:
- condition: template - condition: template
value_template: "{% if trigger.from_state %} True {% else %} False {% endif %}" value_template: "{% if trigger.from_state %} True {% else %} False {% endif %}"
@ -157,20 +156,20 @@ automation:
- service: script.notify_me - service: script.notify_me
data_template: data_template:
message: > message: >
{% if trigger.to_state.state | lower == "on" %} {% if trigger.to_state.state | lower == "on" %}
{{ trigger.to_state.attributes.friendly_name }} is now OPENED! {{ trigger.to_state.attributes.friendly_name }} is now OPENED!
{% elif trigger.to_state.state | lower == "off" %} {% elif trigger.to_state.state | lower == "off" %}
{{ trigger.to_state.attributes.friendly_name }} is now CLOSED! {{ trigger.to_state.attributes.friendly_name }} is now CLOSED!
{% endif %} {% endif %}
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: > message: >
{% set doors = "" %} {% set doors = "" %}
{% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" and {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" and
states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" %} states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" %}
{% set doors = "Atention! Both Garage Doors are OPEN" %} {% set doors = "Atention! Both Garage Doors are OPEN" %}
{% elif states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "off" and {% elif states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "off" and
states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "off" %} states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "off" %}
{% set doors = "Both Garage Doors are now CLOSED" %} {% set doors = "Both Garage Doors are now CLOSED" %}
{% else %} {% else %}
{% if trigger.to_state.state | lower == "on" %} {% if trigger.to_state.state | lower == "on" %}
@ -184,32 +183,33 @@ automation:
- service: camera.snapshot - service: camera.snapshot
data_template: data_template:
entity_id: "camera.garage_camera" entity_id: "camera.garage_camera"
filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ filename:
(states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_') "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" (states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_')
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
- service: notify.notify_smtp - service: notify.notify_smtp
data_template: data_template:
title: 'Garage Door Status {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}' title: 'Garage Door Status {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
message: >- message: >-
{% set doors = "" %} {% set doors = "" %}
{% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" and {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" and
states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" %} states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" %}
{% set doors = "Both Garage Doors are OPEN" %} {% set doors = "Both Garage Doors are OPEN" %}
{% elif states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "off" and {% elif states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "off" and
states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "off" %} states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "off" %}
{% set doors = "Both Garage Doors are CLOSED" %} {% set doors = "Both Garage Doors are CLOSED" %}
{% else %} {% else %}
{% set doors = states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.name ~ " is " ~ {% set doors = states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.name ~ " is " ~
('Closed' if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == 'off' else 'OPEN') ('Closed' if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == 'off' else 'OPEN')
~ " and " ~ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.name ~ " is " ~ ~ " and " ~ states('binary_sensor.two_car_garage_door_tilt_sensor_sensor.name') ~ " is " ~
('Closed' if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == 'off' else 'OPEN') %} ('Closed' if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == 'off' else 'OPEN') %}
{% endif %} {% endif %}
Your {{doors}} on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please check the garage snapshot below. Your {{doors}} on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please check the garage snapshot below.
data: data:
images: images:
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
(states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_') (states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_')
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
- service_template: > - service_template: >
{% if trigger.to_state.state | lower == "on" %} {% if trigger.to_state.state | lower == "on" %}
switch.turn_on switch.turn_on
@ -219,18 +219,18 @@ automation:
data: data:
entity_id: switch.garage entity_id: switch.garage
################################################################################ ################################################################################
# When I open the garage door # When I open the garage door
# if it is dark outside, OR # if it is dark outside, OR
# both the garage doors are closed # both the garage doors are closed
# ==> turn the Garage lights ON, and start timer! # ==> turn the Garage lights ON, and start timer!
################################################################################ ################################################################################
- alias: Garage Lights On When Door is Opened - alias: Garage Lights On When Door is Opened
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.garage_door_sensor_sensor entity_id: binary_sensor.garage_door_sensor_sensor
to: 'on' to: "on"
condition: condition:
condition: or condition: or
conditions: conditions:
@ -239,22 +239,22 @@ automation:
- condition: and - condition: and
conditions: conditions:
- condition: template - condition: template
value_template: "{{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == 'off' }}" value_template: "{{ states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == 'off' }}"
- condition: template - condition: template
value_template: "{{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == 'off' }}" value_template: "{{ states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == 'off' }}"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.garage entity_id: switch.garage
- service: timer.start - service: timer.start
entity_id: timer.timer_garage entity_id: timer.timer_garage
# Notify Entry Door Status # Notify Entry Door Status
############################################################################### ###############################################################################
- alias: Notify Entry Door Status - alias: Notify Entry Door Status
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: entity_id:
- binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor - binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor
- binary_sensor.back_door_sensor_sensor - binary_sensor.back_door_sensor_sensor
condition: condition:
@ -266,33 +266,33 @@ automation:
message: > message: >
{% if trigger.to_state.state | lower == "on" %} {% if trigger.to_state.state | lower == "on" %}
Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is OPEN, Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is OPEN,
{% if states.alarm_control_panel.simplisafe.state == 'armed_home' or {% if states('alarm_control_panel.simplisafe') == 'armed_home' or
states.alarm_control_panel.simplisafe.state == 'armed_away' %} states('alarm_control_panel.simplisafe') == 'armed_away' %}
But your home security system is ON. But your home security system is ON.
{% endif %} {% endif %}
{% elif trigger.to_state.state | lower == "off" %} {% elif trigger.to_state.state | lower == "off" %}
Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is CLOSED! Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is CLOSED!
{% endif %} {% endif %}
greeting: 'no' greeting: "no"
only_at_night: > only_at_night: >
{% if states.alarm_control_panel.simplisafe.state == 'armed_home' %} {% if states('alarm_control_panel.simplisafe') == 'armed_home' %}
no no
{% else %} {% else %}
yes yes
{% endif %} {% endif %}
# Turn ON and OFF basement ambient lights # Turn ON and OFF basement ambient lights
############################################################################### ###############################################################################
- alias: Basement Accent Lights ON When Basement Door Opened - alias: Basement Accent Lights ON When Basement Door Opened
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: binary_sensor.basement_door_sensor_sensor entity_id: binary_sensor.basement_door_sensor_sensor
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: homeassistant.turn_on - service: homeassistant.turn_on
entity_id: switch.rf_switch_one entity_id: switch.rf_switch_one
@ -301,15 +301,15 @@ automation:
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: entity_id:
- switch.rf_switch_one - switch.rf_switch_one
to: 'on' to: "on"
for: for:
minutes: 5 minutes: 5
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: homeassistant.turn_off - service: homeassistant.turn_off
entity_id: switch.rf_switch_one entity_id: switch.rf_switch_one

View File

@ -154,7 +154,7 @@
# to: 'disarmed' # to: 'disarmed'
# condition: # condition:
# - condition: template # - condition: template
# value_template: '{{ states.input_boolean.emergency_mode.state == "on" }}' # value_template: "{{ states('input_boolean.emergency_mode') == 'on' }}"
# action: # action:
# - service: input_boolean.turn_off # - service: input_boolean.turn_off
# entity_id: input_boolean.emergency_mode # entity_id: input_boolean.emergency_mode

View File

@ -2,37 +2,37 @@ homeassistant:
sensor: sensor:
- platform: snmp - platform: snmp
name: 'ESXi Server Description' name: "ESXi Server Description"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.1.1.0 baseoid: 1.3.6.1.2.1.1.1.0
accept_errors: true accept_errors: true
- platform: snmp - platform: snmp
name: 'ESXi Total RAM' name: "ESXi Total RAM"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.25.2.3.1.5.6 baseoid: 1.3.6.1.2.1.25.2.3.1.5.6
accept_errors: true accept_errors: true
- platform: snmp - platform: snmp
name: 'ESXi Used RAM' name: "ESXi Used RAM"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.25.2.3.1.6.6 baseoid: 1.3.6.1.2.1.25.2.3.1.6.6
accept_errors: true accept_errors: true
- platform: snmp - platform: snmp
name: 'ESXi System Uptime Epoch' name: "ESXi System Uptime Epoch"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.25.1.1.0 baseoid: 1.3.6.1.2.1.25.1.1.0
accept_errors: true accept_errors: true
- platform: snmp - platform: snmp
name: 'ESXi Number of Network Interfaces' name: "ESXi Number of Network Interfaces"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.2.1.0 baseoid: 1.3.6.1.2.1.2.1.0
accept_errors: true accept_errors: true
- platform: snmp - platform: snmp
name: 'ESXi System Memory Size' name: "ESXi System Memory Size"
host: !secret esxi_server host: !secret esxi_server
baseoid: 1.3.6.1.2.1.25.2.2.0 baseoid: 1.3.6.1.2.1.25.2.2.0
accept_errors: true accept_errors: true
@ -40,17 +40,17 @@ sensor:
- platform: template - platform: template
sensors: sensors:
esxi_memory_used: esxi_memory_used:
friendly_name: "ESXi Memory Usage" friendly_name: "ESXi Memory Usage"
unit_of_measurement: '%' unit_of_measurement: "%"
value_template: "{{(states('sensor.esxi_used_ram') | float / states('sensor.esxi_total_ram') | float * 100) | round }}" value_template: "{{(states('sensor.esxi_used_ram') | float / states('sensor.esxi_total_ram') | float * 100) | round }}"
- platform: template - platform: template
sensors: sensors:
esxi_system_uptime: esxi_system_uptime:
friendly_name: "ESXi System Uptime" friendly_name: "ESXi System Uptime"
value_template: > value_template: >
{% set time = states.sensor.esxi_system_uptime_epoch.state | int %} {% set time = states('sensor.esxi_system_uptime_epoch') | int %}
{% set minutes = ((time % 360000) / 6000) | int %} {% set minutes = ((time % 360000) / 6000) | int %}
{% set hours = ((time % 8640000) / 360000) | int %} {% set hours = ((time % 8640000) / 360000) | int %}
{% set days = (time / 8640000) | int %} {% set days = (time / 8640000) | int %}
{{ days }} days, {{ hours }} hours {{ minutes }} minutes. {{ days }} days, {{ hours }} hours {{ minutes }} minutes.

View File

@ -45,30 +45,29 @@ frontend:
paper-slider-secondary-color: "#ff93ac" paper-slider-secondary-color: "#ff93ac"
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
- alias: Random Theme At Startup - alias: Random Theme At Startup
initial_state: true initial_state: true
trigger: trigger:
- platform: homeassistant - platform: homeassistant
event: start event: start
action: action:
- service_template: frontend.set_theme - service_template: frontend.set_theme
data_template: data_template:
name: > name: >
{% if states.sun.sun.state == "above_horizon" %} {% if states('sun.sun') == "above_horizon" %}
{{ ["light_pink", "default"] | random }} {{ ["light_pink", "default"] | random }}
{% else %} {% else %}
{{ [ "dark_red" ] | random }} {{ [ "dark_red" ] | random }}
{% endif %} {% endif %}
- alias: Random Darker Theme At Sunset - alias: Random Darker Theme At Sunset
initial_state: true initial_state: true
@ -88,4 +87,4 @@ automation:
action: action:
- service: frontend.set_theme - service: frontend.set_theme
data_template: data_template:
name: '{{ ["light_pink", "default"] | random }}' name: '{{ ["light_pink", "default"] | random }}'

View File

@ -2,10 +2,10 @@
# # @author : Mahasri Kalavala # # @author : Mahasri Kalavala
# # @date : 04/15/2017 # # @date : 04/15/2017
# # @package : Random Chuck Norris Facts # # @package : Random Chuck Norris Facts
# # @description : Daily dose of Chuck Norris. # # @description : Daily dose of Chuck Norris.
# # It is intentionally set to query once a day. # # It is intentionally set to query once a day.
# # Know your limits, too much of Chuck Norris is not good! # # Know your limits, too much of Chuck Norris is not good!
# # # #
# # These are facts, and not jokes. DO NOT JOKE ABOUT CHUCK NORRIS! # # These are facts, and not jokes. DO NOT JOKE ABOUT CHUCK NORRIS!
# # ############################################################################## # # ##############################################################################
# homeassistant: # homeassistant:
@ -33,4 +33,4 @@
# - service: persistent_notification.create # - service: persistent_notification.create
# data: # data:
# title: 'Chuck Norris fact:' # title: 'Chuck Norris fact:'
# message: '{{ states.sensor.fact_of_the_day.state }}' # message: '{{ states('sensor.fact_of_the_day') }}'

View File

@ -7,7 +7,6 @@
homeassistant: homeassistant:
customize: customize:
sensor.holiday: sensor.holiday:
hidden: true hidden: true
icon: mdi:beach icon: mdi:beach
@ -15,8 +14,8 @@ homeassistant:
############################################################################### ###############################################################################
# Sensor updates once every 4 hours (14400 seconds) & runs 6 times in 24 hours # Sensor updates once every 4 hours (14400 seconds) & runs 6 times in 24 hours
# #
# First it checks for holiday in static section, if that doesn't exist, # First it checks for holiday in static section, if that doesn't exist,
# it checks in the dynamic section. If neither exists, the value will be empty # it checks in the dynamic section. If neither exists, the value will be empty
############################################################################### ###############################################################################
sensor: sensor:
@ -34,16 +33,15 @@ sensor:
{{ holiday }} {{ holiday }}
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
- alias: Notify Holiday State Change - alias: Notify Holiday State Change
initial_state: true initial_state: true
trigger: trigger:
@ -53,21 +51,21 @@ automation:
- condition: template - condition: template
value_template: "{{ states('sensor.holiday') != 'unknown' }}" value_template: "{{ states('sensor.holiday') != 'unknown' }}"
- condition: template - condition: template
value_template: "{{ states.sensor.holiday.state | trim != '' }}" value_template: "{{ states('sensor.holiday') | trim != '' }}"
action: action:
- service: persistent_notification.create - service: persistent_notification.create
data: data:
message: 'Today is {{ states.sensor.holiday.state }}.' message: "Today is {{ states('sensor.holiday') }}."
title: '{{ states.sensor.holiday.state }}' title: "{{ states('sensor.holiday') }}"
- service: script.notify_me - service: script.notify_me
data_template: data_template:
message: 'Today is: {{states.sensor.holiday.state }}' message: "Today is: {{states('sensor.holiday') }}"
- alias: Notify Indian Holidays - alias: Notify Indian Holidays
initial_state: true initial_state: true
trigger: trigger:
platform: time platform: time
at: '09:00:00' at: "09:00:00"
condition: condition:
- condition: template - condition: template
value_template: >- value_template: >-
@ -75,9 +73,9 @@ automation:
{%- if now().year == strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').year -%} {%- if now().year == strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').year -%}
{%- set days2NextEvent = strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) -%} {%- set days2NextEvent = strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) -%}
{%- else -%} {%- else -%}
{% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%} {% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%}
{%- endif -%} {%- endif -%}
{%- if days2NextEvent <= (states.input_number.calendar_remind_before_days.state | int) -%} {%- if days2NextEvent <= (states('input_number.calendar_remind_before_days') | int) -%}
{%- if days2NextEvent |int == 0 -%} {%- if days2NextEvent |int == 0 -%}
true true
{%- elif days2NextEvent | int == 1 -%} {%- elif days2NextEvent | int == 1 -%}
@ -94,18 +92,18 @@ automation:
- service: script.notify_me - service: script.notify_me
data_template: data_template:
message: >- message: >-
{%- set days2NextEvent = 0 -%} {%- set days2NextEvent = 0 -%}
{%- if now().year == strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').year -%} {%- if now().year == strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').year -%}
{%- set days2NextEvent = strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) -%} {%- set days2NextEvent = strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) -%}
{%- else -%} {%- else -%}
{% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%} {% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%}
{%- endif -%} {%- endif -%}
{%- if days2NextEvent <= (states.input_number.calendar_remind_before_days.state | int) -%} {%- if days2NextEvent <= (states('input_number.calendar_remind_before_days') | int) -%}
{%- if days2NextEvent |int == 0 -%} {%- if days2NextEvent |int == 0 -%}
Today is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}. Today is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}.
{%- elif days2NextEvent |int == 1 -%} {%- elif days2NextEvent |int == 1 -%}
Tomorrow is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}. Tomorrow is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}.
{%- elif days2NextEvent |int == 2 -%} {%- elif days2NextEvent |int == 2 -%}
{{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}. is day after tomorrow. {{ states.calendar.holidays_in_india.attributes.message | replace(".", "") | title }}. is day after tomorrow.
{%- endif -%} {%- endif -%}
{%- endif -%} {%- endif -%}

View File

@ -36,7 +36,6 @@ speedtestdotnet:
- upload - upload
sensor: sensor:
- platform: uptime - platform: uptime
name: Home Assistant Up Time name: Home Assistant Up Time
unit_of_measurement: hours unit_of_measurement: hours
@ -48,7 +47,7 @@ sensor:
- platform: rest - platform: rest
resource: http://icanhazip.com resource: http://icanhazip.com
name: external_ip name: external_ip
value_template: '{{ value }}' value_template: "{{ value }}"
scan_interval: 86400 scan_interval: 86400
- platform: systemmonitor - platform: systemmonitor
@ -64,42 +63,31 @@ sensor:
- platform: rest - platform: rest
resource: https://pypi.python.org/pypi/homeassistant/json resource: https://pypi.python.org/pypi/homeassistant/json
name: HA Current Version name: HA Current Version
value_template: '{{ value_json.info.version }}' value_template: "{{ value_json.info.version }}"
- platform: command_line - platform: command_line
name: HA Installed Version name: HA Installed Version
command: /srv/homeassistant/bin/hass --version command: /srv/homeassistant/bin/hass --version
scan_interval: 86400 scan_interval: 86400
- platform: pi_hole pi_hole:
host: !secret pi_hole_ip host: !secret pi_hole_ip
ssl: false ssl: false
verify_ssl: false verify_ssl: false
monitored_conditions:
- ads_blocked_today
- ads_percentage_today
- dns_queries_today
- domains_being_blocked
- queries_cached
- queries_forwarded
- unique_clients
- unique_domains
- clients_ever_seen
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
# Notify me when I get a new public IP from my ISP
# Notify me when I get a new public IP from my ISP ######################################################
######################################################
- alias: Notify Of New External IP - alias: Notify Of New External IP
initial_state: true initial_state: true
@ -127,7 +115,7 @@ automation:
entity_id: updater.updater entity_id: updater.updater
action: action:
- service: script.notify_me - service: script.notify_me
data: {"message":"New HASS update is available. Please update!"} data: { "message": "New HASS update is available. Please update!" }
- alias: Remind domain renewal - alias: Remind domain renewal
initial_state: true initial_state: true
@ -138,5 +126,5 @@ automation:
action: action:
- service: persistent_notification.create - service: persistent_notification.create
data: data:
title: 'Domain Renew' title: "Domain Renew"
message: 'It is time to renew your domain. The domain will expire in {{ states.sensor.my_domain.state }} days.' message: "It is time to renew your domain. The domain will expire in {{ states('sensor.my_domain') }} days."

View File

@ -1,6 +1,5 @@
homeassistant: homeassistant:
customize_domain: customize_domain:
alarm_control_panel: alarm_control_panel:
homebridge_hidden: true homebridge_hidden: true
@ -58,4 +57,4 @@ homeassistant:
switch: switch:
homebridge_hidden: false homebridge_hidden: false
emulated_hue_hidden: false emulated_hue_hidden: false

View File

@ -45,30 +45,30 @@ automation:
- condition: template - condition: template
value_template: "{% if trigger.from_state %} True {% else %} False {% endif %}" value_template: "{% if trigger.from_state %} True {% else %} False {% endif %}"
- condition: template - condition: template
value_template: '{{ states.alarm_control_panel.simplisafe.state != "unknown" }}' value_template: "{{ states('alarm_control_panel.simplisafe') != 'unknown' }}"
- condition: template - condition: template
value_template: '{{ states.alarm_control_panel.simplisafe.state | trim != "" }}' value_template: "{{ states('alarm_control_panel.simplisafe') | trim != '' }}"
action: action:
- service_template: > - service_template: >
{% if states.alarm_control_panel.simplisafe.state == "armed_home" %} {% if states('alarm_control_panel.simplisafe') == "armed_home" %}
script.xiaomi_blue script.xiaomi_blue
{% elif states.alarm_control_panel.simplisafe.state == "armed_away" %} {% elif states('alarm_control_panel.simplisafe') == "armed_away" %}
script.xiaomi_green script.xiaomi_green
{% elif states.alarm_control_panel.simplisafe.state == "triggered" %} {% elif states('alarm_control_panel.simplisafe') == "triggered" %}
script.xiaomi_red script.xiaomi_red
{% elif states.alarm_control_panel.simplisafe.state == "disarmed" %} {% elif states('alarm_control_panel.simplisafe') == "disarmed" %}
script.xiaomi_red script.xiaomi_red
{% endif %} {% endif %}
- service: script.ifttt_leeo_color_change - service: script.ifttt_leeo_color_change
data_template: data_template:
value1: > value1: >
{% if states.alarm_control_panel.simplisafe.state == "armed_home" %} {% if states('alarm_control_panel.simplisafe') == "armed_home" %}
"#0000FF" "#0000FF"
{% elif states.alarm_control_panel.simplisafe.state == "armed_away" %} {% elif states('alarm_control_panel.simplisafe') == "armed_away" %}
"#00FF00" "#00FF00"
{% elif states.alarm_control_panel.simplisafe.state == "triggered" %} {% elif states('alarm_control_panel.simplisafe') == "triggered" %}
"#FF0000" "#FF0000"
{% elif states.alarm_control_panel.simplisafe.state == "disarmed" %} {% elif states('alarm_control_panel.simplisafe') == "disarmed" %}
"#FF0000" "#FF0000"
{% endif %} {% endif %}
@ -94,29 +94,29 @@ automation:
- service: script.notify_me - service: script.notify_me
data_template: data_template:
message: > message: >
{% if states.alarm_control_panel.simplisafe.state == "armed_home" %} {% if states('alarm_control_panel.simplisafe') == "armed_home" %}
Your home is now secured! Your home is now secured!
{% elif states.alarm_control_panel.simplisafe.state == "armed_away" %} {% elif states('alarm_control_panel.simplisafe') == "armed_away" %}
Your Home Security System is now set to Away mode! Your Home Security System is now set to Away mode!
{% elif states.alarm_control_panel.simplisafe.state == "triggered" %} {% elif states('alarm_control_panel.simplisafe') == "triggered" %}
Attention!: Your Home Security System is triggered! It has been notified to the authorities. Attention!: Your Home Security System is triggered! It has been notified to the authorities.
{% elif states.alarm_control_panel.simplisafe.state == "disarmed" %} {% elif states('alarm_control_panel.simplisafe') == "disarmed" %}
Attention!: Your Home Security System is turned OFF. Attention!: Your Home Security System is turned OFF.
{% endif %} {% endif %}
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: > message: >
{% if states.alarm_control_panel.simplisafe.state == "armed_home" %} {% if states('alarm_control_panel.simplisafe') == "armed_home" %}
Your home is now secured! Your home is now secured!
{% elif states.alarm_control_panel.simplisafe.state == "armed_away" %} {% elif states('alarm_control_panel.simplisafe') == "armed_away" %}
Your Home Security System is now set to Away mode! Your Home Security System is now set to Away mode!
{% elif states.alarm_control_panel.simplisafe.state == "triggered" %} {% elif states('alarm_control_panel.simplisafe') == "triggered" %}
Attention!: Your Home Security System is triggered! It has been notified to the authorities. Attention!: Your Home Security System is triggered! It has been notified to the authorities.
{% elif states.alarm_control_panel.simplisafe.state == "disarmed" %} {% elif states('alarm_control_panel.simplisafe') == "disarmed" %}
Attention!: Your Home Security System is turned OFF. Attention!: Your Home Security System is turned OFF.
{% endif %} {% endif %}
- condition: template - condition: template
value_template: '{{ states.alarm_control_panel.simplisafe.state != "disarmed" }}' value_template: "{{ states('alarm_control_panel.simplisafe') != 'disarmed' }}"
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.notify_camera_motion entity_id: input_boolean.notify_camera_motion
@ -176,7 +176,7 @@ automation:
condition: condition:
- condition: template - condition: template
value_template: > value_template: >
{% if trigger.from_state.state == 'armed_away' and {% if trigger.from_state.state == 'armed_away' and
(trigger.to_state.state == 'armed_home' or trigger.to_state.state == 'disarmed') %} (trigger.to_state.state == 'armed_home' or trigger.to_state.state == 'disarmed') %}
true true
{% else %} {% else %}
@ -199,9 +199,9 @@ automation:
seconds: 00 seconds: 00
condition: condition:
- condition: template - condition: template
value_template: "{{ states.sensor.bedtime_hour.state|int == now().hour|int }}" value_template: "{{ states('sensor.bedtime_hour')|int == now().hour|int }}"
- condition: template - condition: template
value_template: "{{ states.sensor.bedtime_minute.state|int == now().minute|int }}" value_template: "{{ states('sensor.bedtime_minute')|int == now().minute|int }}"
- condition: template - condition: template
value_template: "{{ states('alarm_control_panel.simplisafe') != 'away' }}" value_template: "{{ states('alarm_control_panel.simplisafe') != 'away' }}"
- condition: state - condition: state
@ -231,33 +231,33 @@ automation:
# condition: and # condition: and
# conditions: # conditions:
# - condition: template # - condition: template
# value_template: '{{ states.alarm_control_panel.simplisafe.state == "armed_home" or states.alarm_control_panel.simplisafe.state == "armed_away" }}' # value_template: '{{ states('alarm_control_panel.simplisafe') == "armed_home" or states('alarm_control_panel.simplisafe') == "armed_away" }}'
# - condition: or # - condition: or
# conditions: # conditions:
# - condition: template # - condition: template
# value_template: '{{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" }}' # value_template: '{{ states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" }}'
# - condition: template # - condition: template
# value_template: '{{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" }}' # value_template: '{{ states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" }}'
# action: # action:
# - service: switch.turn_on # - service: switch.turn_on
# entity_id: switch.garage # entity_id: switch.garage
# - service: script.notify_me # - service: script.notify_me
# data_template: # data_template:
# message: > # message: >
# Attention! Your home Security system is set to {{ states.alarm_control_panel.simplisafe.state.split('_')[1] | upper }} mode. # Attention! Your home Security system is set to {{ states('alarm_control_panel.simplisafe').split('_')[1] | upper }} mode.
# BUT THE {% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" -%}DOUBLE CAR {%- else %}SINGLE CAR {% endif %}GARAGE DOOR IS STILL OPEN! # BUT THE {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" -%}DOUBLE CAR {%- else %}SINGLE CAR {% endif %}GARAGE DOOR IS STILL OPEN!
# - service: camera.snapshot # - service: camera.snapshot
# data_template: # data_template:
# entity_id: "camera.garage_camera" # entity_id: "camera.garage_camera"
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - service: camera.snapshot # - service: camera.snapshot
# data_template: # data_template:
# entity_id: "camera.driveway_camera" # entity_id: "camera.driveway_camera"
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - service: camera.snapshot # - service: camera.snapshot
# data_template: # data_template:
# entity_id: "camera.frontdoor_camera" # entity_id: "camera.frontdoor_camera"
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - service: notify.notify_smtp # - service: notify.notify_smtp
# data_template: # data_template:
# title: 'Garage Picture {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}' # title: 'Garage Picture {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
@ -272,33 +272,33 @@ automation:
# {%- endif %} {{ dt.strftime("%B %Y")}} # {%- endif %} {{ dt.strftime("%B %Y")}}
# {%- endmacro -%} # {%- endmacro -%}
# {% set doors = "" %} # {% set doors = "" %}
# {% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" and states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" %} # {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" and states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" %}
# {% set doors = "Both garage doors" %} # {% set doors = "Both garage doors" %}
# {% elif states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on"%} # {% elif states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on"%}
# {% set doors = states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.name %} # {% set doors = states('binary_sensor.single_car_garage_door_tilt_sensor_sensor.name %}
# {% elif states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" %} # {% elif states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" %}
# {% set doors = states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.name %} # {% set doors = states('binary_sensor.two_car_garage_door_tilt_sensor_sensor.name %}
# {% endif %} # {% endif %}
# Your {{ doors }} seem to be open while your home security system is set to "{{ states.alarm_control_panel.simplisafe.state.split('_')[1]| title }}" mode. Today is {{ get_date(now()) }}, and time is {{ now().strftime("%I:%M:%S %p") }}. Please see the attached pictures and make sure everything is okay. # Your {{ doors }} seem to be open while your home security system is set to "{{ states('alarm_control_panel.simplisafe').split('_')[1]| title }}" mode. Today is {{ get_date(now()) }}, and time is {{ now().strftime("%I:%M:%S %p") }}. Please see the attached pictures and make sure everything is okay.
# data: # data:
# images: # images:
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states.automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}" # - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
# - condition: template # - condition: template
# value_template: '{{ states.alarm_control_panel.simplisafe.state == "armed_home" }}' # value_template: '{{ states('alarm_control_panel.simplisafe') == "armed_home" }}'
# - service: script.voice_notify # - service: script.voice_notify
# data_template: # data_template:
# message: > # message: >
# {% set doors = "" %} # {% set doors = "" %}
# {% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" and states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" %} # {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" and states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" %}
# {% set doors = "Both garage doors" %} # {% set doors = "Both garage doors" %}
# {% elif states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on"%} # {% elif states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on"%}
# {% set doors = states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.name %} # {% set doors = states('binary_sensor.single_car_garage_door_tilt_sensor_sensor.name %}
# {% elif states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" %} # {% elif states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" %}
# {% set doors = states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.name %} # {% set doors = states('binary_sensor.two_car_garage_door_tilt_sensor_sensor.name %}
# {% endif %} # {% endif %}
# Attention! Your home Security system is set to {{ states.alarm_control_panel.simplisafe.state.split('_')[1] | upper }} mode. # Attention! Your home Security system is set to {{ states('alarm_control_panel.simplisafe').split('_')[1] | upper }} mode.
# BUT the {{ doors }} {{ 'are' if doors.endswith('s') else 'is' }} open. # BUT the {{ doors }} {{ 'are' if doors.endswith('s') else 'is' }} open.
############################################################################### ###############################################################################
@ -319,10 +319,10 @@ automation:
# state: 'disarmed' # state: 'disarmed'
# action: # action:
# - service_template: >- # - service_template: >-
# {% if states.binary_sensor.back_door_sensor_sensor.state == "off" and # {% if states('binary_sensor.back_door_sensor_sensor') == "off" and
# states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == "off" and # states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == "off" and
# states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "off" and # states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "off" and
# states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "off" %} # states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "off" %}
# alarm_control_panel.alarm_arm_home # alarm_control_panel.alarm_arm_home
# {% else %} # {% else %}
# alarm_control_panel.disarm # alarm_control_panel.disarm
@ -332,31 +332,31 @@ automation:
# - service: script.voice_notify # - service: script.voice_notify
# data_template: # data_template:
# message: > # message: >
# {% if states.binary_sensor.back_door_sensor_sensor.state == "off" and # {% if states('binary_sensor.back_door_sensor_sensor') == "off" and
# states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == "off" and # states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == "off" and
# states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "off" and # states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "off" and
# states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "off" %} # states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "off" %}
# It's getting dark outside, and your home security system is now set to HOME mode. # It's getting dark outside, and your home security system is now set to HOME mode.
# {% else %} # {% else %}
# It is getting dark outside. # It is getting dark outside.
# {%- if states.binary_sensor.back_door_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.back_door_sensor_sensor') == "on" -%}
# {%- set doors = doors ~ " Back Door" -%} # {%- set doors = doors ~ " Back Door" -%}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == "on" -%} # {%- if states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Front Door" -%} # {%- set doors = doors ~ " and Front Door" -%}
# {% else %} # {% else %}
# {%- set doors = doors ~ " Front Door" -%} # {%- set doors = doors ~ " Front Door" -%}
# {% endif %} # {% endif %}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Two Car Garage Door" -%} # {%- set doors = doors ~ " and Two Car Garage Door" -%}
# {% else %} # {% else %}
# {%- set doors = doors ~ " Two Car Garage Door" -%} # {%- set doors = doors ~ " Two Car Garage Door" -%}
# {% endif %} # {% endif %}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Single Car Garage Door" -%} # {%- set doors = doors ~ " and Single Car Garage Door" -%}
# {% else %} # {% else %}
@ -368,31 +368,31 @@ automation:
# - service: script.notify_me # - service: script.notify_me
# data_template: # data_template:
# message: > # message: >
# {% if states.binary_sensor.back_door_sensor_sensor.state == "off" and # {% if states('binary_sensor.back_door_sensor_sensor') == "off" and
# states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == "off" and # states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == "off" and
# states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "off" and # states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "off" and
# states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "off" %} # states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "off" %}
# It's getting dark outside, and your home security system is now set to HOME mode. # It's getting dark outside, and your home security system is now set to HOME mode.
# {% else %} # {% else %}
# It is getting dark outside. # It is getting dark outside.
# {%- if states.binary_sensor.back_door_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.back_door_sensor_sensor') == "on" -%}
# {%- set doors = doors ~ " Back Door" -%} # {%- set doors = doors ~ " Back Door" -%}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor.state == "on" -%} # {%- if states('binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Front Door" -%} # {%- set doors = doors ~ " and Front Door" -%}
# {% else %} # {% else %}
# {%- set doors = doors ~ " Front Door" -%} # {%- set doors = doors ~ " Front Door" -%}
# {% endif %} # {% endif %}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Two Car Garage Door" -%} # {%- set doors = doors ~ " and Two Car Garage Door" -%}
# {% else %} # {% else %}
# {%- set doors = doors ~ " Two Car Garage Door" -%} # {%- set doors = doors ~ " Two Car Garage Door" -%}
# {% endif %} # {% endif %}
# {%- endif -%} # {%- endif -%}
# {%- if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state == "on" -%} # {%- if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') == "on" -%}
# {% if doors | trim != "" %} # {% if doors | trim != "" %}
# {%- set doors = doors ~ " and Single Car Garage Door" -%} # {%- set doors = doors ~ " and Single Car Garage Door" -%}
# {% else %} # {% else %}
@ -417,9 +417,9 @@ automation:
# condition: or # condition: or
# conditions: # conditions:
# - condition: template # - condition: template
# value_template: '{{ states.alarm_control_panel.simplisafe.state | lower == "armed_away" }}' # value_template: '{{ states('alarm_control_panel.simplisafe') | lower == "armed_away" }}'
# - condition: template # - condition: template
# value_template: '{{ states.alarm_control_panel.simplisafe.state | lower == "armed_home" }}' # value_template: '{{ states('alarm_control_panel.simplisafe') | lower == "armed_home" }}'
# action: # action:
# - service: notify.ios_suresh # - service: notify.ios_suresh
# data_template: # data_template:
@ -444,7 +444,7 @@ automation:
# to: 'on' # to: 'on'
# condition: # condition:
# - condition: template # - condition: template
# value_template: '{{ states.alarm_control_panel.simplisafe.state == "armed_home" or states.alarm_control_panel.simplisafe.state == "armed_away" }}' # value_template: '{{ states('alarm_control_panel.simplisafe') == "armed_home" or states('alarm_control_panel.simplisafe') == "armed_away" }}'
# action: # action:
# - service: notify.ios_suresh # - service: notify.ios_suresh
# data_template: # data_template:

View File

@ -6,7 +6,6 @@
############################################################################### ###############################################################################
homeassistant: homeassistant:
customize: customize:
switch.frontyard_light: switch.frontyard_light:
icon: mdi:lightbulb icon: mdi:lightbulb
friendly_name: Front Porch Lights friendly_name: Front Porch Lights
@ -46,7 +45,7 @@ homeassistant:
friendly_name: Guest Bedroom 2 friendly_name: Guest Bedroom 2
emulated_hue_name: Guest Bedroom 2 emulated_hue_name: Guest Bedroom 2
homebridge_name: Guest Bedroom 2 homebridge_name: Guest Bedroom 2
switch.zwave_smart_switch_switch: switch.zwave_smart_switch_switch:
friendly_name: Office Room Accent Lights friendly_name: Office Room Accent Lights
emulated_hue_name: Office Room Accent Lights emulated_hue_name: Office Room Accent Lights
@ -90,11 +89,11 @@ homeassistant:
icon: mdi:flash icon: mdi:flash
friendly_name: Short Flash friendly_name: Short Flash
input_boolean.long_flash: input_boolean.long_flash:
icon: mdi:flash icon: mdi:flash
friendly_name: Long Flash friendly_name: Long Flash
input_boolean.animate_downstairs_lights: input_boolean.animate_downstairs_lights:
icon: mdi:flash-outline icon: mdi:flash-outline
friendly_name: Animate Family Room Lights friendly_name: Animate Family Room Lights
input_boolean.animate_upstairs_lights: input_boolean.animate_upstairs_lights:
icon: mdi:flash-outline icon: mdi:flash-outline
friendly_name: Animate Master Bedroom Lights friendly_name: Animate Master Bedroom Lights
@ -123,63 +122,62 @@ hue:
tplink: tplink:
discovery: false discovery: false
switch: switch:
# In-wall switches
- host: !secret tplink_kids_bedroom
- host: !secret tplink_guest_bedroom_1
- host: !secret tplink_guest_bedroom_2
- host: !secret tplink_garage
- host: !secret tplink_basement_left
- host: !secret tplink_basement_right
- host: !secret tplink_kitchen
- host: !secret tplink_office_room
# In-wall switches # Smart Outlets
- host: !secret tplink_kids_bedroom - host: !secret tplink_smart_outlet1
- host: !secret tplink_guest_bedroom_1 #name: Downstairs Fragrance Outlet
- host: !secret tplink_guest_bedroom_2 - host: !secret tplink_smart_outlet2
- host: !secret tplink_garage #name: Downstairs Bathroom Fragrance Outlet
- host: !secret tplink_basement_left - host: !secret tplink_smart_outlet3
- host: !secret tplink_basement_right #name: Upstairs Fragrance Outlet
- host: !secret tplink_kitchen - host: !secret tplink_kids_bed_accent_light
- host: !secret tplink_office_room #name: Kids Bed Accent Light
# Smart Outlets
- host: !secret tplink_smart_outlet1
#name: Downstairs Fragrance Outlet
- host: !secret tplink_smart_outlet2
#name: Downstairs Bathroom Fragrance Outlet
- host: !secret tplink_smart_outlet3
#name: Upstairs Fragrance Outlet
- host: !secret tplink_kids_bed_accent_light
#name: Kids Bed Accent Light
switch: switch:
# RF Switches # RF Switches
# - platform: mqtt # - platform: mqtt
# name: RF Switch One # name: RF Switch One
# command_topic: '/home/rfswitches/switch_one' # command_topic: '/home/rfswitches/switch_one'
# payload_on: "on" # payload_on: "on"
# payload_off: "off" # payload_off: "off"
# retain: true # retain: true
# - platform: mqtt # - platform: mqtt
# name: RF Switch Two # name: RF Switch Two
# command_topic: '/home/rfswitches/switch_two' # command_topic: '/home/rfswitches/switch_two'
# payload_on: "on" # payload_on: "on"
# payload_off: "off" # payload_off: "off"
# retain: true # retain: true
# - platform: mqtt # - platform: mqtt
# name: RF Switch Three # name: RF Switch Three
# command_topic: '/home/rfswitches/switch_three' # command_topic: '/home/rfswitches/switch_three'
# payload_on: "on" # payload_on: "on"
# payload_off: "off" # payload_off: "off"
# retain: true # retain: true
# - platform: mqtt # - platform: mqtt
# name: RF Switch Four # name: RF Switch Four
# command_topic: '/home/rfswitches/switch_four' # command_topic: '/home/rfswitches/switch_four'
# payload_on: "on" # payload_on: "on"
# payload_off: "off" # payload_off: "off"
# retain: true # retain: true
# - platform: mqtt # - platform: mqtt
# name: RF Switch Five # name: RF Switch Five
# command_topic: '/home/rfswitches/switch_five' # command_topic: '/home/rfswitches/switch_five'
# payload_on: "on" # payload_on: "on"
# payload_off: "off" # payload_off: "off"
# retain: true # retain: true
wemo: wemo:
discovery: false discovery: false
@ -210,7 +208,7 @@ script:
data: data:
entity_id: light.gateway_light_34ce008ad65d entity_id: light.gateway_light_34ce008ad65d
brightness: 255 brightness: 255
rgb_color: [255,0,0] rgb_color: [255, 0, 0]
xiaomi_blue: xiaomi_blue:
sequence: sequence:
@ -218,7 +216,7 @@ script:
data: data:
entity_id: light.gateway_light_34ce008ad65d entity_id: light.gateway_light_34ce008ad65d
brightness: 255 brightness: 255
rgb_color: [0,0,255] rgb_color: [0, 0, 255]
xiaomi_green: xiaomi_green:
sequence: sequence:
@ -226,7 +224,7 @@ script:
data: data:
entity_id: light.gateway_light_34ce008ad65d entity_id: light.gateway_light_34ce008ad65d
brightness: 255 brightness: 255
rgb_color: [0,255,0] rgb_color: [0, 255, 0]
# start_colorloop: # start_colorloop:
# sequence: # sequence:
@ -237,7 +235,6 @@ script:
# period: 2 # period: 2
# spread: 360 # spread: 360
# change: 35 # change: 35
# stop_colorloop: # stop_colorloop:
# sequence: # sequence:
# - service: light.lifx_effect_stop # - service: light.lifx_effect_stop
@ -245,31 +242,30 @@ script:
# entity_id: light.dinette # entity_id: light.dinette
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
# Animate Master Bedroom Lights
# Animate Master Bedroom Lights ###############################################################################
###############################################################################
- alias: Animate Master Bedroom Lights - alias: Animate Master Bedroom Lights
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
seconds: '/5' seconds: "/5"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.animate_upstairs_lights entity_id: input_boolean.animate_upstairs_lights
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -278,45 +274,48 @@ automation:
brightness: 255 brightness: 255
color_temp: 366 color_temp: 366
data_template: data_template:
rgb_color: ['{{ "{0:d}".format(range(0, 255)|random) }}' , rgb_color:
'{{ "{0:d}".format(range(0, 255)|random) }}', [
'{{ "{0:d}".format(range(0, 255)|random) }}'] '{{ "{0:d}".format(range(0, 255)|random) }}',
'{{ "{0:d}".format(range(0, 255)|random) }}',
'{{ "{0:d}".format(range(0, 255)|random) }}',
]
# Restore Master Bedroom Lights # Restore Master Bedroom Lights
############################################################################### ###############################################################################
- alias: Restore Masterbedroom Lights - alias: Restore Masterbedroom Lights
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.animate_upstairs_lights entity_id: input_boolean.animate_upstairs_lights
to: 'off' to: "off"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
entity_id: group.master_bedroom_lights entity_id: group.master_bedroom_lights
transition: 5 transition: 5
rgb_color: [224,175,102] rgb_color: [224, 175, 102]
brightness: 10 brightness: 10
color_temp: 366 color_temp: 366
# Animate Familyroom Lights # Animate Familyroom Lights
############################################################################### ###############################################################################
- alias: Animate Familyroom Lights - alias: Animate Familyroom Lights
initial_state: true initial_state: true
trigger: trigger:
platform: time_pattern platform: time_pattern
seconds: '/5' seconds: "/5"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.animate_downstairs_lights entity_id: input_boolean.animate_downstairs_lights
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -325,22 +324,25 @@ automation:
brightness: 255 brightness: 255
color_temp: 366 color_temp: 366
data_template: data_template:
rgb_color: ['{{ "{0:d}".format(range(0, 255)|random) }}' , rgb_color:
'{{ "{0:d}".format(range(0, 255)|random) }}', [
'{{ "{0:d}".format(range(0, 255)|random) }}'] '{{ "{0:d}".format(range(0, 255)|random) }}',
'{{ "{0:d}".format(range(0, 255)|random) }}',
'{{ "{0:d}".format(range(0, 255)|random) }}',
]
# Restore Familyroom Lights # Restore Familyroom Lights
############################################################################### ###############################################################################
- alias: Restore Familyroom Lights - alias: Restore Familyroom Lights
initial_state: true initial_state: true
trigger: trigger:
platform: state platform: state
entity_id: input_boolean.animate_downstairs_lights entity_id: input_boolean.animate_downstairs_lights
to: 'off' to: "off"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
@ -350,8 +352,8 @@ automation:
brightness: 255 brightness: 255
color_temp: 162 color_temp: 162
# Animate Kitchen Lights ON # Animate Kitchen Lights ON
############################################################################### ###############################################################################
# - alias: Animate Kitchen Lights ON # - alias: Animate Kitchen Lights ON
# initial_state: true # initial_state: true
# trigger: # trigger:
@ -365,14 +367,14 @@ automation:
# - service: light.turn_on # - service: light.turn_on
# entity_id: light.dinette # entity_id: light.dinette
# data_template: # data_template:
# rgb_color: ['{{ (range(0, 255)|random) }}', # rgb_color: ['{{ (range(0, 255)|random) }}',
# '{{ (range(0, 255)|random) }}', # '{{ (range(0, 255)|random) }}',
# '{{ (range(0, 255)|random) }}'] # '{{ (range(0, 255)|random) }}']
# brightness: 255 # brightness: 255
# transition: '{{ (range(1, 2)|random) }}' # transition: '{{ (range(1, 2)|random) }}'
# Animate Kitchen Lights OFF # Animate Kitchen Lights OFF
############################################################################### ###############################################################################
# - alias: Animate Kitchen Lights OFF # - alias: Animate Kitchen Lights OFF
# initial_state: true # initial_state: true
# trigger: # trigger:
@ -387,19 +389,19 @@ automation:
# brightness: 255 # brightness: 255
# color_temp: 155 # color_temp: 155
# Long Flash All Lights # Long Flash All Lights
############################################################################### ###############################################################################
- alias: Long Flash All Lights - alias: Long Flash All Lights
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.long_flash entity_id: input_boolean.long_flash
to: 'on' to: "on"
from: 'off' from: "off"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: entity_id:
@ -409,19 +411,19 @@ automation:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.long_flash entity_id: input_boolean.long_flash
# Short Flash All Lights # Short Flash All Lights
############################################################################### ###############################################################################
- alias: Short Flash All Lights - alias: Short Flash All Lights
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.short_flash entity_id: input_boolean.short_flash
to: 'on' to: "on"
from: 'off' from: "off"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.light_automations entity_id: input_boolean.light_automations
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
entity_id: entity_id:

View File

@ -22,28 +22,28 @@
# homeassistant.core: error # homeassistant.core: error
# homeassistant.setup: error # homeassistant.setup: error
# homeassistant.loader: error # homeassistant.loader: error
# homeassistant.components.api: error # homeassistant.components.api: error
# homeassistant.helpers.script: error # homeassistant.helpers.script: error
# homeassistant.components.mqtt: error # homeassistant.components.mqtt: error
# homeassistant.components.http: error # homeassistant.components.http: error
# homeassistant.helpers.entity: error # homeassistant.helpers.entity: error
# homeassistant.components.zwave: error # homeassistant.components.zwave: error
# homeassistant.components.sensor: error # homeassistant.components.sensor: error
# homeassistant.helpers.condition: error # homeassistant.helpers.condition: error
# homeassistant.components.recorder: error # homeassistant.components.recorder: error
# homeassistant.components.discovery: error # homeassistant.components.discovery: error
# homeassistant.components.automation: error # homeassistant.components.automation: error
# homeassistant.components.light.lifx: error # homeassistant.components.light.lifx: error
# homeassistant.components.emulated_hue: error # homeassistant.components.emulated_hue: error
# homeassistant.components.media_player: error # homeassistant.components.media_player: error
# homeassistant.components.device_tracker: error # homeassistant.components.device_tracker: error
# custom_components.sensor.life360: error # custom_components.sensor.life360: error
# custom_components.sensor.command_line: error # custom_components.sensor.command_line: error
# custom_components.media_player.sharptv: error # custom_components.media_player.sharptv: error
# ############################################################################### # ###############################################################################
# # Logger level # # Logger level
# input_select: # input_select:
# log_level: # log_level:
# name: Log Level # name: Log Level
# options: # options:
@ -99,4 +99,4 @@
# - service: input_select.select_option # - service: input_select.select_option
# data_template: # data_template:
# entity_id: input_select.log_level # entity_id: input_select.log_level
# option: '{{ states.sensor.current_log_level.state | default("warning") }}' # option: '{{ states('sensor.current_log_level') | default("warning") }}'

View File

@ -158,12 +158,12 @@ automation:
entity_id: input_select.snapcast_server entity_id: input_select.snapcast_server
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_select.snapcast_server.state | lower != "select one" }}' value_template: "{{ states('input_select.snapcast_server') | lower != 'select one' }}"
action: action:
- service_template: >- - service_template: >-
{% if states.input_select.snapcast_server.state | lower == "stop" %} {% if states('input_select.snapcast_server') | lower == "stop" %}
shell_command.stop_snapserver shell_command.stop_snapserver
{% elif states.input_select.snapcast_server.state | lower == "start" %} {% elif states('input_select.snapcast_server') | lower == "start" %}
shell_command.start_snapserver shell_command.start_snapserver
{% else %} {% else %}
shell_command.restart_snapserver shell_command.restart_snapserver

View File

@ -1,55 +1,55 @@
homeassistant: homeassistant:
customize: customize:
input_label.aeotec_zw120_door_window_sensor_gen5_sensor: input_label.aeotec_zw120_door_window_sensor_gen5_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.back_door_sensor_sensor: input_label.back_door_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.basement_door_sensor_sensor: input_label.basement_door_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.downstairs_multi_sensor_sensor: input_label.downstairs_multi_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.front_room_multi_sensor_sensor: input_label.front_room_multi_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.front_room_window_sensor_sensor: input_label.front_room_window_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.garage_door_sensor_sensor: input_label.garage_door_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.garage_motion: input_label.garage_motion:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.guest_bedroom_multi_sensor_sensor: input_label.guest_bedroom_multi_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.kitchen_motion_sensor_sensor: input_label.kitchen_motion_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00016c2d0e: input_label.motion_sensor_158d00016c2d0e:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00016db6d2: input_label.motion_sensor_158d00016db6d2:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d0001a25041: input_label.motion_sensor_158d0001a25041:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d0001a662fe: input_label.motion_sensor_158d0001a662fe:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00024e57d3: input_label.motion_sensor_158d00024e57d3:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00024e57fb: input_label.motion_sensor_158d00024e57fb:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00024e842c: input_label.motion_sensor_158d00024e842c:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d00024ee084: input_label.motion_sensor_158d00024ee084:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d000272bed1: input_label.motion_sensor_158d000272bed1:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d000272bf48: input_label.motion_sensor_158d000272bf48:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.motion_sensor_158d000272bfd7: input_label.motion_sensor_158d000272bfd7:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.single_car_garage_door_tilt_sensor_sensor: input_label.single_car_garage_door_tilt_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.stairs_motion_sensor_sensor: input_label.stairs_motion_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.two_car_garage_door_tilt_sensor_sensor: input_label.two_car_garage_door_tilt_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label.upstairs_multi_sensor_sensor: input_label.upstairs_multi_sensor_sensor:
unit_of_measurement: 'count' unit_of_measurement: "count"
input_label: input_label:
aeotec_zw120_door_window_sensor_gen5_sensor: aeotec_zw120_door_window_sensor_gen5_sensor:
@ -134,7 +134,7 @@ automation:
- alias: Count Motions - alias: Count Motions
trigger: trigger:
- platform: state - platform: state
to: 'on' to: "on"
entity_id: entity_id:
- binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor - binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor
- binary_sensor.back_door_sensor_sensor - binary_sensor.back_door_sensor_sensor
@ -203,16 +203,15 @@ automation:
- input_label.stairs_motion_sensor_sensor - input_label.stairs_motion_sensor_sensor
- input_label.two_car_garage_door_tilt_sensor_sensor - input_label.two_car_garage_door_tilt_sensor_sensor
- input_label.upstairs_multi_sensor_sensor - input_label.upstairs_multi_sensor_sensor
# {% for x in states.binary_sensor if 'camera' not in x.entity_id and
# {% for x in states.binary_sensor if 'camera' not in x.entity_id and # 'cube' not in x.entity_id and
# 'cube' not in x.entity_id and # 'tesla' not in x.entity_id and
# 'tesla' not in x.entity_id and # 'drone' not in x.entity_id and
# 'drone' not in x.entity_id and # 'audio' not in x.entity_id and
# 'audio' not in x.entity_id and # 'protection' not in x.entity_id and
# 'protection' not in x.entity_id and # 'tv' not in x.entity_id and
# 'tv' not in x.entity_id and # 'workday' not in x.entity_id and
# 'workday' not in x.entity_id and # 'home_away' not in x.entity_id and
# 'home_away' not in x.entity_id and
# 'dining_room' not in x.entity_id %} # 'dining_room' not in x.entity_id %}
# {{ x.entity_id }} # {{ x.entity_id }}
# {%- endfor %} # {%- endfor %}

View File

@ -3,7 +3,7 @@
# @date : 11/19/2017 # @date : 11/19/2017
# @package : Timers and Lights/Switches # @package : Timers and Lights/Switches
# @description : All lights and switches are now timer enabled # @description : All lights and switches are now timer enabled
# and the timer automatically extends when there is # and the timer automatically extends when there is
# motion. When timer elapses, it turns off lights. # motion. When timer elapses, it turns off lights.
############################################################################### ###############################################################################
homeassistant: homeassistant:
@ -25,189 +25,156 @@ homeassistant:
timer: timer:
timer_kitchen: timer_kitchen:
duration: '00:10:00' duration: "00:10:00"
timer_familyroom: timer_familyroom:
duration: '00:05:00' duration: "00:05:00"
timer_frontroom: timer_frontroom:
duration: '00:05:00' duration: "00:05:00"
timer_garage: timer_garage:
duration: '00:05:00' duration: "00:05:00"
timer_masterbedroom: timer_masterbedroom:
duration: '00:05:00' duration: "00:05:00"
timer_officeroom: timer_officeroom:
duration: '00:05:00' duration: "00:05:00"
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
# Office Room:
# Office Room: # Motion Detected - Turn ON the light and extend timer
# Motion Detected - Turn ON the light and extend timer ###############################################################################
###############################################################################
- alias: Officeroom Motion & Timer - alias: Officeroom Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.motion_sensor_158d000272bfd7 entity_id: binary_sensor.motion_sensor_158d000272bfd7
from: 'off' to: "on"
to: 'on'
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_officeroom entity_id: timer.timer_officeroom
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.office_room entity_id: switch.office_room
- condition: template - condition: template
value_template: '{{ states.sun.sun.state == "below_horizon" }}' value_template: "{{ states('sun.sun') == 'below_horizon' }}"
- service: homeassistant.turn_on - service: homeassistant.turn_on
entity_id: switch.zwave_smart_switch_switch entity_id: switch.zwave_smart_switch_switch
- alias: Officeroom Timer Elapsed - alias: Officeroom Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: event
entity_id: timer.timer_officeroom event_type: timer.finished
from: 'active' event_data:
to: 'idle' entity_id: timer.timer_officeroom
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.office_room entity_id: switch.office_room
- service: homeassistant.turn_off - service: homeassistant.turn_off
entity_id: switch.zwave_smart_switch_switch entity_id: switch.zwave_smart_switch_switch
# Srinika's Bedroom: # # Front Room:
# Motion Detected - Turn ON the bedroom light and extend timer # # Motion Detected - Turn ON the light and extend timer
############################################################################### # ###############################################################################
# - alias: Srinika Bedroom Motion & Timer
# initial_state: true
# trigger:
# - platform: state
# entity_id: binary_sensor.motion_sensor_158d000272bed1
# from: 'off'
# to: 'on'
# action:
# - service: timer.start
# entity_id: timer.timer_srinika_bedroom
# - service: switch.turn_on
# entity_id: switch.switch.guest_bedroom
# - condition: template
# value_template: '{{ states.sun.sun.state == "below_horizon" }}'
# - alias: Srinika Bedroom Timer Elapsed
# initial_state: true
# trigger:
# - platform: state
# entity_id: timer.timer_srinika_bedroom
# from: 'active'
# to: 'idle'
# action:
# - service: switch.turn_off
# entity_id: switch.guest_bedroom
# Front Room:
# Motion Detected - Turn ON the light and extend timer
###############################################################################
- alias: Frontroom Motion & Timer - alias: Frontroom Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.motion_sensor_158d00016db6d2 entity_id: binary_sensor.motion_sensor_158d00016db6d2
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_frontroom entity_id: timer.timer_frontroom
- condition: template - condition: template
value_template: '{{ states.sun.sun.state == "below_horizon" }}' value_template: "{{ states('sun.sun') == 'below_horizon' }}"
- service: homeassistant.turn_on - service: homeassistant.turn_on
entity_id: switch.zwave_smart_switch_switch entity_id: switch.zwave_smart_switch_switch
# Front Room: # Front Room:
# Timer Elapsed - Turn OFF lights # Timer Elapsed - Turn OFF lights
############################################################################### ###############################################################################
- alias: Frontroom Timer Elapsed - alias: Frontroom Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: event
entity_id: timer.timer_frontroom event_type: timer.finished
from: 'active' event_data:
to: 'idle' entity_id: timer.timer_frontroom
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_boolean.working_in_office_room.state == "off" }}' value_template: "{{ states('input_boolean.working_in_office_room') == 'off' }}"
action: action:
- service: homeassistant.turn_off - service: homeassistant.turn_off
entity_id: switch.rf_switch_four entity_id: switch.rf_switch_four
# Kitchen:
# Kitchen: # Motion Detected - Turn ON the light and extend timer
# Motion Detected - Turn ON the light and extend timer ###############################################################################
###############################################################################
- alias: Kitchen Motion & Timer - alias: Kitchen Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.motion_sensor_158d0001a662fe - binary_sensor.motion_sensor_158d0001a662fe
- binary_sensor.kitchen_motion_sensor_sensor - binary_sensor.kitchen_motion_sensor_sensor
- binary_sensor.basement_door_sensor_sensor - binary_sensor.basement_door_sensor_sensor
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.kitchen entity_id: switch.kitchen
- service: timer.start - service: timer.start
entity_id: timer.timer_kitchen entity_id: timer.timer_kitchen
# Kitchen:
# Kitchen: # Timer Elapsed - Turn OFF lights
# Timer Elapsed - Turn OFF lights ###############################################################################
###############################################################################
- alias: Kitchen Timer Elapsed - alias: Kitchen Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: event - platform: event
event_type: timer.finished event_type: timer.finished
event_data: event_data:
entity_id: timer.timer_kitchen entity_id: timer.timer_kitchen
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
action: action:
- service_template: > - service_template: >
{% if now().hour|int >= states.sensor.bedtime_hour.state|int and now().minute|int >= states.sensor.bedtime_minute.state|int %} {% if now().hour|int >= states('sensor.bedtime_hour') |int and
now().minute|int >= states('sensor.bedtime_minute') |int %}
switch.turn_off switch.turn_off
{% else %} {% else %}
switch.turn_on switch.turn_on
{% endif %} {% endif %}
entity_id: switch.kitchen entity_id: switch.kitchen
# Family Room:
# Family Room: # Motion Detected - When TV is OFF, turn ON the light 100% and extend timer
# Motion Detected - When TV is OFF, turn ON the light 100% and extend timer ###############################################################################
###############################################################################
- alias: Family Room Motion & Timer - alias: Family Room Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.tv_multi_sensor_sensor - binary_sensor.tv_multi_sensor_sensor
- binary_sensor.motion_sensor_158d0001a25041 - binary_sensor.motion_sensor_158d0001a25041
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
- condition: template - condition: template
value_template: "{{ states('input_boolean.movie_time') != 'on' }}" value_template: "{{ states('input_boolean.movie_time') != 'on' }}"
action: action:
@ -215,129 +182,123 @@ automation:
entity_id: light.family_room entity_id: light.family_room
data_template: data_template:
brightness: > brightness: >
{% if states.binary_sensor.sharp_tv.state == "on" %} {% if states('binary_sensor.sharp_tv') == "on" %}
25 25
{% else %} {% else %}
254 254
{% endif %} {% endif %}
color_temp: 154 color_temp: 154
transition: 5 transition: 5
- service: timer.start - service: timer.start
entity_id: timer.timer_familyroom entity_id: timer.timer_familyroom
# Family Room:
# Family Room: # Timer Elapsed - Turn OFF lights
# Timer Elapsed - Turn OFF lights ###############################################################################
###############################################################################
- alias: Family Room Timer Elapsed - alias: Family Room Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: timer.timer_familyroom entity_id: timer.timer_familyroom
from: 'active' from: "active"
to: 'idle' to: "idle"
action: action:
- service: light.turn_off - service: light.turn_off
entity_id: light.family_room entity_id: light.family_room
- delay: '00:00:05' - delay: "00:00:05"
- service: light.turn_off - service: light.turn_off
entity_id: light.family_room entity_id: light.family_room
# Master Bedroom:
# Master Bedroom: # Motion Detected - Turn ON the lights and extend timer
# Motion Detected - Turn ON the lights and extend timer ###############################################################################
###############################################################################
- alias: Master Bedroom Motion & Timer - alias: Master Bedroom Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.upstairs_multi_sensor_sensor entity_id: binary_sensor.upstairs_multi_sensor_sensor
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- condition: state - condition: state
entity_id: sun.sun entity_id: sun.sun
state: 'below_horizon' state: "below_horizon"
action: action:
- service: light.turn_on - service: light.turn_on
data: data:
entity_id: light.master_bedroom_1 entity_id: light.master_bedroom_1
rgb_color: [224,175,102] rgb_color: [224, 175, 102]
brightness: 10 brightness: 10
- service: light.turn_on - service: light.turn_on
data: data:
entity_id: light.master_bedroom_2 entity_id: light.master_bedroom_2
rgb_color: [224,175,102] rgb_color: [224, 175, 102]
brightness: 10 brightness: 10
- service: timer.start - service: timer.start
entity_id: timer.timer_masterbedroom entity_id: timer.timer_masterbedroom
# Master Bedroom:
# Master Bedroom: # Timer Elapsed - Turn OFF lights
# Timer Elapsed - Turn OFF lights ###############################################################################
###############################################################################
- alias: Master Bedroom Timer Elapsed - alias: Master Bedroom Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: timer.timer_masterbedroom entity_id: timer.timer_masterbedroom
from: 'active' from: "active"
to: 'idle' to: "idle"
action: action:
- service: light.turn_off - service: light.turn_off
entity_id: light.master_bedroom_1 entity_id: light.master_bedroom_1
- service: light.turn_off - service: light.turn_off
entity_id: light.master_bedroom_2 entity_id: light.master_bedroom_2
- delay: '00:00:05' - delay: "00:00:05"
- service: light.turn_off - service: light.turn_off
entity_id: light.master_bedroom entity_id: light.master_bedroom
# Garage:
# Garage: # Motion Detected - Turn ON the light and extend timer
# Motion Detected - Turn ON the light and extend timer #
# # Added a condition - if the lights were just turn off in the last 30 seconds,
# Added a condition - if the lights were just turn off in the last 30 seconds, # do not turn ON the lights again
# do not turn ON the lights again ###############################################################################
###############################################################################
- alias: Garage Motion & Timer - alias: Garage Motion & Timer
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.garage_motion entity_id: binary_sensor.garage_motion
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_boolean.working_in_garage.state | lower == "on" }}' value_template: "{{ states('input_boolean.working_in_garage') | lower == 'on' }}"
- condition: template - condition: template
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.switch.garage.last_updated)) | int > 30 }}' value_template: "{{ (as_timestamp(now()) - as_timestamp(states.switch.garage.last_updated)) | int > 30 }}"
action: action:
- service: switch.turn_on - service: switch.turn_on
entity_id: switch.garage entity_id: switch.garage
# Start the timer when the lights are ON
# Start the timer when the lights are ON ###############################################################################
###############################################################################
- alias: Garage Timer Start When Garage Lights ON - alias: Garage Timer Start When Garage Lights ON
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: switch.garage entity_id: switch.garage
from: 'off' from: "off"
to: 'on' to: "on"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.timer_garage entity_id: timer.timer_garage
# Garage:
# Garage: # Timer Elapsed - Turn OFF lights, when "I am not working"
# Timer Elapsed - Turn OFF lights, when "I am not working" ###############################################################################
###############################################################################
- alias: Garage Timer Elapsed - alias: Garage Timer Elapsed
initial_state: true initial_state: true
trigger: trigger:
- platform: state - platform: state
entity_id: timer.timer_garage entity_id: timer.timer_garage
from: 'active' from: "active"
to: 'idle' to: "idle"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.working_in_garage entity_id: input_boolean.working_in_garage
state: 'off' state: "off"
action: action:
- service: switch.turn_off - service: switch.turn_off
entity_id: switch.garage entity_id: switch.garage

View File

@ -6,7 +6,6 @@
############################################################################### ###############################################################################
homeassistant: homeassistant:
customize: customize:
group.tts_announcements: group.tts_announcements:
order: 52 order: 52
@ -41,7 +40,7 @@ notify:
- service: ios_mallika - service: ios_mallika
- service: ios_srinika - service: ios_srinika
- service: ios_hasika - service: ios_hasika
# make sure you generate app password for your email if you have 2FA enabled! # make sure you generate app password for your email if you have 2FA enabled!
- name: notify_smtp - name: notify_smtp
platform: smtp platform: smtp
@ -50,7 +49,7 @@ notify:
timeout: 15 timeout: 15
username: !secret smtp_username username: !secret smtp_username
password: !secret smtp_password password: !secret smtp_password
sender: !secret smtp_sender sender: !secret smtp_sender
recipient: !secret smtp_recipient recipient: !secret smtp_recipient
# - name: notify_aws_sns # - name: notify_aws_sns
@ -67,15 +66,14 @@ tts:
- platform: amazon_polly - platform: amazon_polly
aws_access_key_id: !secret aws_access_key_id aws_access_key_id: !secret aws_access_key_id
aws_secret_access_key: !secret aws_secret_access_key aws_secret_access_key: !secret aws_secret_access_key
region_name: 'us-east-1' region_name: "us-east-1"
text_type: ssml text_type: ssml
voice: Joanna voice: Joanna
script: script:
###############################################################################
############################################################################### # Notify Related Scripts
# Notify Related Scripts ###############################################################################
###############################################################################
ifttt_notify: ifttt_notify:
sequence: sequence:
- condition: template - condition: template
@ -91,15 +89,15 @@ script:
- condition: template - condition: template
value_template: '{{ value1 | trim != "" }}' value_template: '{{ value1 | trim != "" }}'
- service: ifttt.trigger - service: ifttt.trigger
data_template: data_template:
event: "LEEO_COLOR_CHANGE" event: "LEEO_COLOR_CHANGE"
value1: '{{ value1 }}' value1: "{{ value1 }}"
notify_me: notify_me:
sequence: sequence:
- condition: state - condition: state
entity_id: input_boolean.text_alerts entity_id: input_boolean.text_alerts
state: 'on' state: "on"
- condition: template - condition: template
value_template: '{{ message | trim != "" }}' value_template: '{{ message | trim != "" }}'
- service: script.ifttt_notify - service: script.ifttt_notify
@ -112,38 +110,38 @@ script:
data_template: data_template:
message: !include ../templates/goodnight.yaml message: !include ../templates/goodnight.yaml
############################################################################### ###############################################################################
# Voice Notify # Voice Notify
# Conditions: # Conditions:
# => Only Announce when people are home. Except in emergency mode! # => Only Announce when people are home. Except in emergency mode!
# => Only Announce when Music is NOT being played # => Only Announce when Music is NOT being played
############################################################################### ###############################################################################
voice_notify: voice_notify:
sequence: sequence:
- condition: template - condition: template
value_template: '{{ states.input_boolean.voice_notifications.state == "on" }}' value_template: "{{ states('input_boolean.voice_notifications') == 'on' }}"
- condition: template - condition: template
value_template: '{{ states.input_boolean.do_not_disturb.state | lower == "off" }}' value_template: "{{ states('input_boolean.do_not_disturb') | lower == 'off' }}"
- condition: template - condition: template
value_template: '{{ states.media_player.gstreamer.state == "idle" }}' value_template: "{{ states('media_player.gstreamer') == 'idle' }}"
- condition: template - condition: template
value_template: '{{ states.media_player.mpd.state != "playing" }}' value_template: "{{ states('media_player.mpd') != 'playing' }}"
- condition: template - condition: template
value_template: '{{ message | trim != "" }}' value_template: "{{ message | trim != '' }}"
- condition: state - condition: state
entity_id: group.all_devices entity_id: group.all_devices
state: 'home' state: "home"
- condition: template - condition: template
value_template: > value_template: >
{% if states.input_boolean.emergency_mode.state == "on" %} {% if states('input_boolean.emergency_mode') == "on" %}
true true
{% else %} {% else %}
{{ states.group.all_devices.state == "home" }} {{ states('group.all_devices') == "home" }}
{% endif %} {% endif %}
- condition: template - condition: template
value_template: > value_template: >
{% if only_at_night | default('no', true ) == "yes" %} {% if only_at_night | default('no', true ) == "yes" %}
{% if states.sun.sun.state == "above_horizon" %} {% if states('sun.sun') == "above_horizon" %}
false false
{% else %} {% else %}
true true
@ -155,15 +153,15 @@ script:
entity_id: media_player.gstreamer entity_id: media_player.gstreamer
data_template: data_template:
volume_level: > volume_level: >
{% if states.input_boolean.emergency_mode.state == "on" %} {% if states('input_boolean.emergency_mode') == "on" %}
{{ states.input_number.tts_volume_level_alert.state }} {{ states('input_number.tts_volume_level_alert') }}
{% else %} {% else %}
{% if now().hour | int < 12 and now().hour | int > 6 %} {% if now().hour | int < 12 and now().hour | int > 6 %}
{{ states.input_number.tts_volume_level_morning.state }} {{ states('input_number.tts_volume_level_morning') }}
{% elif now().hour|int > 12 and now().hour|int < 20 %} {% elif now().hour|int > 12 and now().hour|int < 20 %}
{{ states.input_number.tts_volume_level_afternoon.state }} {{ states('input_number.tts_volume_level_afternoon') }}
{% else %} {% else %}
{{ states.input_number.tts_volume_level_evening.state }} {{ states('input_number.tts_volume_level_evening') }}
{% endif %} {% endif %}
{% endif %} {% endif %}
- service: tts.amazon_polly_say - service: tts.amazon_polly_say
@ -196,9 +194,9 @@ script:
{% set msg = msg + " </speak>" %} {% set msg = msg + " </speak>" %}
{{ msg }} {{ msg }}
############################################################################### ###############################################################################
# Greeting # Greeting
############################################################################### ###############################################################################
voice_greeting: voice_greeting:
sequence: sequence:
- service: tts.amazon_polly_say - service: tts.amazon_polly_say
@ -224,11 +222,11 @@ script:
{% set msg = msg + " </speak>" %} {% set msg = msg + " </speak>" %}
{{ msg }} {{ msg }}
############################################################################### ###############################################################################
# Status around the house # Status around the house
############################################################################### ###############################################################################
home_status: home_status:
sequence: sequence:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: !include ../templates/home_status.yaml message: !include ../templates/home_status.yaml

View File

@ -2,17 +2,17 @@
# @author : Mahasri Kalavala # @author : Mahasri Kalavala
# @date : 12/27/2017 # @date : 12/27/2017
# @package : Pi Admin Package # @package : Pi Admin Package
# @description : Got way too many Raspberry Pi's and this package is to # @description : Got way too many Raspberry Pi's and this package is to
# help me with managing them via Home Assistant. # help me with managing them via Home Assistant.
# #
# How Does It Work? # How Does It Work?
# #
# Each Raspberry Pi runs a service (a python program) locally that listens for # Each Raspberry Pi runs a service (a python program) locally that listens for
# commands via MQTT on a pre-defined topic. This package publishes commands # commands via MQTT on a pre-defined topic. This package publishes commands
# to MQTT requesting each Raspberry Pi to respond and or return data. # to MQTT requesting each Raspberry Pi to respond and or return data.
# When the responses are received (on a differet topic), the sensors gets # When the responses are received (on a differet topic), the sensors gets
# updated automatically and are displayed. # updated automatically and are displayed.
# #
################################################################################ ################################################################################
homeassistant: homeassistant:
@ -32,32 +32,31 @@ input_select:
raspberry_pis: raspberry_pis:
name: All Raspberry Pis name: All Raspberry Pis
options: options:
- Select One - Select One
- pi_basement - pi_basement
- pi_theater - pi_theater
- pi_kitchen - pi_kitchen
- pi_familyroom - pi_familyroom
- pi_frontroom - pi_frontroom
- pi_garage - pi_garage
- pi_guest1 - pi_guest1
- pi_guest2 - pi_guest2
- pi_masterbedroom - pi_masterbedroom
initial: Select One initial: Select One
icon: mdi:pig icon: mdi:pig
rpi_commands: rpi_commands:
name: RPi Commands name: RPi Commands
options: options:
- Select One - Select One
- Restart Server - Restart Server
- Shutdown - Shutdown
- Restart Snapcast - Restart Snapcast
initial: Select One initial: Select One
icon: mdi:pig icon: mdi:pig
sensor: sensor:
## WiFi Information related sensors
## WiFi Information related sensors
- platform: mqtt - platform: mqtt
state_topic: "/wifi/pi_basement" state_topic: "/wifi/pi_basement"
name: Basement Pi Signal Level name: Basement Pi Signal Level
@ -67,7 +66,7 @@ sensor:
state_topic: "/wifi/pi_basement" state_topic: "/wifi/pi_basement"
name: Basement Pi Link Quality name: Basement Pi Link Quality
value_template: '{{ value_json["Link Quality"]}}' value_template: '{{ value_json["Link Quality"]}}'
- platform: mqtt - platform: mqtt
state_topic: "/wifi/pi_theater" state_topic: "/wifi/pi_theater"
name: Theater Pi Signal Level name: Theater Pi Signal Level
@ -77,7 +76,7 @@ sensor:
state_topic: "/wifi/pi_theater" state_topic: "/wifi/pi_theater"
name: Theater Pi Link Quality name: Theater Pi Link Quality
value_template: '{{ value_json["Link Quality"]}}' value_template: '{{ value_json["Link Quality"]}}'
- platform: mqtt - platform: mqtt
state_topic: "/wifi/pi_kitchen" state_topic: "/wifi/pi_kitchen"
name: Kitchen Pi Signal Level name: Kitchen Pi Signal Level
@ -148,7 +147,7 @@ sensor:
name: Master Bedroom Pi Link Quality name: Master Bedroom Pi Link Quality
value_template: '{{ value_json["Link Quality"]}}' value_template: '{{ value_json["Link Quality"]}}'
## Disk Information related Sensors ## Disk Information related Sensors
- platform: mqtt - platform: mqtt
state_topic: "/disk/pi_basement" state_topic: "/disk/pi_basement"
name: Basement Pi Available Disk name: Basement Pi Available Disk
@ -157,7 +156,7 @@ sensor:
state_topic: "/disk/pi_basement" state_topic: "/disk/pi_basement"
name: Basement Pi Disk Used name: Basement Pi Disk Used
value_template: '{{ value_json["% Used"]}}' value_template: '{{ value_json["% Used"]}}'
- platform: mqtt - platform: mqtt
state_topic: "/disk/pi_theater" state_topic: "/disk/pi_theater"
name: Theater Pi Available Disk name: Theater Pi Available Disk
@ -166,7 +165,7 @@ sensor:
state_topic: "/disk/pi_theater" state_topic: "/disk/pi_theater"
name: Theater Pi Disk Used name: Theater Pi Disk Used
value_template: '{{ value_json["% Used"]}}' value_template: '{{ value_json["% Used"]}}'
- platform: mqtt - platform: mqtt
state_topic: "/disk/pi_kitchen" state_topic: "/disk/pi_kitchen"
name: Kitchen Pi Available Disk name: Kitchen Pi Available Disk
@ -235,47 +234,47 @@ script:
sequence: sequence:
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_basement' topic: "/server/pi_basement"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_theater' topic: "/server/pi_theater"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_kitchen' topic: "/server/pi_kitchen"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_familyroom' topic: "/server/pi_familyroom"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_frontroom' topic: "/server/pi_frontroom"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_garage' topic: "/server/pi_garage"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest1' topic: "/server/pi_guest1"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest2' topic: "/server/pi_guest2"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_masterbedroom' topic: "/server/pi_masterbedroom"
payload: CMD_REBOOT_PI payload: CMD_REBOOT_PI
retain: false retain: false
@ -283,47 +282,47 @@ script:
sequence: sequence:
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_basement' topic: "/server/pi_basement"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_theater' topic: "/server/pi_theater"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_kitchen' topic: "/server/pi_kitchen"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_familyroom' topic: "/server/pi_familyroom"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_frontroom' topic: "/server/pi_frontroom"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_garage' topic: "/server/pi_garage"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest1' topic: "/server/pi_guest1"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest2' topic: "/server/pi_guest2"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_masterbedroom' topic: "/server/pi_masterbedroom"
payload: CMD_RESTART_SNAPCLIENT payload: CMD_RESTART_SNAPCLIENT
retain: false retain: false
@ -331,204 +330,203 @@ script:
sequence: sequence:
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_basement' topic: "/server/pi_basement"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_theater' topic: "/server/pi_theater"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_kitchen' topic: "/server/pi_kitchen"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_familyroom' topic: "/server/pi_familyroom"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_frontroom' topic: "/server/pi_frontroom"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_garage' topic: "/server/pi_garage"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest1' topic: "/server/pi_guest1"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_guest2' topic: "/server/pi_guest2"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data_template: data_template:
topic: '/server/pi_masterbedroom' topic: "/server/pi_masterbedroom"
payload: CMD_SHUTDOWN_PI payload: CMD_SHUTDOWN_PI
retain: false retain: false
# Script to Query Disk Information - Publishes message 'CMD_REPORT_WIFI_DETAILS' # Script to Query Disk Information - Publishes message 'CMD_REPORT_WIFI_DETAILS'
# to MQTT, so that the message gets received by individual Raspberry Pi # to MQTT, so that the message gets received by individual Raspberry Pi
############################################################################### ###############################################################################
query_wifi_info: query_wifi_info:
sequence: sequence:
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_basement topic: /server/pi_basement
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_theater topic: /server/pi_theater
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_kitchen topic: /server/pi_kitchen
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_familyroom topic: /server/pi_familyroom
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_frontroom topic: /server/pi_frontroom
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_garage topic: /server/pi_garage
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_guest1 topic: /server/pi_guest1
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_guest2 topic: /server/pi_guest2
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_masterbedroom topic: /server/pi_masterbedroom
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pizero_green topic: /server/pizero_green
payload: 'CMD_REPORT_WIFI_DETAILS' payload: "CMD_REPORT_WIFI_DETAILS"
retain: false retain: false
# Script to Query Disk Information - Publishes message 'CMD_REPORT_DISK_DETAILS' # Script to Query Disk Information - Publishes message 'CMD_REPORT_DISK_DETAILS'
# to MQTT, so that the message gets received by individual Raspberry Pi # to MQTT, so that the message gets received by individual Raspberry Pi
############################################################################### ###############################################################################
query_disk_info: query_disk_info:
sequence: sequence:
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_basement topic: /server/pi_basement
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_theater topic: /server/pi_theater
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_kitchen topic: /server/pi_kitchen
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_familyroom topic: /server/pi_familyroom
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_frontroom topic: /server/pi_frontroom
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_garage topic: /server/pi_garage
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_guest1 topic: /server/pi_guest1
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_guest2 topic: /server/pi_guest2
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pi_masterbedroom topic: /server/pi_masterbedroom
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: /server/pizero_green topic: /server/pizero_green
payload: 'CMD_REPORT_DISK_DETAILS' payload: "CMD_REPORT_DISK_DETAILS"
retain: false retain: false
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
# Automations: Various automations to query and issue commands to Raspberry Pis # Automations: Various automations to query and issue commands to Raspberry Pis
############################################################################### ###############################################################################
automation: automation:
# Queries WiFi Signal Level and Link Quality - it loads during startup, and
# Queries WiFi Signal Level and Link Quality - it loads during startup, and # updates once every 30 minutes
# updates once every 30 minutes ###############################################################################
###############################################################################
- alias: Query RPi Wifi Data - alias: Query RPi Wifi Data
initial_state: true initial_state: true
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/30' minutes: "/30"
- platform: homeassistant - platform: homeassistant
event: start event: start
action: action:
- service: script.query_wifi_info - service: script.query_wifi_info
# Queries Disk Available and % Used - it loads during startup, and # Queries Disk Available and % Used - it loads during startup, and
# updates once every 30 minutes # updates once every 30 minutes
############################################################################### ###############################################################################
- alias: Query RPi Disk Data - alias: Query RPi Disk Data
initial_state: true initial_state: true
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: '/30' minutes: "/30"
- platform: homeassistant - platform: homeassistant
event: start event: start
action: action:
- service: script.query_disk_info - service: script.query_disk_info
# Issues commands to Raspberry Pi via MQTT - On Demand # Issues commands to Raspberry Pi via MQTT - On Demand
############################################################################### ###############################################################################
- alias: Raspberry Pi Command - alias: Raspberry Pi Command
initial_state: true initial_state: true
trigger: trigger:
@ -536,18 +534,18 @@ automation:
entity_id: input_select.rpi_commands entity_id: input_select.rpi_commands
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_select.raspberry_pis.state | lower != "select one" }}' value_template: "{{ states('input_select.raspberry_pis') | lower != 'select one' }}"
- condition: template - condition: template
value_template: '{{ states.input_select.rpi_commands.state | lower != "select one" }}' value_template: "{{ states('input_select.rpi_commands') | lower != 'select one' }}"
action: action:
service: mqtt.publish service: mqtt.publish
data_template: data_template:
retain: false retain: false
topic: "{{ '/server/' ~ states.input_select.raspberry_pis.state }}" topic: "{{ '/server/' ~ states('input_select.raspberry_pis') }}"
payload: >- payload: >-
{% if states.input_select.rpi_commands.state | lower == "restart server" %} {% if states('input_select.rpi_commands') | lower == "restart server" %}
CMD_REBOOT_PI CMD_REBOOT_PI
{% elif states.input_select.rpi_commands.state | lower == "restart snapcast" %} {% elif states('input_select.rpi_commands') | lower == "restart snapcast" %}
CMD_RESTART_SNAPCLIENT CMD_RESTART_SNAPCLIENT
{% else %} {% else %}
CMD_SHUTDOWN_PI CMD_SHUTDOWN_PI

View File

@ -76,12 +76,12 @@ sensor:
- platform: template - platform: template
sensors: sensors:
nas_memory_usage_above_80: nas_memory_usage_above_80:
value_template: '{{ states.sensor.kalavala_nas_memory_usage.state | int > 80 }}' value_template: "{{ states('sensor.kalavala_nas_memory_usage') | int > 80 }}"
- platform: template - platform: template
sensors: sensors:
nas_cpu_usage_above_80: nas_cpu_usage_above_80:
value_template: '{{ states.sensor.kalavala_nas_cpu_usage.state | int > 80 }}' value_template: "{{ states('sensor.kalavala_nas_cpu_usage') | int > 80 }}"
############################################################################### ###############################################################################
# _ _ _ # _ _ _

View File

@ -29,4 +29,4 @@
# - service: persistent_notification.create # - service: persistent_notification.create
# data: # data:
# title: 'Quote:' # title: 'Quote:'
# message: '{{ states.sensor.quote_of_the_day.state }}' # message: '{{ states('sensor.quote_of_the_day') }}'

View File

@ -9,7 +9,7 @@
# ############################################################################### # ###############################################################################
# homeassistant: # homeassistant:
# customize: # customize:
# group.etekcity_rf_switches: # group.etekcity_rf_switches:
# order: 13 # order: 13
@ -38,7 +38,7 @@
# ############################################################################### # ###############################################################################
# # RF Switches # # RF Switches
# ############################################################################### # ###############################################################################
# switch: # switch:
# - platform: rpi_rf # - platform: rpi_rf
# gpio: 17 # gpio: 17
# switches: # switches:
@ -71,22 +71,22 @@
# state_topic: "/home/rfswitches/switch_one" # state_topic: "/home/rfswitches/switch_one"
# name: "RF Switch One" # name: "RF Switch One"
# value_template: "{{ value }}" # value_template: "{{ value }}"
# - platform: mqtt # - platform: mqtt
# state_topic: "/home/rfswitches/switch_two" # state_topic: "/home/rfswitches/switch_two"
# name: "RF Switch Two" # name: "RF Switch Two"
# value_template: "{{ value }}" # value_template: "{{ value }}"
# - platform: mqtt # - platform: mqtt
# state_topic: "/home/rfswitches/switch_three" # state_topic: "/home/rfswitches/switch_three"
# name: "RF Switch Three" # name: "RF Switch Three"
# value_template: "{{ value }}" # value_template: "{{ value }}"
# - platform: mqtt # - platform: mqtt
# state_topic: "/home/rfswitches/switch_four" # state_topic: "/home/rfswitches/switch_four"
# name: "RF Switch Four" # name: "RF Switch Four"
# value_template: "{{ value }}" # value_template: "{{ value }}"
# - platform: mqtt # - platform: mqtt
# state_topic: "/home/rfswitches/switch_five" # state_topic: "/home/rfswitches/switch_five"
# name: "RF Switch Five" # name: "RF Switch Five"
@ -103,7 +103,7 @@
# hide_entity: true # hide_entity: true
# trigger: # trigger:
# platform: state # platform: state
# entity_id: # entity_id:
# - switch.switch_one # - switch.switch_one
# - switch.switch_two # - switch.switch_two
# - switch.switch_three # - switch.switch_three
@ -123,7 +123,7 @@
# hide_entity: true # hide_entity: true
# trigger: # trigger:
# platform: state # platform: state
# entity_id: # entity_id:
# - sensor.rf_switch_one # - sensor.rf_switch_one
# - sensor.rf_switch_two # - sensor.rf_switch_two
# - sensor.rf_switch_three # - sensor.rf_switch_three
@ -152,38 +152,38 @@
# - delay: # - delay:
# minutes: 1 # minutes: 1
# - service_template: > # - service_template: >
# {%- if states.sensor.rf_switch_one.state | lower == "on" -%} # {%- if states('sensor.rf_switch_one') | lower == "on" -%}
# homeassistant.turn_on # homeassistant.turn_on
# {%- else -%} # {%- else -%}
# homeassistant.turn_off # homeassistant.turn_off
# {%- endif -%} # {%- endif -%}
# entity_id: switch.switch_one # entity_id: switch.switch_one
# - service_template: > # - service_template: >
# {%- if states.sensor.rf_switch_two.state | lower == "on" -%} # {%- if states('sensor.rf_switch_two') | lower == "on" -%}
# homeassistant.turn_on # homeassistant.turn_on
# {%- else -%} # {%- else -%}
# homeassistant.turn_off # homeassistant.turn_off
# {%- endif -%} # {%- endif -%}
# entity_id: switch.switch_two # entity_id: switch.switch_two
# - service_template: > # - service_template: >
# {%- if states.sensor.rf_switch_three.state | lower == "on" -%} # {%- if states('sensor.rf_switch_three') | lower == "on" -%}
# homeassistant.turn_on # homeassistant.turn_on
# {%- else -%} # {%- else -%}
# homeassistant.turn_off # homeassistant.turn_off
# {%- endif -%} # {%- endif -%}
# entity_id: switch.switch_three # entity_id: switch.switch_three
# - service_template: > # - service_template: >
# {%- if states.sensor.rf_switch_four.state | lower == "on" -%} # {%- if states('sensor.rf_switch_four') | lower == "on" -%}
# homeassistant.turn_on # homeassistant.turn_on
# {%- else -%} # {%- else -%}
# homeassistant.turn_off # homeassistant.turn_off
# {%- endif -%} # {%- endif -%}
# entity_id: switch.switch_four # entity_id: switch.switch_four
# - service_template: > # - service_template: >
# {%- if states.sensor.rf_switch_five.state | lower == "on" -%} # {%- if states('sensor.rf_switch_five') | lower == "on" -%}
# homeassistant.turn_on # homeassistant.turn_on
# {%- else -%} # {%- else -%}
# homeassistant.turn_off # homeassistant.turn_off
# {%- endif -%} # {%- endif -%}
# data: # data:
# entity_id: switch.switch_five # entity_id: switch.switch_five

View File

@ -22,6 +22,7 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
initial: "22:00:00" initial: "22:00:00"
autumn_wakeup_time: autumn_wakeup_time:
name: Autumn Wakeup Time name: Autumn Wakeup Time
has_date: false has_date: false
@ -33,6 +34,7 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
initial: "22:00:00" initial: "22:00:00"
winter_wakeup_time: winter_wakeup_time:
name: Winter Wakeup Time name: Winter Wakeup Time
has_date: false has_date: false
@ -44,6 +46,7 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
initial: "22:00:00" initial: "22:00:00"
spring_wakeup_time: spring_wakeup_time:
name: Spring Wakeup Time name: Spring Wakeup Time
has_date: false has_date: false
@ -72,56 +75,56 @@ sensor:
wakeup_hour: wakeup_hour:
friendly_name: Wakeup Hour friendly_name: Wakeup Hour
value_template: > value_template: >
{% if states.sensor.season.state | lower == "summer" %} {% if states('sensor.season') | lower == "summer" %}
{{ states.input_datetime.summer_wakeup_time.state.split(':')[0] }} {{ states('input_datetime.summer_wakeup_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "autumn" %} {% elif states('sensor.season') | lower == "autumn" %}
{{ states.input_datetime.autumn_wakeup_time.state.split(':')[0] }} {{ states('input_datetime.autumn_wakeup_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "winter" %} {% elif states('sensor.season') | lower == "winter" %}
{{ states.input_datetime.winter_wakeup_time.state.split(':')[0] }} {{ states('input_datetime.winter_wakeup_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "spring" %} {% elif states('sensor.season') | lower == "spring" %}
{{ states.input_datetime.spring_wakeup_time.state.split(':')[0] }} {{ states('input_datetime.spring_wakeup_time').split(':')[0] }}
{% else %} {% else %}
6 6
{% endif %} {% endif %}
wakeup_minute: wakeup_minute:
friendly_name: Wakeup Minute friendly_name: Wakeup Minute
value_template: > value_template: >
{% if states.sensor.season.state | lower == "summer" %} {% if states('sensor.season') | lower == "summer" %}
{{ states.input_datetime.summer_wakeup_time.state.split(':')[1] }} {{ states('input_datetime.summer_wakeup_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "autumn" %} {% elif states('sensor.season') | lower == "autumn" %}
{{ states.input_datetime.autumn_wakeup_time.state.split(':')[1] }} {{ states('input_datetime.autumn_wakeup_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "winter" %} {% elif states('sensor.season') | lower == "winter" %}
{{ states.input_datetime.winter_wakeup_time.state.split(':')[1] }} {{ states('input_datetime.winter_wakeup_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "spring" %} {% elif states('sensor.season') | lower == "spring" %}
{{ states.input_datetime.spring_wakeup_time.state.split(':')[1] }} {{ states('input_datetime.spring_wakeup_time').split(':')[1] }}
{% else %} {% else %}
0 0
{% endif %} {% endif %}
bedtime_hour: bedtime_hour:
friendly_name: Bedtime Hour friendly_name: Bedtime Hour
value_template: > value_template: >
{% if states.sensor.season.state | lower == "summer" %} {% if states('sensor.season') | lower == "summer" %}
{{ states.input_datetime.summer_bed_time.state.split(':')[0] }} {{ states('input_datetime.summer_bed_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "autumn" %} {% elif states('sensor.season') | lower == "autumn" %}
{{ states.input_datetime.autumn_bed_time.state.split(':')[0] }} {{ states('input_datetime.autumn_bed_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "winter" %} {% elif states('sensor.season') | lower == "winter" %}
{{ states.input_datetime.winter_bed_time.state.split(':')[0] }} {{ states('input_datetime.winter_bed_time').split(':')[0] }}
{% elif states.sensor.season.state | lower == "spring" %} {% elif states('sensor.season') | lower == "spring" %}
{{ states.input_datetime.spring_bed_time.state.split(':')[0] }} {{ states('input_datetime.spring_bed_time').split(':')[0] }}
{% else %} {% else %}
0 0
{% endif %} {% endif %}
bedtime_minute: bedtime_minute:
friendly_name: Bedtime Minute friendly_name: Bedtime Minute
value_template: > value_template: >
{% if states.sensor.season.state | lower == "summer" %} {% if states('sensor.season') | lower == "summer" %}
{{ states.input_datetime.summer_bed_time.state.split(':')[1] }} {{ states('input_datetime.summer_bed_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "autumn" %} {% elif states('sensor.season') | lower == "autumn" %}
{{ states.input_datetime.autumn_bed_time.state.split(':')[1] }} {{ states('input_datetime.autumn_bed_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "winter" %} {% elif states('sensor.season') | lower == "winter" %}
{{ states.input_datetime.winter_bed_time.state.split(':')[1] }} {{ states('input_datetime.winter_bed_time').split(':')[1] }}
{% elif states.sensor.season.state | lower == "spring" %} {% elif states('sensor.season') | lower == "spring" %}
{{ states.input_datetime.spring_bed_time.state.split(':')[1] }} {{ states('input_datetime.spring_bed_time').split(':')[1] }}
{% else %} {% else %}
0 0
{% endif %} {% endif %}
@ -148,7 +151,7 @@ input_boolean:
stream_camera2chromecast: stream_camera2chromecast:
name: Stream Cameras to Chromecast name: Stream Cameras to Chromecast
icon: mdi:cctv icon: mdi:cctv
initial: off initial: on
home_security: home_security:
name: Home Security System name: Home Security System

View File

@ -1007,4 +1007,3 @@
# data_template: # data_template:
# entity_id: climate.cooler_fan # entity_id: climate.cooler_fan
# temperature: "{{ states.climate.main_floor.temperature |float }}" # temperature: "{{ states.climate.main_floor.temperature |float }}"

View File

@ -16,19 +16,19 @@ input_number:
initial: 0.3 initial: 0.3
min: 0 min: 0
max: 1 max: 1
step: 0.1 step: 0.1
tts_volume_level_afternoon: tts_volume_level_afternoon:
name: Afternoon TTS Volume name: Afternoon TTS Volume
initial: 0.5 initial: 0.5
min: 0 min: 0
max: 1 max: 1
step: 0.1 step: 0.1
tts_volume_level_evening: tts_volume_level_evening:
name: Evening TTS Volume name: Evening TTS Volume
initial: 0.3 initial: 0.3
min: 0 min: 0
max: 1 max: 1
step: 0.1 step: 0.1
tts_volume_level_alert: tts_volume_level_alert:
name: TTS Volume Alert Mode name: TTS Volume Alert Mode
initial: 1 initial: 1
@ -37,10 +37,9 @@ input_number:
step: 0.1 step: 0.1
automation: automation:
###############################################################################
############################################################################### # The text entered in the text box will be announced in the house
# The text entered in the text box will be announced in the house ###############################################################################
###############################################################################
- alias: Text Changed Event - alias: Text Changed Event
initial_state: true initial_state: true
trigger: trigger:
@ -50,4 +49,4 @@ automation:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: "{{ trigger.to_state.state }}" message: "{{ trigger.to_state.state }}"
greeting: "{{ 'yes' if states.input_boolean.greeting.state == 'on' else 'no' }}" greeting: "{{ 'yes' if states('input_boolean.greeting') == 'on' else 'no' }}"

View File

@ -14,13 +14,13 @@ homeassistant:
sensor: sensor:
- platform: mqtt - platform: mqtt
name: 'USPS Mail' name: "USPS Mail"
state_topic: '/usps/mails' state_topic: "/usps/mails"
value_template: "{{ value }}" value_template: "{{ value }}"
- platform: mqtt - platform: mqtt
name: USPS Packages name: USPS Packages
state_topic: '/usps/packages' state_topic: "/usps/packages"
value_template: "{{ value }}" value_template: "{{ value }}"
camera: camera:
@ -29,18 +29,17 @@ camera:
still_image_url: !secret usps_camera_url still_image_url: !secret usps_camera_url
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
# Notify USPS mails via TTS, and iOS notification with attachment
# Notify USPS mails via TTS, and iOS notification with attachment ###############################################################################
###############################################################################
- alias: Notify USPS Mail - alias: Notify USPS Mail
initial_state: true initial_state: true
trigger: trigger:
@ -48,21 +47,23 @@ automation:
entity_id: sensor.usps_mail entity_id: sensor.usps_mail
condition: condition:
- condition: template - condition: template
value_template: '{{ states.sensor.usps_mail.state | int > 0 }}' value_template: "{{ states('sensor.usps_mail') != 'unknown' }}"
- condition: template - condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}' value_template: "{{ states('sensor.usps_mail') | int > 0 }}"
- condition: template
value_template: "{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}"
action: action:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: > message: >
{%- if states.sensor.usps_mail.state | int == 1 -%} {%- if states('sensor.usps_mail') | int == 1 -%}
Attention: USPS is delivering {{ states.sensor.usps_mail.state }} mail today. Attention: USPS is delivering {{ states('sensor.usps_mail') }} mail today.
{%- else -%} {%- else -%}
Attention: USPS is delivering {{ states.sensor.usps_mail.state }} mails today. Attention: USPS is delivering {{ states('sensor.usps_mail') }} mails today.
{%- endif -%} {%- endif -%}
- service: notify.ios_devices - service: notify.ios_devices
data_template: data_template:
message: "USPS will be delivering {{ states.sensor.usps_mail.state }} mail(s) today." message: "USPS will be delivering {{ states('sensor.usps_mail') }} mail(s) today."
data: data:
push: push:
category: camera category: camera
@ -71,8 +72,8 @@ automation:
url: "{{ state_attr('camera.usps_mail_pictures', 'entity_picture') }}" url: "{{ state_attr('camera.usps_mail_pictures', 'entity_picture') }}"
content-type: jpg content-type: jpg
# Notify USPS packages via TTS. Usually there are no pictures for packages # Notify USPS packages via TTS. Usually there are no pictures for packages
############################################################################### ###############################################################################
- alias: Notify USPS Packages - alias: Notify USPS Packages
initial_state: true initial_state: true
trigger: trigger:
@ -80,15 +81,17 @@ automation:
entity_id: sensor.usps_packages entity_id: sensor.usps_packages
condition: condition:
- condition: template - condition: template
value_template: '{{ states.sensor.usps_packages.state | int > 0 }}' value_template: "{{ states('sensor.usps_packages') != 'unknown' }}"
- condition: template - condition: template
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}' value_template: "{{ states('sensor.usps_packages') | int > 0 }}"
- condition: template
value_template: "{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}"
action: action:
- service: script.voice_notify - service: script.voice_notify
data_template: data_template:
message: > message: >
{%- if states.sensor.usps_packages.state | int == 1 -%} {%- if states('sensor.usps_packages') | int == 1 -%}
Attention: USPS is delivering {{ states.sensor.usps_packages.state }} package today. Attention: USPS is delivering {{ states('sensor.usps_packages') }} package today.
{%- else -%} {%- else -%}
Attention: USPS is delivering {{ states.sensor.usps_packages.state }} packages today. Attention: USPS is delivering {{ states('sensor.usps_packages') }} packages today.
{%- endif -%} {%- endif -%}

View File

@ -58,11 +58,6 @@ homeassistant:
icon: mdi:weather-windy-variant icon: mdi:weather-windy-variant
homebridge_hidden: true homebridge_hidden: true
camera:
- platform: generic
name: Ohio Doppler Weather
still_image_url: !secret ohio_doppler_weather
input_boolean: input_boolean:
nice_breeze_alert: nice_breeze_alert:
name: Nice Breeze Alert name: Nice Breeze Alert
@ -121,8 +116,8 @@ weather:
- platform: darksky - platform: darksky
api_key: !secret darksky_api_key api_key: !secret darksky_api_key
openuv: # openuv:
api_key: !secret openuv_apikey # api_key: !secret openuv_apikey
# iqvia: # iqvia:
# zip_code: !secret zip_code # zip_code: !secret zip_code
@ -355,13 +350,13 @@ automation:
{%- elif curState == "sleet" %} {%- elif curState == "sleet" %}
input_boolean.sleet_alert input_boolean.sleet_alert
{%- endif %} {%- endif %}
# - alias: Update OpenUV every hour (24 of 50 calls per day)
# trigger:
# platform: time_pattern
# minutes: "/60"
# action:
# service: openuv.update_data
- alias: Update OpenUV every hour (24 of 50 calls per day)
trigger:
platform: time_pattern
minutes: "/60"
action:
service: openuv.update_data
# Weather sensors - TBD, too lazy to create them # Weather sensors - TBD, too lazy to create them
# #
# {{ states.sun.sun.state }} # {{ states.sun.sun.state }}

View File

@ -35,13 +35,13 @@ automation:
seconds: 00 seconds: 00
condition: condition:
- condition: template - condition: template
value_template: '{{ states.binary_sensor.workday_sensor.state == "on" }}' value_template: "{{ states('binary_sensor.workday_sensor') == 'on' }}"
- condition: template - condition: template
value_template: "{{ now().hour|int >= 10 and now().hour|int < 17 }}" value_template: "{{ now().hour|int >= 10 and now().hour|int < 17 }}"
- condition: template - condition: template
value_template: '{{ states.timer.wfh_timer.state == "idle" }}' value_template: "{{ states('timer.wfh_timer') == 'idle' }}"
- condition: template - condition: template
value_template: '{{ states.device_tracker.life360_suresh.state == "home" }}' value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
action: action:
- service: timer.start - service: timer.start
entity_id: timer.wfh_timer entity_id: timer.wfh_timer
@ -81,7 +81,7 @@ automation:
event: leave event: leave
condition: condition:
- condition: template - condition: template
value_template: '{{ states.timer.wfh_timer.state == "active" }}' value_template: "{{ states('timer.wfh_timer') == 'active' }}"
action: action:
- service: timer.cancel - service: timer.cancel
entity_id: timer.wfh_timer entity_id: timer.wfh_timer

View File

@ -107,7 +107,7 @@ automation:
message: >- message: >-
{{ trigger.entity_id.split('.')[1].split('_')[1] | title }} just left {{ trigger.zone.attributes.friendly_name }}. {{ trigger.entity_id.split('.')[1].split('_')[1] | title }} just left {{ trigger.zone.attributes.friendly_name }}.
{% if trigger.entity_id.split('.')[1].split('_')[1] == "suresh" and trigger.zone.attributes.friendly_name | lower == "office" %} {% if trigger.entity_id.split('.')[1].split('_')[1] == "suresh" and trigger.zone.attributes.friendly_name | lower == "office" %}
and will be home in {{ (states.sensor.suresh2home.state | int) + 5 }} minutes. and will be home in {{ (states('sensor.suresh2home') | int) + 5 }} minutes.
{% endif %} {% endif %}
greeting: "no" greeting: "no"
@ -154,13 +154,13 @@ automation:
seconds: "/30" seconds: "/30"
condition: condition:
- condition: template - condition: template
value_template: '{{ states.input_boolean.home_mode_away.state == "off" }}' value_template: "{{ states('input_boolean.home_mode_away') == 'off' }}"
- condition: template - condition: template
value_template: > value_template: >
{% set suresh = states.device_tracker.life360_suresh.state %} {% set suresh = states('device_tracker.life360_suresh') %}
{% set mallika = states.device_tracker.life360_mallika.state %} {% set mallika = states('device_tracker.life360_mallika') %}
{% set srinika = states.device_tracker.life360_srinika.state %} {% set srinika = states('device_tracker.life360_srinika') %}
{% set hasika = states.device_tracker.life360_hasika.state %} {% set hasika = states('device_tracker.life360_hasika') %}
{% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %} {% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %}
True True
{% else %} {% else %}
@ -198,10 +198,10 @@ automation:
message: "Suresh is on his way home, he is within the 5 miles range. Should be home soon!" message: "Suresh is on his way home, he is within the 5 miles range. Should be home soon!"
- condition: template - condition: template
value_template: > value_template: >
{% set suresh = states.device_tracker.life360_suresh.state %} {% set suresh = states('device_tracker.life360_suresh') %}
{% set mallika = states.device_tracker.life360_mallika.state %} {% set mallika = states('device_tracker.life360_mallika') %}
{% set srinika = states.device_tracker.life360_srinika.state %} {% set srinika = states('device_tracker.life360_srinika') %}
{% set hasika = states.device_tracker.life360_hasika.state %} {% set hasika = states('device_tracker.life360_hasika') %}
{% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %} {% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %}
True True
{% else %} {% else %}

View File

@ -33,13 +33,13 @@ input_label:
hasika_wifi: hasika_wifi:
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
@ -100,11 +100,11 @@ automation:
data_template: data_template:
entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_wifi" entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_wifi"
value: "{{trigger.topic.split('/')[-1] | title }}'s phone wifi enabled?" value: "{{trigger.topic.split('/')[-1] | title }}'s phone wifi enabled?"
- service: input_label.set_value - service: input_label.set_value
data_template: data_template:
entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery" entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery"
value: '{{ trigger.payload_json.batt | int }}' value: "{{ trigger.payload_json.batt | int }}"
- service: input_label.set_name - service: input_label.set_name
data_template: data_template:
entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery" entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery"
@ -113,22 +113,22 @@ automation:
data_template: data_template:
entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery" entity_id: "input_label.{{trigger.topic.split('/')[-1]}}_battery"
value: > value: >
{% set battery_level = trigger.payload_json.batt | int %} {% set battery_level = trigger.payload_json.batt | int %}
{% set battery_round = (battery_level / 10)|int * 10 %} {% set battery_round = (battery_level / 10)|int * 10 %}
{% if trigger.payload_json.charging == 1 %} {% if trigger.payload_json.charging == 1 %}
{% if battery_round >= 100 %} {% if battery_round >= 100 %}
mdi:battery-charging-100 mdi:battery-charging-100
{% elif battery_round > 0 %} {% elif battery_round > 0 %}
mdi:battery-charging-{{ battery_round }} mdi:battery-charging-{{ battery_round }}
{% else %}
mdi:battery-alert
{% endif %}
{% else %} {% else %}
{% if battery_round >= 100 %} mdi:battery-alert
mdi:battery {% endif %}
{% elif battery_round > 0 %} {% else %}
mdi:battery-{{ battery_round }} {% if battery_round >= 100 %}
{% else %} mdi:battery
mdi:battery-alert {% elif battery_round > 0 %}
{% endif %} mdi:battery-{{ battery_round }}
{% endif %} {% else %}
mdi:battery-alert
{% endif %}
{% endif %}

View File

@ -10,8 +10,7 @@
homeassistant: homeassistant:
customize: customize:
# ZWave Binary Sensors
# ZWave Binary Sensors
binary_sensor.aeotec_water_sensor_sensor: binary_sensor.aeotec_water_sensor_sensor:
friendly_name: Aeotec Water Sensor friendly_name: Aeotec Water Sensor
## <<: *not_exposed ## <<: *not_exposed
@ -58,7 +57,7 @@ homeassistant:
friendly_name: Upstairs Multi Sensor friendly_name: Upstairs Multi Sensor
## <<: *not_exposed ## <<: *not_exposed
# ZWave Sensors # ZWave Sensors
sensor.aeotec_water_sensor_alarm_level: sensor.aeotec_water_sensor_alarm_level:
friendly_name: Aeotec Water Sensor Alarm Level friendly_name: Aeotec Water Sensor Alarm Level
# <<: *not_exposed # <<: *not_exposed
@ -402,7 +401,7 @@ homeassistant:
friendly_name: ZWave Smart Switch Voltage friendly_name: ZWave Smart Switch Voltage
# <<: *not_exposed # <<: *not_exposed
# ZWave Switches # ZWave Switches
switch.kitchen_siren_switch: switch.kitchen_siren_switch:
friendly_name: Kitchen Siren Switch 1 friendly_name: Kitchen Siren Switch 1
@ -428,16 +427,15 @@ zwave:
network_key: !secret zwave_network_key network_key: !secret zwave_network_key
############################################################################### ###############################################################################
# _ _ _ # _ _ _
# /\ | | | | (_) # /\ | | | | (_)
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
# #
############################################################################### ###############################################################################
automation: automation:
- alias: WallMote Button 1 Pressed - alias: WallMote Button 1 Pressed
trigger: trigger:
- platform: event - platform: event
@ -471,7 +469,7 @@ automation:
- service: climate.set_away_mode - service: climate.set_away_mode
data_template: data_template:
entity_id: climate.dining_room entity_id: climate.dining_room
away_mode: 'false' away_mode: "false"
- alias: WallMote Button 4 Pressed - alias: WallMote Button 4 Pressed
trigger: trigger:
@ -484,4 +482,4 @@ automation:
- service: climate.set_away_mode - service: climate.set_away_mode
data_template: data_template:
entity_id: climate.dining_room entity_id: climate.dining_room
away_mode: 'true' away_mode: "true"

View File

@ -1,10 +1,10 @@
> >
{% macro weather_update() -%} {% macro weather_update() -%}
Outside temperature is {{ states.sensor.dark_sky_apparent_temperature.state | round(0) }} degrees. Outside temperature is {{ states('sensor.dark_sky_apparent_temperature') | round(0) }} degrees.
{%- endmacro -%} {%- endmacro -%}
{%- macro uv_levels() -%} {%- macro uv_levels() -%}
{%- set uv = states.sensor.pws_uv.state | int -%} {%- set uv = states('sensor.pws_uv') | int -%}
{%- if uv >= 6 and uv <= 7 -%} {%- if uv >= 6 and uv <= 7 -%}
Current UV index is high. Please be careful outdoors. Current UV index is high. Please be careful outdoors.
{%- elif uv >= 8 and uv <= 10 -%} {%- elif uv >= 8 and uv <= 10 -%}
@ -15,47 +15,47 @@
Good UV levels. Good UV levels.
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro USPS() -%} {%- macro USPS() -%}
USPS is going to deliver {{ states.sensor.usps_mail.state }} mails today. USPS is going to deliver {{ states('sensor.usps_mail') }} mails today.
{%- endmacro -%} {%- endmacro -%}
{%- macro alert_battery_levels() %} {%- macro alert_battery_levels() %}
{% for item in states if 'battery_level' in item.attributes and item.attributes.battery_level | int > 0 and item.attributes.battery_level | float <= 10.0 -%}{{- item.attributes.friendly_name ~ " battery is less than 10 percent" -}} {% for item in states if 'battery_level' in item.attributes and item.attributes.battery_level | int > 0 and item.attributes.battery_level | float <= 10.0 -%}{{- item.attributes.friendly_name ~ " battery is less than 10 percent" -}}
{%- if loop.first %}, {% elif loop.last %}, {% else %}, {% endif -%} {%- if loop.first %}, {% elif loop.last %}, {% else %}, {% endif -%}
{%- endfor -%} {%- endfor -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro tesla_status() -%} {%- macro tesla_status() -%}
{%- if states("sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor") != "unknown" -%} {%- if states("sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor") != "unknown" -%}
Your Tesla car battery is at {{ states.sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor.state }} percent ({{ (states.sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor.state | int) | round(0) }} miles). Your Tesla car battery is at {{ states('sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor') }} percent ({{ (states('sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor') | int) | round(0) }} miles).
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro pollen_levels() -%} {%- macro pollen_levels() -%}
Pollen level is {{ states.sensor.pollen_level.state }}. Pollen level is {{ states('sensor.pollen_level') }}.
{%- endmacro -%} {%- endmacro -%}
{%- macro humidity_status() -%} {%- macro humidity_status() -%}
Home humidity is {{ states('sensor.dining_room_thermostat_humidity') }} percent. Home humidity is {{ states('sensor.dining_room_thermostat_humidity') }} percent.
{%- endmacro -%} {%- endmacro -%}
{%- macro alarm_status() -%} {%- macro alarm_status() -%}
Your home is {{ "SECURED!" if states('alarm_control_panel.simplisafe') == "armed_away" or states('alarm_control_panel.simplisafe') == "armed_home" else "UNSECURED!" }} Your home is {{ "SECURED!" if states('alarm_control_panel.simplisafe') == "armed_away" or states('alarm_control_panel.simplisafe') == "armed_home" else "UNSECURED!" }}
{%- endmacro -%} {%- endmacro -%}
{%- macro single_car_garage_door_status() -%} {%- macro single_car_garage_door_status() -%}
{%- if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state|lower == "on" -%} {%- if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') |lower == "on" -%}
{{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN {{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro two_car_garage_door_status() -%} {%- macro two_car_garage_door_status() -%}
{% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state|lower == "on" %} {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') |lower == "on" %}
{{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN {{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN
{% endif %} {% endif %}
{%- endmacro -%} {%- endmacro -%}
{%- macro garage_status() -%} {%- macro garage_status() -%}
{%- set single_car_garage = single_car_garage_door_status() -%} {%- set single_car_garage = single_car_garage_door_status() -%}
{%- set two_car_garage = two_car_garage_door_status() -%} {%- set two_car_garage = two_car_garage_door_status() -%}
@ -67,11 +67,11 @@
Warning! {{ single_car_garage }} {{ two_car_garage }} Warning! {{ single_car_garage }} {{ two_car_garage }}
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro plural(name) -%} {%- macro plural(name) -%}
{{- "true" if name.endswith("s") else "false" -}} {{- "true" if name.endswith("s") else "false" -}}
{%- endmacro -%} {%- endmacro -%}
{%- macro light_status() -%} {%- macro light_status() -%}
{%- set lights_switches = ["light.family_room", {%- set lights_switches = ["light.family_room",
"light.master_bedroom", "light.master_bedroom",
@ -94,7 +94,7 @@
{% endif %} {% endif %}
{%- endfor -%} {%- endfor -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro mother_of_all_macros() -%} {%- macro mother_of_all_macros() -%}
{{ alarm_status() }} {{ alarm_status() }}
{{ garage_status() }} {{ garage_status() }}
@ -107,5 +107,5 @@
{{ alert_battery_levels() }} {{ alert_battery_levels() }}
{{ light_status() }} {{ light_status() }}
{%- endmacro -%} {%- endmacro -%}
{{- mother_of_all_macros() -}} {{- mother_of_all_macros() -}}

View File

@ -46,23 +46,23 @@
{#- Provides Home Security System Status -#} {#- Provides Home Security System Status -#}
{%- macro alarm_status() -%} {%- macro alarm_status() -%}
{%- if states.alarm_control_panel.simplisafe.state | lower == "disarmed" -%} {%- if states('alarm_control_panel.simplisafe') | lower == "disarmed" -%}
Your home security system is switched OFF. You may want to turn it ON. Your home security system is switched OFF. You may want to turn it ON.
{%- elif states.alarm_control_panel.simplisafe.state | lower == "armed_away" -%} {%- elif states('alarm_control_panel.simplisafe') | lower == "armed_away" -%}
Your home security system is set to away mode. Your home security system is set to away mode.
{%- elif states.alarm_control_panel.simplisafe.state | lower == "armed_home" -%} {%- elif states('alarm_control_panel.simplisafe') | lower == "armed_home" -%}
Your home security system is ON, and your home is secured. Your home security system is ON, and your home is secured.
{%- endif %} {%- endif %}
{%- endmacro -%} {%- endmacro -%}
{#- Provides Trash and Recycle Reminder -#} {#- Provides Trash and Recycle Reminder -#}
{%- macro trash_recycle_status() -%} {%- macro trash_recycle_status() -%}
{%- set flag = false -%} {%- set flag = false -%}
{%- if states.sensor.trash_day.state | lower == "yes" -%} {%- if states('sensor.trash_day') | lower == "yes" -%}
Your trash will be picked up tomorrow. Did you leave the trash bin outside?. Your trash will be picked up tomorrow. Did you leave the trash bin outside?.
{%- set flag = true -%} {%- set flag = true -%}
{%- endif %} {%- endif %}
{%- if states.sensor.recycle_day.state | lower == "yes" -%} {%- if states('sensor.recycle_day') | lower == "yes" -%}
{%- if flag -%} {%- if flag -%}
Also, your recycle stuff will be picked up tomorrow as well! Please leave both recycle bin and trash cans outside if you haven't!. Also, your recycle stuff will be picked up tomorrow as well! Please leave both recycle bin and trash cans outside if you haven't!.
{%- else -%} {%- else -%}
@ -70,19 +70,19 @@
{%- endif -%} {%- endif -%}
{%- endif %} {%- endif %}
{%- endmacro -%} {%- endmacro -%}
{%- macro outside_weather() -%} {%- macro outside_weather() -%}
{%- if states('sensor.dark_sky_minutely_summary') != "unknown" -%} {%- if states('sensor.dark_sky_minutely_summary') != "unknown" -%}
Outside, it is going to be {{states('sensor.dark_sky_minutely_summary')}}. Outside, it is going to be {{states('sensor.dark_sky_minutely_summary')}}.
{%- endif -%} {%- endif -%}
{%- if states('sensor.dark_sky_apparent_temperature') != "unknown" %} {%- if states('sensor.dark_sky_apparent_temperature') != "unknown" %}
The temperature outside is around {{ states.sensor.dark_sky_apparent_temperature.state | round(0)}} degrees. The temperature outside is around {{ states('sensor.dark_sky_apparent_temperature') | round(0)}} degrees.
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
{%- macro pihole() -%} {%- macro pihole() -%}
{%- if states.sensor.ads_blocked_today.state|int > 100 -%} {%- if states('sensor.ads_blocked_today') |int > 100 -%}
Our internet blocking system has blocked {{states.sensor.ads_blocked_today.state}} ads today. Our internet blocking system has blocked {{states('sensor.ads_blocked_today') }} ads today.
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
@ -103,35 +103,35 @@
{#- Provides Garage Doors Status -#} {#- Provides Garage Doors Status -#}
{%- macro single_car_garage_door_status() -%} {%- macro single_car_garage_door_status() -%}
{% if states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.state|lower == "on" %} {% if states('binary_sensor.single_car_garage_door_tilt_sensor_sensor') |lower == "on" %}
{{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN {{ states.binary_sensor.single_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN
{% endif %} {% endif %}
{%- endmacro -%} {%- endmacro -%}
{%- macro two_car_garage_door_status() -%} {%- macro two_car_garage_door_status() -%}
{% if states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.state|lower == "on" %} {% if states('binary_sensor.two_car_garage_door_tilt_sensor_sensor') |lower == "on" %}
{{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN {{ states.binary_sensor.two_car_garage_door_tilt_sensor_sensor.attributes.friendly_name }} is OPEN
{% endif %} {% endif %}
{%- endmacro -%} {%- endmacro -%}
{%- macro tesla_status() %} {%- macro tesla_status() %}
{%- if states("binary_sensor.tesla_model_3_5yj3e1ea8jf010610_charger_sensor") != "unknown" -%} {%- if states("binary_sensor.tesla_model_3_5yj3e1ea8jf010610_charger_sensor") != "unknown" -%}
Your Tesla Car is {{ 'not' if states.binary_sensor.tesla_model_3_5yj3e1ea8jf010610_charger_sensor.state == "off" }} plugged in. Your Tesla Car is {{ 'not' if states('binary_sensor.tesla_model_3_5yj3e1ea8jf010610_charger_sensor') == "off" }} plugged in.
{% endif %} {% endif %}
{%- if states("sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor") != "unknown" and states("sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor") != "unknown" and states('sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor') | int > 0 -%} {%- if states("sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor") != "unknown" and states("sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor") != "unknown" and states('sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor') | int > 0 -%}
Tesla Car battery is at {{ states.sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor.state }}%, and you can drive about {{ (states.sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor.state | int) | round(0) }} miles. Tesla Car battery is at {{ states('sensor.tesla_model_3_5yj3e1ea8jf010610_battery_sensor') }}%, and you can drive about {{ (states.sensor.tesla_model_3_5yj3e1ea8jf010610_range_sensor.state | int) | round(0) }} miles.
{% endif %} {% endif %}
{%- endmacro %} {%- endmacro %}
{#- Check for low humidity levels in autumn, winter and high levels during rest of the year -#} {#- Check for low humidity levels in autumn, winter and high levels during rest of the year -#}
{%- macro humidity_status() -%} {%- macro humidity_status() -%}
{%- if states.sensor.season.state| lower == "autumn" or states.sensor.season.state| lower == "winter" %} {%- if states('sensor.season') | lower == "autumn" or states('sensor.season') | lower == "winter" %}
{%- if states.sensor.dining_room_thermostat_humidity.state | int < 30 -%} {%- if states('sensor.dining_room_thermostat_humidity') | int < 30 -%}
Home humidity is less than 30%. Home humidity is less than 30%.
{%- endif -%} {%- endif -%}
{% else %} {% else %}
{%- if states.sensor.dining_room_thermostat_humidity.state | default(0) | int > 60 -%} {%- if states('sensor.dining_room_thermostat_humidity') | default(0) | int > 60 -%}
Home humidity is more than 60%. Home humidity is more than 60%.
{%- endif -%} {%- endif -%}
{%- endif -%} {%- endif -%}
@ -187,5 +187,5 @@
{{- humidity_status() -}} {{- humidity_status() -}}
{{- outside_weather() }} Everything else looks good. {{ getGreeting() }} {{- outside_weather() }} Everything else looks good. {{ getGreeting() }}
{%- endmacro -%} {%- endmacro -%}
{{- clean_up(run_script()) -}} {{- clean_up(run_script()) -}}

View File

@ -6,13 +6,15 @@
{%- endmacro %} {%- endmacro %}
{# Birthday notifications #} {# Birthday notifications #}
{%- macro birthday_countdown( name, days2go ) -%} {%- macro birthday_countdown(name, days2go) -%}
{%- if days2go == 0 -%} {%if days2go != 'unknown' %}
Today is {{name}}'s Birthday!. Happy Birthday to you, my dear {{name}}!!!. {%- if days2go |int == 0 -%}
{%- elif days2go == 1 -%} Today is {{name}}'s Birthday!. Happy Birthday to you, my dear {{name}}!!!.
Tomorrow is {{name}}'s Birthday! HURRAY!!! {%- elif days2go |int == 1 -%}
{%- elif days2go > 1 and days2go <= 10 -%} Tomorrow is {{name}}'s Birthday! HURRAY!!!
{{name}}'s Birthday is in {{days2go}} days! HURRAY!!! {%- elif days2go |int > 1 and days2go |int <= 10 -%}
{{name}}'s Birthday is in {{days2go}} days! HURRAY!!!
{%- endif -%}
{%- endif -%} {%- endif -%}
{%- endmacro -%} {%- endmacro -%}
@ -58,7 +60,7 @@
{% else %} {% else %}
{% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.suresh_kalavala.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%} {% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.suresh_kalavala.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%}
{% endif -%} {% endif -%}
{% if days2NextEvent <= (states.input_number.calendar_remind_before_days.state | int) %} {% if days2NextEvent <= states('input_number.calendar_remind_before_days') | int %}
Your next event. {{ states.calendar.suresh_kalavala.attributes.message }} . starts Your next event. {{ states.calendar.suresh_kalavala.attributes.message }} . starts
{% if days2NextEvent == 0 | int %} {% if days2NextEvent == 0 | int %}
today at {{ strptime(states.calendar.suresh_kalavala.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%I:%M %p') }}. today at {{ strptime(states.calendar.suresh_kalavala.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%I:%M %p') }}.
@ -83,7 +85,7 @@
{% else %} {% else %}
{% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%} {% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_india.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%}
{% endif -%} {% endif -%}
{% if days2NextEvent <= (states.input_number.calendar_remind_before_days.state | int) %} {% if days2NextEvent <= (states('input_number.calendar_remind_before_days') | int) %}
{% if days2NextEvent == 0 | int %} {% if days2NextEvent == 0 | int %}
Today is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "")}}. Today is {{ states.calendar.holidays_in_india.attributes.message | replace(".", "")}}.
{%- elif days2NextEvent == 1 %} {%- elif days2NextEvent == 1 %}
@ -106,7 +108,7 @@
{% else %} {% else %}
{% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_united_states.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%} {% set days2NextEvent = strptime((now().year ~ "-12-31 12:02:05"), '%Y-%m-%d %H:%M:%S').strftime('%j') | int - (now().strftime('%j') | int) + (strptime(states.calendar.holidays_in_united_states.attributes.start_time, '%Y-%m-%d %H:%M:%S').strftime('%j') | int) -%}
{% endif -%} {% endif -%}
{% if days2NextEvent <= (states.input_number.calendar_remind_before_days.state | int) %} {% if days2NextEvent <= (states('input_number.calendar_remind_before_days') | int) %}
{% if days2NextEvent == 0 | int %} {% if days2NextEvent == 0 | int %}
Today is {{ states.calendar.holidays_in_united_states.attributes.message | replace(".", "")}}. Today is {{ states.calendar.holidays_in_united_states.attributes.message | replace(".", "")}}.
{%- elif days2NextEvent == 1 %} {%- elif days2NextEvent == 1 %}
@ -161,9 +163,9 @@
{# Drone Flying Weather #} {# Drone Flying Weather #}
{%- macro drone_weather() -%} {%- macro drone_weather() -%}
{% if states.binary_sensor.good_weather_to_fly_drones.state| lower == "on" and {% if states('binary_sensor.good_weather_to_fly_drones')| lower == "on" and
states.device_tracker.life360_suresh.state == "home" and states('device_tracker.life360_suresh') == "home" and
states.sun.sun.state == "above_horizon" %} states('sun.sun') == "above_horizon" %}
It is now a great weather to fly drone outside. It is now a great weather to fly drone outside.
{% endif %} {% endif %}
{%- endmacro -%} {%- endmacro -%}
@ -202,9 +204,9 @@
{{ USPS() }} {{ USPS() }}
{{ tesla_status() }} {{ tesla_status() }}
{{ drone_weather() }} {{ drone_weather() }}
{{ birthday_countdown("Mallika", states.input_label.mallika_birthday_days2go.state | int ) }} {{ birthday_countdown("Mallika", states('input_label.mallika_birthday_days2go')) }}
{{ birthday_countdown("Srinika", states.input_label.srinika_birthday_days2go.state | int ) }} {{ birthday_countdown("Srinika", states('input_label.srinika_birthday_days2go')) }}
{{ birthday_countdown("Hasika", states.input_label.hasika_birthday_days2go.state | int ) }} {{ birthday_countdown("Hasika", states('input_label.hasika_birthday_days2go')) }}
{%- endmacro -%} {%- endmacro -%}
{# Call the macro #} {# Call the macro #}

View File

@ -34,10 +34,10 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="64.2" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="63.6" />
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
<Value type="decimal" genre="user" instance="1" index="4" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="46" /> <Value type="decimal" genre="user" instance="1" index="4" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="46" />
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="48" /> <Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="32" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" after_mark="true" innif="true"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" after_mark="true" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -168,7 +168,7 @@
</CommandClass> </CommandClass>
<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true"> <CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="99" /> <Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="48" />
</CommandClass> </CommandClass>
<CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true"> <CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -208,7 +208,7 @@
</CommandClass> </CommandClass>
<CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true"> <CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" /> <Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
<SensorMap index="0" type="46" /> <SensorMap index="0" type="46" />
<SensorMap index="0" type="62" /> <SensorMap index="0" type="62" />
<SensorMap index="0" type="193" /> <SensorMap index="0" type="193" />
@ -216,9 +216,9 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="64.5" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="63.8" />
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="50" /> <Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="31" />
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" after_mark="true" innif="true"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" after_mark="true" innif="true">
@ -350,7 +350,7 @@
</CommandClass> </CommandClass>
<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true"> <CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="49" /> <Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="30" />
</CommandClass> </CommandClass>
<CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true"> <CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -390,7 +390,7 @@
</CommandClass> </CommandClass>
<CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true"> <CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" /> <Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
<SensorMap index="0" type="255" /> <SensorMap index="0" type="255" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1">
@ -415,7 +415,7 @@
<Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="9" label="Access Control" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="22" /> <Value type="byte" genre="user" instance="1" index="9" label="Access Control" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="23" />
<Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="11" label="Power Management" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="11" label="Power Management" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
</CommandClass> </CommandClass>
@ -574,7 +574,7 @@
</CommandClass> </CommandClass>
<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true"> <CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="100" /> <Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="99" />
</CommandClass> </CommandClass>
<CommandClass id="132" name="COMMAND_CLASS_WAKE_UP" version="2" request_flags="2" innif="true"> <CommandClass id="132" name="COMMAND_CLASS_WAKE_UP" version="2" request_flags="2" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -728,9 +728,9 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="69.2" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="67.9" />
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="51" /> <Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="35" />
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
@ -984,7 +984,7 @@
</CommandClass> </CommandClass>
<CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="4" innif="true"> <CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" /> <Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
</CommandClass> </CommandClass>
<CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="2" innif="true"> <CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="2" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -1006,12 +1006,12 @@
</CommandClass> </CommandClass>
<CommandClass id="50" name="COMMAND_CLASS_METER" version="3" request_flags="2" innif="true"> <CommandClass id="50" name="COMMAND_CLASS_METER" version="3" request_flags="2" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="51.930" /> <Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="53.036" />
<Value type="decimal" genre="user" instance="1" index="1" label="Previous Reading" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="51.923" /> <Value type="decimal" genre="user" instance="1" index="1" label="Previous Reading" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="52.609" />
<Value type="int" genre="user" instance="1" index="2" label="Interval" units="seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="65535" /> <Value type="int" genre="user" instance="1" index="2" label="Interval" units="seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="65535" />
<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="12.922" /> <Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="12.274" />
<Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="122.486" /> <Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="123.389" />
<Value type="decimal" genre="user" instance="1" index="20" label="Current" units="A" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.114" /> <Value type="decimal" genre="user" instance="1" index="20" label="Current" units="A" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.179" />
<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" /> <Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
<Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" /> <Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
</CommandClass> </CommandClass>
@ -1190,8 +1190,8 @@
<Item label="Saturday" value="6" /> <Item label="Saturday" value="6" />
<Item label="Sunday" value="7" /> <Item label="Sunday" value="7" />
</Value> </Value>
<Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="10" /> <Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
<Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="33" /> <Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="45" />
</CommandClass> </CommandClass>
<CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true"> <CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -1339,7 +1339,7 @@
</CommandClass> </CommandClass>
<CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true"> <CommandClass id="48" name="COMMAND_CLASS_SENSOR_BINARY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" /> <Value type="bool" genre="user" instance="1" index="0" label="Sensor" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
<SensorMap index="0" type="255" /> <SensorMap index="0" type="255" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1">
@ -1369,7 +1369,7 @@
<Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="8" />
<Value type="byte" genre="user" instance="1" index="11" label="Power Management" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="11" label="Power Management" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
</CommandClass> </CommandClass>
<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true"> <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
@ -2038,7 +2038,7 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="7" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="7" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="69.62" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="66.02" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -2238,7 +2238,7 @@
</CommandClass> </CommandClass>
</CommandClasses> </CommandClasses>
</Node> </Node>
<Node id="31" name="Aeotec Water Sensor" location="" basic="4" generic="7" specific="1" roletype="6" devicetype="3079" nodetype="0" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete"> <Node id="31" name="Aeotec Water Sensor" location="" basic="4" generic="7" specific="1" roletype="6" devicetype="3079" nodetype="0" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="CacheLoad">
<Manufacturer id="86" name="Aeotec"> <Manufacturer id="86" name="Aeotec">
<Product type="102" id="7a" name="Unknown: type=0102, id=007a" /> <Product type="102" id="7a" name="Unknown: type=0102, id=007a" />
</Manufacturer> </Manufacturer>
@ -2253,7 +2253,7 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" request_flags="1" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" request_flags="1" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="17.6" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="62.6" />
</CommandClass> </CommandClass>
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="5" innif="true"> <CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="5" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -2405,9 +2405,9 @@
</CommandClass> </CommandClass>
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true"> <CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
<Instance index="1" /> <Instance index="1" />
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="69.8" /> <Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="69.4" />
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="49" /> <Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="34" />
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" /> <Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
<Value type="decimal" genre="user" instance="1" index="37" label="Radon Concentration" units="bq/m3" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="60" /> <Value type="decimal" genre="user" instance="1" index="37" label="Radon Concentration" units="bq/m3" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="60" />
</CommandClass> </CommandClass>
@ -2580,7 +2580,7 @@
<Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
<Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" /> <Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="254" />
</CommandClass> </CommandClass>
<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true"> <CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
<Instance index="1" /> <Instance index="1" />
@ -2666,7 +2666,7 @@
</CommandClass> </CommandClass>
</CommandClasses> </CommandClasses>
</Node> </Node>
<Node id="38" name="" location="" basic="4" generic="7" specific="1" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Session"> <Node id="38" name="" location="" basic="4" generic="7" specific="1" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="CacheLoad">
<Manufacturer id="0" name=""> <Manufacturer id="0" name="">
<Product type="0" id="0" name="" /> <Product type="0" id="0" name="" />
</Manufacturer> </Manufacturer>