mirror of
https://github.com/thejeffreystone/home-assistant-configuration.git
synced 2025-08-20 04:33:09 +00:00
Too many updates to cover
This commit is contained in:
151
packages/announcements.yaml
Normal file → Executable file
151
packages/announcements.yaml
Normal file → Executable file
@@ -5,70 +5,48 @@
|
||||
# @description : Just Normal Announcements.
|
||||
###############################################################################
|
||||
|
||||
script:
|
||||
#script:
|
||||
|
||||
annc_storm_statement:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: input_boolean.vacation_mode
|
||||
state: 'off'
|
||||
- service: notify.ios_all
|
||||
data:
|
||||
message: Severe Storm Statement Issued for Anchorage House
|
||||
annc_tstorm_watch:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: input_boolean.vacation_mode
|
||||
state: 'off'
|
||||
- service: notify.ios_all
|
||||
data:
|
||||
message: Severe Thunderstorm Watch Issued for Anchorage House
|
||||
annc_tstorm_warning:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: input_boolean.vacation_mode
|
||||
state: 'off'
|
||||
- service: notify.ios_all
|
||||
data:
|
||||
message: Severe Thunderstorm Warning Issued for Anchorage House
|
||||
annc_tornado_watch:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: input_boolean.vacation_mode
|
||||
state: 'off'
|
||||
- service: notify.ios_all
|
||||
data:
|
||||
message: Tornado Watch Issued for Anchorage House
|
||||
annc_security_issue:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: group.family
|
||||
state: 'on'
|
||||
- service: tts.google_translate_say
|
||||
data:
|
||||
entity_id: media_player.hass_speaker
|
||||
message: Unauthorized Access
|
||||
annc_tornado_warning:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
- service: script.alert_notify
|
||||
data_template:
|
||||
message: "Tornado Warning has been Issued"
|
||||
greeting: "no"
|
||||
# annc_storm_statement:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.vacation_mode
|
||||
# state: 'off'
|
||||
# - service: script.text_notify
|
||||
# data:
|
||||
# message: Severe Storm Statement Issued for Anchorage House
|
||||
# annc_tstorm_watch:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.vacation_mode
|
||||
# state: 'off'
|
||||
# - service: script.text_notify
|
||||
# data:
|
||||
# message: Severe Thunderstorm Watch Issued for Anchorage House
|
||||
# annc_tstorm_warning:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.vacation_mode
|
||||
# state: 'off'
|
||||
# - service: script.text_notify
|
||||
# data:
|
||||
# message: Severe Thunderstorm Warning Issued for Anchorage House
|
||||
# annc_tornado_watch:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.vacation_mode
|
||||
# state: 'off'
|
||||
# - service: script.text_notify
|
||||
# data:
|
||||
# message: Tornado Watch Issued for Anchorage House
|
||||
# annc_tornado_warning:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: sensor.family_status
|
||||
# state: Home
|
||||
# - service: script.alert_notify
|
||||
# data_template:
|
||||
# message: "Tornado Warning has been Issued"
|
||||
|
||||
automation:
|
||||
- id: prebed_routine
|
||||
@@ -77,10 +55,6 @@ automation:
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.prebed_routine
|
||||
- id: nightly_report
|
||||
@@ -89,22 +63,15 @@ automation:
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.nightly_report
|
||||
|
||||
- id: good_morning_report
|
||||
alias: Good Morning Report
|
||||
initial_state: true
|
||||
trigger:
|
||||
platform: template
|
||||
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.morning_report
|
||||
- service: script.twitter_notify
|
||||
@@ -125,39 +92,7 @@ automation:
|
||||
- wed
|
||||
- thu
|
||||
- fri
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.skylar_morning_greeting
|
||||
- id: play_weather_report
|
||||
alias: Play Weather Report
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: input_boolean.play_weather_report
|
||||
from: 'Off'
|
||||
platform: state
|
||||
to: 'On'
|
||||
action:
|
||||
- service: script.turn_on
|
||||
entity_id: script.weather_report
|
||||
- service: script.voice_reports_off
|
||||
- id: guest_mode_feedback
|
||||
alias: Guest Mode Audio Feedback
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- input_boolean.guest_mode
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: >
|
||||
{{ [
|
||||
"Guest Mode has been enabled as you requested.",
|
||||
"I have switched to the system to guest mode",
|
||||
"I have enabled guest mode. ",
|
||||
"System Guest Mode has been enabled."
|
||||
] | random }}
|
||||
|
||||
|
||||
|
0
packages/disney.yaml
Normal file → Executable file
0
packages/disney.yaml
Normal file → Executable file
30
packages/jarvis.yaml
Normal file → Executable file
30
packages/jarvis.yaml
Normal file → Executable file
@@ -24,6 +24,24 @@ automation:
|
||||
"I have enabled guest mode. ",
|
||||
"Guest Mode is on."
|
||||
] | random }}
|
||||
- id: sentry_mode_feedback
|
||||
alias: Sentry Mode Audio Feedback
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- input_boolean.sentry_mode
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: >
|
||||
{{ [
|
||||
"Sentry Mode has been enabled.",
|
||||
"Anchorage House is secure.",
|
||||
"I have enabled sentry mode. ",
|
||||
"I am monitoring Anchorage House."
|
||||
] | random }}
|
||||
|
||||
script:
|
||||
activate_house_party_protocol:
|
||||
@@ -42,14 +60,4 @@ script:
|
||||
"Anchorage House has been configured for a House Party.",
|
||||
"Incense has been turned on.",
|
||||
"I have enabled house party protocol."
|
||||
] | random }}
|
||||
|
||||
activate_guest_mode:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_confirmations.yaml
|
||||
- delay:
|
||||
seconds: 3
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.guest_mode
|
||||
] | random }}
|
0
packages/maintenance.yaml
Normal file → Executable file
0
packages/maintenance.yaml
Normal file → Executable file
155
packages/notify.yaml
Normal file → Executable file
155
packages/notify.yaml
Normal file → Executable file
@@ -31,6 +31,12 @@ notify:
|
||||
- service: ios_jeffreystonesiphone
|
||||
- service: ios_jeffreystonesipad
|
||||
- service: ios_katherinestonesiphone
|
||||
- name: ios_parents
|
||||
platform: group
|
||||
services:
|
||||
- service: ios_jeffreystonesiphone
|
||||
- service: ios_jeffreystonesipad
|
||||
- service: ios_katherinestonesiphone
|
||||
- name: jeff_ios
|
||||
platform: group
|
||||
services:
|
||||
@@ -92,6 +98,65 @@ script:
|
||||
message: >
|
||||
{{ message }}
|
||||
|
||||
text_notify:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.text_notifications
|
||||
state: 'on'
|
||||
- service_template: >
|
||||
{% if who == 'jeff' %}
|
||||
notify.jeff_ios
|
||||
{% elif who == 'kat' %}
|
||||
notify.kat_ios
|
||||
{% elif who == 'skylar' %}
|
||||
notify.skylar_ios
|
||||
{% elif who == 'parents' %}
|
||||
notify.ios_parents
|
||||
{% else %}
|
||||
notify.all_ios
|
||||
{% endif %}
|
||||
data_template:
|
||||
title: '{{ title }}'
|
||||
message: '{{ message }}'
|
||||
#data:
|
||||
# attachment:
|
||||
# url: "{{ url }}"
|
||||
# content-type: "{{ content_type }}"
|
||||
# hide-thumbnail: false
|
||||
# push:
|
||||
# sound: "{{ ios_sound }}"
|
||||
# badge: 0
|
||||
# category: "{{ ios_category }}"
|
||||
# entity_id: "{{ camera_entity }}"
|
||||
|
||||
text_alert:
|
||||
sequence:
|
||||
- service_template: >
|
||||
{% if who == 'jeff' %}
|
||||
notify.jeff_ios
|
||||
{% elif who == 'kat' %}
|
||||
notify.kat_ios
|
||||
{% elif who == 'skylar' %}
|
||||
notify.skylar_ios
|
||||
{% elif who == 'parents' %}
|
||||
notify.ios_parents
|
||||
{% else %}
|
||||
notify.all_ios
|
||||
{% endif %}
|
||||
data_template:
|
||||
title: '{{ title }}'
|
||||
message: '{{ message }}'
|
||||
#data:
|
||||
# attachment:
|
||||
# url: "{{ url }}"
|
||||
# content-type: "{{ content_type }}"
|
||||
# hide-thumbnail: false
|
||||
# push:
|
||||
# sound: "{{ ios_sound }}"
|
||||
# badge: 0
|
||||
# category: "{{ ios_category }}"
|
||||
# entity_id: "{{ camera_entity }}"
|
||||
|
||||
###############################################################################
|
||||
# Alert Notify
|
||||
# Conditions:
|
||||
@@ -152,7 +217,7 @@ script:
|
||||
jarvis_voice:
|
||||
sequence:
|
||||
- condition: template
|
||||
value_template: '{{ states.input_boolean.audible_notifications.state == "on" }}'
|
||||
value_template: '{{ states.binary_sensor.quiet_time.state == "off" }}'
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: 'Home'
|
||||
@@ -163,13 +228,12 @@ script:
|
||||
{{ not is_state('media_player.hass_speaker', 'playing') }}
|
||||
- service: tts.amazon_polly_say
|
||||
data_template:
|
||||
entity_id: media_player.hass_speaker
|
||||
# entity_id: >
|
||||
# {% if states.input_boolean.audible_notifications.state == 'on' %}
|
||||
# media_player.hass_speaker
|
||||
# {% else %}
|
||||
# media_player.googlehome0715, media_player.googlehomehub3492
|
||||
# {% endif %}
|
||||
entity_id: >
|
||||
{% if states.input_boolean.audible_notifications.state == 'on' %}
|
||||
media_player.hass_speaker
|
||||
{% else %}
|
||||
media_player.googlehome0715, media_player.googlehomehub3492
|
||||
{% endif %}
|
||||
message: >-
|
||||
<speak>
|
||||
{{ message }}
|
||||
@@ -182,9 +246,6 @@ script:
|
||||
|
||||
twitter_notify:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.tweet_system
|
||||
state: 'on'
|
||||
- service: notify.twitter
|
||||
data_template:
|
||||
message: >
|
||||
@@ -195,18 +256,19 @@ script:
|
||||
|
||||
twitter_snark:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.tweet_snark
|
||||
state: 'on'
|
||||
- service: notify.twitter
|
||||
data_template:
|
||||
message: !include ../templates/twitter_snark.yaml
|
||||
|
||||
|
||||
twitter_stats:
|
||||
sequence:
|
||||
- service: notify.twitter
|
||||
data_template:
|
||||
message: !include ../templates/twitter_stats.yaml
|
||||
|
||||
twitter_github:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.tweet_system
|
||||
state: 'on'
|
||||
- service: notify.twitter
|
||||
data_template:
|
||||
message: >
|
||||
@@ -217,9 +279,6 @@ script:
|
||||
|
||||
twitter_new_ha:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.tweet_releases
|
||||
state: 'on'
|
||||
- service: notify.twitter
|
||||
data_template:
|
||||
message: !include ../templates/twitter_new_ha.yaml
|
||||
@@ -263,17 +322,12 @@ script:
|
||||
###############################################################################
|
||||
weather_report:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_confirmations.yaml
|
||||
- delay:
|
||||
seconds: 3
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/weather_report.yaml
|
||||
- delay:
|
||||
minutes: 5
|
||||
- service: scriot.turn_off
|
||||
- service: script.turn_off
|
||||
entity_id: script.weather_report
|
||||
|
||||
###############################################################################
|
||||
@@ -284,25 +338,70 @@ script:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/traffic_report.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.traffic_report
|
||||
|
||||
###############################################################################
|
||||
# Jeff ETA Report
|
||||
# Security Report
|
||||
###############################################################################
|
||||
security_report:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/security_report.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.security_report
|
||||
|
||||
###############################################################################
|
||||
# Jeff Traffic Reports
|
||||
###############################################################################
|
||||
jeff_eta_report:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jeff_eta.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.jeff_eta_report
|
||||
|
||||
jeff_headed_home_annc:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jeff_heading_home.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.jeff_headed_home_annc
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Kat ETA Report
|
||||
# Kat Traffic Reports
|
||||
###############################################################################
|
||||
kat_eta_report:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/kat_eta.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.kat_eta_report
|
||||
|
||||
kat_headed_home_annc:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/kat_heading_home.yaml
|
||||
- delay:
|
||||
minutes: 2
|
||||
- service: script.turn_off
|
||||
entity_id: script.kat_headed_home_annc
|
||||
###############################################################################
|
||||
# Prebed Routing
|
||||
###############################################################################
|
||||
|
231
packages/presence.yaml
Normal file → Executable file
231
packages/presence.yaml
Normal file → Executable file
@@ -37,6 +37,17 @@ sensor:
|
||||
{% else %}
|
||||
{{ states.device_tracker.jeffreystonesiphone.state }}
|
||||
{%- endif %}
|
||||
jeff_driving:
|
||||
friendly_name: "Jeff' Driving"
|
||||
unit_of_measurement: ''
|
||||
value_template: >-
|
||||
{%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %}
|
||||
on
|
||||
{% elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %}
|
||||
on
|
||||
{% else %}
|
||||
off
|
||||
{% endif %}
|
||||
- platform: template
|
||||
sensors:
|
||||
skylar_location:
|
||||
@@ -79,6 +90,19 @@ sensor:
|
||||
{% else %}
|
||||
{{ states.device_tracker.katherinestonesiphone.state }}
|
||||
{%- endif %}
|
||||
- platform: template
|
||||
sensors:
|
||||
kat_driving:
|
||||
friendly_name: "Kat Driving"
|
||||
unit_of_measurement: ''
|
||||
value_template: >-
|
||||
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
|
||||
'on'
|
||||
{% elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
|
||||
'on'
|
||||
{% else %}
|
||||
'off'
|
||||
{% endif %}
|
||||
- platform: mqtt
|
||||
name: "Family Status"
|
||||
state_topic: "house/family/status"
|
||||
@@ -107,3 +131,210 @@ sensor:
|
||||
or is_state('device_tracker.katherinestonesiphone', 'home')
|
||||
or is_state('device_tracker.life360_kat_stone', 'home')
|
||||
or is_state('sensor.family_status', 'Home') }}
|
||||
|
||||
automation:
|
||||
- id: kat_arrives_zoo
|
||||
alias: Kat Arrives at Zoo
|
||||
initial_state: true
|
||||
trigger:
|
||||
- platform: zone
|
||||
event: enter
|
||||
zone: zone.zoo_atlanta
|
||||
entity_id: device_tracker.katherinestonesiphone
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.kat_travel_monitor
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/kat_arrived_at_work.yaml
|
||||
- id: kat_leaves_zoo
|
||||
alias: Kat Leaves Zoo Notification
|
||||
initial_state: true
|
||||
trigger:
|
||||
- platform: zone
|
||||
event: leave
|
||||
zone: zone.zoo_atlanta
|
||||
entity_id: device_tracker.katherinestonesiphone
|
||||
condition:
|
||||
action:
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.kat_travel_monitor
|
||||
- id: '1550109528753'
|
||||
alias: Jeff Is Heading Home
|
||||
initial_state: true
|
||||
trigger:
|
||||
- platform: webhook
|
||||
webhook_id: jeff_heading_home
|
||||
condition: []
|
||||
action:
|
||||
- service: script.jeff_destination_home
|
||||
|
||||
- id: family_has_arrived
|
||||
alias: Family Has arrived
|
||||
trigger:
|
||||
- entity_id: sensor.family_status
|
||||
from: Away
|
||||
platform: state
|
||||
to: Home
|
||||
- entity_id: device_tracker.jeffreystonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
- entity_id: device_tracker.katherinestonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
- entity_id: binary_sensor.jeffrey_presence
|
||||
from: 'Off'
|
||||
platform: state
|
||||
to: 'On'
|
||||
- entity_id: binary_sensor.kat_presence
|
||||
from: 'Off'
|
||||
platform: state
|
||||
to: 'On'
|
||||
- entity_id: device_tracker.hass_jeffsiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Away
|
||||
action:
|
||||
- service: script.vacation_canceled
|
||||
- service: script.appliances_on
|
||||
- service: script.standby
|
||||
- service: script.washer_finished_notification_audible
|
||||
initial_state: true
|
||||
- id: family_has_left
|
||||
alias: Family Has Left
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: sensor.family_status
|
||||
from: Home
|
||||
platform: state
|
||||
to: Away
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
state: 'off'
|
||||
action:
|
||||
- service: script.appliances_off
|
||||
- service: script.inside_all_off
|
||||
- service: script.security_check_garage
|
||||
- service: script.security_check_zones
|
||||
- service: script.lockdown
|
||||
- service: script.lockdown_issue
|
||||
- service: script.all_fans_off
|
||||
- id: jeff_is_home
|
||||
alias: Jeff is Home
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: device_tracker.jeffreystonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
# - entity_id: person.jeffrey
|
||||
# event: enter
|
||||
# platform: zone
|
||||
# zone: zone.home
|
||||
action:
|
||||
- service: script.family_is_home
|
||||
- service: script.jeff_is_home
|
||||
- service: script.jeff_destination_na
|
||||
- service: script.driveway_on
|
||||
- entity_id: input_boolean.jeff_travel_monitor
|
||||
service: input_boolean.turn_off
|
||||
- id: jeff_arrives_summit
|
||||
alias: Jeff Arrives At Summit
|
||||
trigger:
|
||||
- entity_id: device_tracker.jeffreystonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.summit
|
||||
- entity_id: device_tracker.hass_jeffsiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.summit
|
||||
action:
|
||||
- service: script.text_notify
|
||||
data:
|
||||
who: "kat"
|
||||
message: "Jeff has arrived at Summit"
|
||||
initial_state: true
|
||||
- id: jeff_arrives_summit_notification
|
||||
alias: Notify Kat Jeff At Summit
|
||||
trigger:
|
||||
- entity_id: device_tracker.jeffreystonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.summit
|
||||
- entity_id: device_tracker.hass_jeffsiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.summit
|
||||
action:
|
||||
- service: script.jeff_destination_na
|
||||
initial_state: true
|
||||
- id: jeff_leaves_summit
|
||||
alias: Jeff Leaves Summit
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: device_tracker.jeffreystonesiphone
|
||||
event: leave
|
||||
platform: zone
|
||||
zone: zone.summit
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.jeff_traffic_alert_home
|
||||
- id: kat_is_home
|
||||
alias: Kat is Home
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: device_tracker.katherinestonesiphone
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
- entity_id: person.katherine
|
||||
event: enter
|
||||
platform: zone
|
||||
zone: zone.home
|
||||
action:
|
||||
- service: script.family_is_home
|
||||
- service: script.driveway_on
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.kat_travel_monitor
|
||||
|
||||
- id: annc_arrival_jeff
|
||||
alias: 'Announce Jeff Arrived'
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- device_tracker.jeffreystonesiphone
|
||||
from: 'not_home'
|
||||
to: 'home'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jeff_home_annc.yaml
|
||||
|
||||
- id: annc_arrival_kat
|
||||
alias: 'Announce Kat Arrived'
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- device_tracker.katherinestonesiphone
|
||||
from: 'not_home'
|
||||
to: 'home'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sensor.family_status
|
||||
state: Home
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/kat_home_annc.yaml
|
209
packages/security.yaml
Normal file → Executable file
209
packages/security.yaml
Normal file → Executable file
@@ -138,15 +138,64 @@ automation:
|
||||
- service: shell_command.door_chime
|
||||
initial_state: true
|
||||
|
||||
- id: door_opened_long
|
||||
alias: Door Opened Too Long
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.front_door
|
||||
- binary_sensor.laundry_room_door
|
||||
- binary_sensor.attic_door
|
||||
- binary_sensor.back_door
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
for: '00:01:00'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: "I thought you might like to know, the {{ trigger.to_state.attributes.friendly_name }} has been standing open for more than a minute."
|
||||
initial_state: true
|
||||
|
||||
- id: garage_opened_night
|
||||
alias: Garage Opened at Night
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: group.garage_doors
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sun.sun
|
||||
state: below_horizon
|
||||
action:
|
||||
- service: script.driveway_on
|
||||
initial_state: true
|
||||
|
||||
- id: garage_closed
|
||||
alias: Garage Opened at Night
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: group.garage_doors
|
||||
from: 'on'
|
||||
to: 'off'
|
||||
action:
|
||||
- service: script.driveway_off
|
||||
initial_state: true
|
||||
|
||||
- id: security_breach_door
|
||||
alias: Security Breach Doors
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.front_door_contact_2
|
||||
- binary_sensor.laundry_room_door_contact_2
|
||||
- binary_sensor.attic_door_contact_2
|
||||
- binary_sensor.back_door_contact_2
|
||||
- binary_sensor.front_door
|
||||
- binary_sensor.laundry_room_door
|
||||
- binary_sensor.back_door
|
||||
- binary_sensor.side_door
|
||||
- binary_sensor.garage_door
|
||||
from: 'off'
|
||||
condition:
|
||||
- condition: state
|
||||
@@ -155,11 +204,52 @@ automation:
|
||||
action:
|
||||
- service: script.jarvis_notify
|
||||
data_template:
|
||||
message: "The {{ trigger.to_state.attributes.friendly_name }} has been opened."
|
||||
message: "My security protocols are being overidden,, The {{ trigger.to_state.attributes.friendly_name }} has been opened."
|
||||
- service: script.text_alert
|
||||
data_template:
|
||||
title: "Security Alert!!"
|
||||
message: "{{ trigger.to_state.attributes.friendly_name }} has been opened."
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.security_issue
|
||||
initial_state: true
|
||||
|
||||
- id: sentry_mode_enabled
|
||||
alias: Sentry Mode Enabled Annoucement
|
||||
initial_state: true
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.sentry_mode
|
||||
from: 'off'
|
||||
to: 'on'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data:
|
||||
message: >
|
||||
{{ [
|
||||
"Barn door protocol has been activated.",
|
||||
"Anchorage House has been secured! ",
|
||||
"Sentry Mode is active. ",
|
||||
"I am now monitoring the doors and will let you know if anyone attempts to access."
|
||||
] | random }}
|
||||
|
||||
- id: sentry_mode_disabled
|
||||
alias: Sentry Mode Disabled Annoucement
|
||||
initial_state: true
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.sentry_mode
|
||||
from: 'on'
|
||||
to: 'off'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data:
|
||||
message: >
|
||||
{{ [
|
||||
"Barn door protocol has been deactivated.",
|
||||
"I am no longer monitoring the access points. ",
|
||||
"Sentry Mode has been switched off. "
|
||||
] | random }}
|
||||
|
||||
script:
|
||||
lockdown_issue:
|
||||
sequence:
|
||||
@@ -171,6 +261,10 @@ script:
|
||||
state: "Away"
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.lockdown_issue
|
||||
- service: script.text_notify
|
||||
data_template:
|
||||
title: "Lockdown Issue!"
|
||||
message: "Doors are open and it appears everyone has left!"
|
||||
|
||||
security_check_garage:
|
||||
sequence:
|
||||
@@ -205,18 +299,17 @@ script:
|
||||
entity_id: input_boolean.sentry_mode
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.security_issue
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.lockdown_issue
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.security_alarm
|
||||
|
||||
visitors_here:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- service: input_boolean.turn_on
|
||||
data:
|
||||
entity_id: input_boolean.guest_mode
|
||||
- service: shell_command.haunted_guest_welcome
|
||||
#- service: shell_command.haunted_guest_welcome
|
||||
|
||||
visitors_gone:
|
||||
sequence:
|
||||
@@ -228,48 +321,74 @@ script:
|
||||
sequence:
|
||||
- service: shell_command.security_alarm
|
||||
|
||||
|
||||
# notification_sentry_mode_activated_audio:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.audible_notifications
|
||||
# state: 'on'
|
||||
# - condition: state
|
||||
# entity_id: media_player.hass_speaker
|
||||
# state: 'idle'
|
||||
# - service: tts.google_say
|
||||
# entity_id: media_player.hass_speaker
|
||||
# data_template:
|
||||
# message: "Sentry mode activated"
|
||||
|
||||
notification_sentry_mode_activated_audio:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: media_player.hass_speaker
|
||||
state: 'idle'
|
||||
- service: tts.google_say
|
||||
entity_id: media_player.hass_speaker
|
||||
data_template:
|
||||
message: "Sentry mode activated"
|
||||
|
||||
notification_sentry_mode_deactivated_audio:
|
||||
sequence:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity_id: media_player.hass_speaker
|
||||
state: 'idle'
|
||||
- service: tts.google_say
|
||||
entity_id: media_player.hass_speaker
|
||||
data_template:
|
||||
message: "Sentry mode deactivated"
|
||||
# notification_sentry_mode_deactivated_audio:
|
||||
# sequence:
|
||||
# - condition: state
|
||||
# entity_id: input_boolean.audible_notifications
|
||||
# state: 'on'
|
||||
# - condition: state
|
||||
# entity_id: media_player.hass_speaker
|
||||
# state: 'idle'
|
||||
# - service: tts.google_say
|
||||
# entity_id: media_player.hass_speaker
|
||||
# data_template:
|
||||
# message: "Sentry mode deactivated"
|
||||
|
||||
notification_sentry_mode_deactiviated_text:
|
||||
sequence:
|
||||
- service: notify.jeff_ios
|
||||
data:
|
||||
message: Sentry Mode Deactivated
|
||||
# notification_sentry_mode_deactiviated_text:
|
||||
# sequence:
|
||||
# - service: notify.jeff_ios
|
||||
# data:
|
||||
# message: Sentry Mode Deactivated
|
||||
|
||||
notification_sentry_mode_activiated_text:
|
||||
sequence:
|
||||
- service: notify.jeff_ios
|
||||
data:
|
||||
message: Sentry Mode Activated
|
||||
# notification_sentry_mode_activiated_text:
|
||||
# sequence:
|
||||
# - service: notify.jeff_ios
|
||||
# data:
|
||||
# message: Sentry Mode Activated
|
||||
|
||||
vacation_canceled:
|
||||
sequence:
|
||||
- data:
|
||||
entity_id: input_boolean.vacation_mode
|
||||
service: input_boolean.turn_off
|
||||
|
||||
activate_barn_door_protocol:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_confirmations.yaml
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.sentry_mode
|
||||
|
||||
deactivate_barn_door_protocol:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_confirmations.yaml
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.sentry_mode
|
||||
|
||||
activate_guest_mode:
|
||||
sequence:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_confirmations.yaml
|
||||
- delay:
|
||||
seconds: 2
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.guest_mode
|
||||
|
||||
|
||||
|
4
packages/space.yaml
Normal file → Executable file
4
packages/space.yaml
Normal file → Executable file
@@ -81,10 +81,6 @@ automation:
|
||||
- binary_sensor.iss
|
||||
to: 'on'
|
||||
from: 'off'
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.audible_notifications
|
||||
state: 'on'
|
||||
action:
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
|
0
packages/sysmon.yaml
Normal file → Executable file
0
packages/sysmon.yaml
Normal file → Executable file
40
packages/usps.yaml
Normal file → Executable file
40
packages/usps.yaml
Normal file → Executable file
@@ -40,10 +40,6 @@ automation:
|
||||
at: '00:00:10'
|
||||
action:
|
||||
- service: shell_command.usps
|
||||
- service: script.add_logbook_entry
|
||||
data_template:
|
||||
name: USPS
|
||||
message: Reset Mail Count
|
||||
|
||||
- id: get_usps
|
||||
initial_state: true
|
||||
@@ -53,10 +49,6 @@ automation:
|
||||
at: '10:00:00'
|
||||
action:
|
||||
- service: shell_command.usps
|
||||
- service: script.add_logbook_entry
|
||||
data_template:
|
||||
name: USPS
|
||||
message: Checking for mail
|
||||
|
||||
# Notify USPS mails via TTS, and iOS notification with attachment
|
||||
###############################################################################
|
||||
@@ -72,7 +64,12 @@ automation:
|
||||
- condition: template
|
||||
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
||||
action:
|
||||
- service: script.voice_notify
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_interuptions.yaml
|
||||
- delay:
|
||||
seconds: 2
|
||||
- service: script.jarvis_notify
|
||||
data_template:
|
||||
message: >
|
||||
{%- if states.sensor.usps_mail.state | int == 1 -%}
|
||||
@@ -80,16 +77,18 @@ automation:
|
||||
{%- else -%}
|
||||
USPS is delivering {{ states.sensor.usps_mail.state }} pieces of mail today.
|
||||
{%- endif -%}
|
||||
- service: notify.jeff_ios
|
||||
- service: script.text_notify
|
||||
data_template:
|
||||
who: "jeff"
|
||||
title: "USPS Delivering Today"
|
||||
message: "USPS will be delivering {{ states.sensor.usps_mail.state }} piece(s) of mail today."
|
||||
data:
|
||||
push:
|
||||
category: camera
|
||||
entity_id: "camera.usps_mail_pictures"
|
||||
attachment:
|
||||
url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}"
|
||||
content-type: jpg
|
||||
# data:
|
||||
# push:
|
||||
# category: camera
|
||||
# entity_id: "camera.usps_mail_pictures"
|
||||
# attachment:
|
||||
# url: "{{ states.camera.usps_mail_pictures.attributes.entity_picture }}"
|
||||
# content-type: jpg
|
||||
|
||||
# Notify USPS packages via TTS. Usually there are no pictures for packages
|
||||
###############################################################################
|
||||
@@ -105,7 +104,12 @@ automation:
|
||||
- condition: template
|
||||
value_template: '{{ ((now().hour | int) > 7) and ((now().hour | int) < 16) }}'
|
||||
action:
|
||||
- service: script.voice_notify
|
||||
- service: script.jarvis_voice
|
||||
data_template:
|
||||
message: !include ../templates/jarvis_interuptions.yaml
|
||||
- delay:
|
||||
seconds: 2
|
||||
- service: script.jarvis_notify
|
||||
data_template:
|
||||
message: >
|
||||
{%- if states.sensor.usps_packages.state | int == 1 -%}
|
||||
|
21
packages/weather_alerts_nws.yaml
Normal file → Executable file
21
packages/weather_alerts_nws.yaml
Normal file → Executable file
@@ -86,8 +86,9 @@ automation:
|
||||
- condition: template
|
||||
value_template: '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
|
||||
action:
|
||||
- service: notify.jeff_ios
|
||||
- service: script.text_notify
|
||||
data_template:
|
||||
title: "Weather Alert for Anchorage House"
|
||||
message: >
|
||||
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
|
||||
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
|
||||
@@ -185,9 +186,10 @@ automation:
|
||||
- delay: '00:00:15'
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.tornado_alarm
|
||||
- service: script.text_notify_all
|
||||
- service: script.text_alert
|
||||
data_template:
|
||||
message: "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
|
||||
title: "Tornado Warning!"
|
||||
message: "The National Weather Service Has issued a Tornado Warning for our area."
|
||||
|
||||
- alias: Activate Tornado alarm
|
||||
initial_state: 'on'
|
||||
@@ -214,6 +216,19 @@ automation:
|
||||
action:
|
||||
- service: media_player.media_stop
|
||||
entity_id: media_player.hass_speaker
|
||||
|
||||
- id: play_weather_report
|
||||
alias: Play Weather Report
|
||||
initial_state: true
|
||||
trigger:
|
||||
- entity_id: input_boolean.play_weather_report
|
||||
from: 'Off'
|
||||
platform: state
|
||||
to: 'On'
|
||||
action:
|
||||
- service: script.turn_on
|
||||
entity_id: script.weather_report
|
||||
- service: script.voice_reports_off
|
||||
|
||||
script:
|
||||
nws_popup_on_wx_alert:
|
||||
|
0
packages/weekday.yaml
Normal file → Executable file
0
packages/weekday.yaml
Normal file → Executable file
@@ -1,171 +0,0 @@
|
||||
###############################################################################
|
||||
# @author : Jeffrey Stone
|
||||
# @date : 02/19/2019
|
||||
# @package : Zigbee2mqtt
|
||||
# @description : Zigbee2mqtt Config
|
||||
###############################################################################
|
||||
|
||||
|
||||
|
||||
# Group
|
||||
group:
|
||||
zigbee_group:
|
||||
view: false
|
||||
control: hidden
|
||||
name: Zigbee2mqtt
|
||||
entities:
|
||||
- input_boolean.zigbee_permit_join
|
||||
- timer.zigbee_permit_join
|
||||
- sensor.zigbee2mqtt_bridge_state
|
||||
- switch.zigbee2mqtt_main_join
|
||||
- automation.enable_zigbee_joining
|
||||
- automation.disable_zigbee_joining
|
||||
- automation.disable_zigbee_joining_by_timer
|
||||
- input_select.zigbee2mqtt_log_level
|
||||
- automation.zigbee2mqtt_log_level
|
||||
|
||||
# Input select for Zigbee2mqtt debug level
|
||||
input_select:
|
||||
zigbee2mqtt_log_level:
|
||||
name: Zigbee2mqtt Log Level
|
||||
options:
|
||||
- debug
|
||||
- info
|
||||
- warn
|
||||
- error
|
||||
initial: info
|
||||
icon: mdi:format-list-bulleted
|
||||
|
||||
# Input boolean for enabling/disabling joining
|
||||
input_boolean:
|
||||
zigbee_permit_join:
|
||||
name: Allow devices to join
|
||||
initial: off
|
||||
icon: mdi:cellphone-wireless
|
||||
|
||||
# Timer for joining time remaining (120 sec = 2 min)
|
||||
timer:
|
||||
zigbee_permit_join:
|
||||
name: Time remaining
|
||||
duration: 120
|
||||
|
||||
# Sensor for monitoring the bridge state
|
||||
sensor:
|
||||
- platform: mqtt
|
||||
name: Zigbee2mqtt Bridge state
|
||||
state_topic: "zigbee2mqtt/bridge/state"
|
||||
icon: mdi:router-wireless
|
||||
- platform: "mqtt"
|
||||
name: "towerlight"
|
||||
state_topic: "zigbee2mqtt/tower lamp"
|
||||
availability_topic: "zigbee2mqtt/bridge/state"
|
||||
unit_of_measurement: "-"
|
||||
value_template: "{{ value_json.linkquality }}"
|
||||
- platform: "mqtt"
|
||||
state_topic: "zigbee2mqtt/rainbow light"
|
||||
availability_topic: "zigbee2mqtt/bridge/state"
|
||||
unit_of_measurement: "-"
|
||||
value_template: "{{ value_json.linkquality }}"
|
||||
|
||||
# Switch for enabling joining
|
||||
switch:
|
||||
- platform: mqtt
|
||||
name: "Zigbee2mqtt Main join"
|
||||
state_topic: "zigbee2mqtt/bridge/config/permit_join"
|
||||
command_topic: "zigbee2mqtt/bridge/config/permit_join"
|
||||
payload_on: "true"
|
||||
payload_off: "false"
|
||||
- platform: "mqtt"
|
||||
name: "rainbowlight"
|
||||
state_topic: "zigbee2mqtt/rainbow light"
|
||||
availability_topic: "zigbee2mqtt/bridge/state"
|
||||
payload_off: "OFF"
|
||||
payload_on: "ON"
|
||||
value_template: "{{ value_json.state }}"
|
||||
command_topic: "zigbee2mqtt/rainbow light/set"
|
||||
|
||||
# Automations
|
||||
automation:
|
||||
- alias: Zigbee2mqtt Log Level
|
||||
initial_state: 'on'
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_select.zigbee2mqtt_log_level
|
||||
to: debug
|
||||
- platform: state
|
||||
entity_id: input_select.zigbee2mqtt_log_level
|
||||
to: warn
|
||||
- platform: state
|
||||
entity_id: input_select.zigbee2mqtt_log_level
|
||||
to: error
|
||||
- platform: state
|
||||
entity_id: input_select.zigbee2mqtt_log_level
|
||||
to: info
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
payload_template: '{{ states(''input_select.zigbee2mqtt_log_level'') }}'
|
||||
topic: zigbee2mqtt/bridge/config/log_level
|
||||
|
||||
- id: enable_zigbee_join
|
||||
alias: Enable Zigbee joining
|
||||
hide_entity: true
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.zigbee_permit_join
|
||||
to: 'on'
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: zigbee2mqtt/bridge/config/permit_join
|
||||
payload: 'true'
|
||||
- service: timer.start
|
||||
data:
|
||||
entity_id: timer.zigbee_permit_join
|
||||
|
||||
- id: disable_zigbee_join
|
||||
alias: Disable Zigbee joining
|
||||
hide_entity: true
|
||||
trigger:
|
||||
- entity_id: input_boolean.zigbee_permit_join
|
||||
platform: state
|
||||
to: 'off'
|
||||
action:
|
||||
- data:
|
||||
payload: 'false'
|
||||
topic: zigbee2mqtt/bridge/config/permit_join
|
||||
service: mqtt.publish
|
||||
- data:
|
||||
entity_id: timer.zigbee_permit_join
|
||||
service: timer.cancel
|
||||
|
||||
- id: disable_zigbee_join_timer
|
||||
alias: Disable Zigbee joining by timer
|
||||
hide_entity: true
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: timer.finished
|
||||
event_data:
|
||||
entity_id: timer.zigbee_permit_join
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: zigbee2mqtt/bridge/config/permit_join
|
||||
payload: 'false'
|
||||
- service: input_boolean.turn_off
|
||||
data:
|
||||
entity_id: input_boolean.zigbee_permit_join
|
||||
|
||||
light:
|
||||
- platform: "mqtt"
|
||||
name: "towerlamp"
|
||||
state_topic: "zigbee2mqtt/tower lamp"
|
||||
availability_topic: "zigbee2mqtt/bridge/state"
|
||||
brightness: true
|
||||
color_temp: true
|
||||
xy: true
|
||||
schema: "json"
|
||||
command_topic: "zigbee2mqtt/tower lamp/set"
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user