Initial Commit

This commit is contained in:
2022-01-02 14:56:19 -05:00
commit 25b434a93b
16 changed files with 2431 additions and 0 deletions

173
.gitattributes vendored Normal file
View File

@ -0,0 +1,173 @@
## GITATTRIBUTES FOR WEB PROJECTS
#
# These settings are for any web project.
#
# Details per file setting:
# text These files should be normalized (i.e. convert CRLF to LF).
# binary These files are binary and should be left untouched.
#
# Note that binary is a macro for -text -diff.
######################################################################
## AUTO-DETECT - Handle line endings automatically for files detected
## as text and leave all files detected as binary untouched.
## This will handle all files NOT defined below.
* text=auto
## SOURCE CODE
*.bat text
*.coffee text
*.css text
*.htm text
*.html text
*.inc text
*.ini text
*.js text
*.jsx text
*.json text
*.less text
*.php text
*.pl text
*.py text
*.rb text
*.sass text
*.scm text
*.scss text
*.sh text
*.sql text
*.styl text
*.ts text
*.xml text
*.xhtml text
## DOCUMENTATION
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
## TEMPLATES
*.dot text
*.ejs text
*.haml text
*.handlebars text
*.hbs text
*.hbt text
*.jade text
*.latte text
*.mustache text
*.phtml text
*.tmpl text
## LINTERS
.csslintrc text
.eslintrc text
.jscsrc text
.jshintrc text
.jshintignore text
.stylelintrc text
## CONFIGS
*.bowerrc text
*.cnf text
*.conf text
*.config text
.editorconfig text
.gitattributes text
.gitconfig text
.gitignore text
.htaccess text
*.npmignore text
*.yaml text
*.yml text
Makefile text
makefile text
## HEROKU
Procfile text
.slugignore text
## GRAPHICS
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
## AUDIO
*.kar binary
*.m4a binary
*.mid binary
*.midi binary
*.mp3 binary
*.ogg binary
*.ra binary
## VIDEO
*.3gpp binary
*.3gp binary
*.as binary
*.asf binary
*.asx binary
*.fla binary
*.flv binary
*.m4v binary
*.mng binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.swc binary
*.swf binary
*.webm binary
## ARCHIVES
*.7z binary
*.gz binary
*.rar binary
*.tar binary
*.zip binary
## FONTS
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
## EXECUTABLES
*.exe binary
*.pyc binary

62
.gitignore vendored Normal file
View File

@ -0,0 +1,62 @@
# ignore hidden folders
/.storage
/.cloud
/.google.token
# ignore some directories.
/icloud/
/www/
/tts/
/deps/
/hadashboards/
/intents/
/themes/
/custom_components
/deps
/hacs
/image
/node-red
# ignore any of these files no matter where they are using double *
**.DS_Store
**._*
**.HA_VERSION
**.pyc
**.conf
**.uuid
**.txt
**.log
**.db
**.sqlite
**.xml
**secrets*
**known_devices.yaml
**google_calendars.yaml
**ip_bans.yaml
**.spotify-token-cache
**zones.yaml
**test.yaml
**testing.yaml
**.homekit*
**.vscode
**.pid
**.xml
**.csr
**.crt
**.key
**core.*
**OZW_Log.txt
**home-assistant.log
**home-assistant_v2.db
**.db-journal
**.db-shm
**.db-wal
**.sqlite
**__pycache__
**phue.conf
**ios.conf
**pyozw.sqlite
**ipchange.yaml
**production_auth.json
**.log*

247
automations.yaml Normal file
View File

@ -0,0 +1,247 @@
- id: '1640833273099'
alias: NWS Announce Weather Alert for Tornado
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.weatheralerts_1_active_alerts
attribute: tornado_warning_count
above: '0'
condition: []
action:
- service: switch.turn_off
target:
entity_id:
- switch.adaptive_lighting_basement_studio
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_living_room
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_mud_room
- switch.adaptive_lighting_nursery
- switch.adaptive_lighting_upstairs_hallway
- service: scene.turn_on
target:
entity_id:
- scene.basement_studio_bright
- scene.front_porch_bright
- scene.furnace_room_bright
- scene.kallen_bedroom_bright
- scene.living_room_bright
- scene.master_bedroom_bright
- scene.mud_room_bright
- scene.nursery_bright
- scene.upstairs_hallway_bright
- service: notify.notify
data:
title: Tornado Warning - TAKE COVER!
message: The National Weather Service has issued a Tornado Warning for our area.
Take Cover NOW!!!!
- service: notify.alexa_media
data:
data:
method: all
type: announce
message: A tornado warning has been issued, please take cover immediately! A
tornado warning has been issued, please take cover immediately! A tornado
warning has been issued, please take cover immediately!
target: Living Room Echo Dot, Basement Echo Dot
- delay:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
- service: notify.alexa_media
data:
data:
method: all
type: announce
message: A tornado warning has been issued, please take cover immediately! A
tornado warning has been issued, please take cover immediately! A tornado
warning has been issued, please take cover immediately!
target: Living Room Echo Dot, Basement Echo Dot
mode: single
- id: '1640916845901'
alias: Cast to Chromecast
description: ''
use_blueprint:
path: kind3r/cast-and-re-cast-a-lovelace-view-to-a-google-hub.yaml
input:
dashboard: lovelace
player: media_player.living_room_tv
view: chromecast
- id: '1640989510134'
alias: New Years
description: Flash lights for New Years
trigger:
- platform: time
at: 00:00:00
condition: []
action:
- service: light.turn_off
target:
area_id:
- basement_studio
- furnace_room
- kallen_bedroom
- living_room
- master_bedroom
- mud_room
- nursery
- upstairs_hallway
- service: switch.turn_off
target:
entity_id:
- switch.adaptive_lighting_basement_studio
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_living_room
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_mud_room
- switch.adaptive_lighting_nursery
- switch.adaptive_lighting_upstairs_hallway
- service: notify.alexa_media
data:
target: Living Room Echo Dot
message: Happy new year! Here's to 2022!
data:
method: all
type: announce
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 0
- service: light.turn_on
target:
entity_id:
- light.hallway_overhead
- light.kallen_bedroom_light
- light.living_room_overhead_1
- light.living_room_overhead_2
- light.master_bedroom_front
- light.master_bedroom_side
- light.mud_room_overhead
- light.nursery_light
data:
flash: long
- delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
- service: light.turn_off
target:
area_id:
- basement_studio
- furnace_room
- kallen_bedroom
- living_room
- master_bedroom
- mud_room
- nursery
- upstairs_hallway
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 500
- service: switch.turn_on
target:
entity_id:
- switch.adaptive_lighting_basement_studio
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_living_room
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_mud_room
- switch.adaptive_lighting_nursery
- switch.adaptive_lighting_upstairs_hallway
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 500
- service: light.turn_on
target:
area_id:
- living_room
- mud_room
mode: single
- id: '1641101491581'
alias: Family Has Arrived
description: Runs when family arrives at home
trigger:
- platform: zone
entity_id: person.christina_stork
zone: zone.home
event: enter
- platform: zone
entity_id: person.tony_stork
zone: zone.home
event: enter
- platform: state
entity_id: input_boolean.family_is_home
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: input_boolean.family_is_home
state: 'off'
- condition: state
entity_id: binary_sensor.night
state: 'on'
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.family_is_home
- service: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.alexa_guard_9ee3b
- service: light.turn_on
target:
area_id:
- living_room
- mud_room
data: {}
- service: light.turn_off
target:
area_id:
- furnace_room
- kallen_bedroom
- nursery
- master_bedroom
- upstairs_hallway
- basement_studio
mode: single
- id: '1641102018783'
alias: Family Has Left
description: Runs when the family has left home
trigger:
- platform: state
entity_id: group.family
from: home
to: not_home
- platform: state
entity_id: input_boolean.family_is_home
from: 'on'
to: 'off'
condition:
- condition: state
entity_id: input_boolean.family_is_home
state: 'on'
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.family_is_home
- service: light.turn_off
target:
area_id:
- basement_studio
- furnace_room
- kallen_bedroom
- living_room
- master_bedroom
- mud_room
- nursery
- upstairs_hallway
- service: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.alexa_guard_9ee3b
mode: single

9
binary_sensor.yaml Normal file
View File

@ -0,0 +1,9 @@
- platform: workday
country: US
province: OH
workdays: [mon, tue, wed, thu, fri]
- platform: tod
name: Night
after: sunset
after_offset: "-00:30"
before: sunrise

View File

@ -0,0 +1,54 @@
blueprint:
name: Motion-activated Light
description: Turn on a light when motion is detected.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
input:
motion_entity:
name: Motion Sensor
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
action:
- alias: "Turn on the light"
service: light.turn_on
target: !input light_target
- alias: "Wait until there is no motion from device"
wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- alias: "Wait the number of seconds that has been set"
delay: !input no_motion_wait
- alias: "Turn off the light"
service: light.turn_off
target: !input light_target

View File

@ -0,0 +1,44 @@
blueprint:
name: Zone Notification
description: Send a notification to a device when a person leaves a specific zone.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml
input:
person_entity:
name: Person
selector:
entity:
domain: person
zone_entity:
name: Zone
selector:
entity:
domain: zone
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
integration: mobile_app
trigger:
platform: state
entity_id: !input person_entity
variables:
zone_entity: !input zone_entity
# This is the state of the person when it's in this zone.
zone_state: "{{ states[zone_entity].name }}"
person_entity: !input person_entity
person_name: "{{ states[person_entity].name }}"
condition:
condition: template
value_template: "{{ trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}"
action:
- alias: "Notify that a person has left the zone"
domain: mobile_app
type: notify
device_id: !input notify_device
message: "{{ person_name }} has left {{ zone_state }}"

View File

@ -0,0 +1,75 @@
blueprint:
name: Cast to Google Hub
description: Cast a lovelace view to a Google Hub. This tries to bypass the 10 min
timeout for the picture frame by re-casting every 9 min
domain: automation
input:
player:
name: Google Hub
description: Google Hub or Chromecast device to cast to
selector:
entity:
integration: cast
view:
name: Lovelace view path
description: Path of the view to cast. A path has to be defined in your Lovelace
YAML for each view, as outlined in the views documentation.
dashboard:
name: Lovelace dashboard
description: Path to lovelace. Defaults to 'lovelace' if empty.
default: lovelace
source_url: https://community.home-assistant.io/t/cast-and-re-cast-a-lovelace-view-to-a-google-hub/259631
trigger:
- platform: state
entity_id: !input 'player'
to: 'off'
for: 00:00:20
- platform: state
entity_id: !input 'player'
to: paused
for: 00:00:20
- platform: time_pattern
minutes: /9
- platform: time_pattern
minutes: '0'
action:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: !input 'player'
state: 'off'
- condition: state
entity_id: !input 'player'
state: paused
for: 00:00:20
sequence:
- service: media_player.volume_mute
data:
is_volume_muted: true
entity_id: !input 'player'
- service: media_player.turn_off
data:
entity_id: !input 'player'
- delay:
seconds: 2
- service: media_player.turn_on
data:
entity_id: !input 'player'
- service: cast.show_lovelace_view
data:
view_path: !input 'view'
dashboard_path: !input 'dashboard'
entity_id: !input 'player'
- service: cast.show_lovelace_view
data:
view_path: !input 'view'
dashboard_path: !input 'dashboard'
entity_id: !input 'player'
- delay:
seconds: 10
- service: media_player.volume_mute
data:
is_volume_muted: false
entity_id: !input 'player'

View File

@ -0,0 +1,84 @@
blueprint:
name: Confirmable Notification
description: >-
A script that sends an actionable notification with a confirmation before
running the specified action.
domain: script
source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml
input:
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
integration: mobile_app
title:
name: "Title"
description: "The title of the button shown in the notification."
default: ""
selector:
text:
message:
name: "Message"
description: "The message body"
selector:
text:
confirm_text:
name: "Confirmation Text"
description: "Text to show on the confirmation button"
default: "Confirm"
selector:
text:
confirm_action:
name: "Confirmation Action"
description: "Action to run when notification is confirmed"
default: []
selector:
action:
dismiss_text:
name: "Dismiss Text"
description: "Text to show on the dismiss button"
default: "Dismiss"
selector:
text:
dismiss_action:
name: "Dismiss Action"
description: "Action to run when notification is dismissed"
default: []
selector:
action:
mode: restart
sequence:
- alias: "Set up variables"
variables:
action_confirm: "{{ 'CONFIRM_' ~ context.id }}"
action_dismiss: "{{ 'DISMISS_' ~ context.id }}"
- alias: "Send notification"
domain: mobile_app
type: notify
device_id: !input notify_device
title: !input title
message: !input message
data:
actions:
- action: "{{ action_confirm }}"
title: !input confirm_text
- action: "{{ action_dismiss }}"
title: !input dismiss_text
- alias: "Awaiting response"
wait_for_trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_confirm }}"
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_dismiss }}"
- choose:
- conditions: "{{ wait.trigger.event.data.action == action_confirm }}"
sequence: !input confirm_action
- conditions: "{{ wait.trigger.event.data.action == action_dismiss }}"
sequence: !input dismiss_action

3
cameras.yaml Normal file
View File

@ -0,0 +1,3 @@
- platform: generic
still_image_url: https://radblast.wunderground.com/cgi-bin/radar/WUNIDS_map?num=20&type=N0Q&mapx=400&mapy=240&brand=wui&delay=15&frame=0&scale=0.5413043478260869&transx=-66.83635825614692&transy=26.09366154044801&severe=1&smooth=1&centerx=333.1636417438531&centery=266.093661540448&station=IWX&rainsnow=0&lightning=0&noclutter=1&showlabels=1&showstorms=0&rand=27322492
name: Defiance Weather Radar

34
configuration.yaml Normal file
View File

@ -0,0 +1,34 @@
homeassistant:
packages: !include_dir_named packages
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
camera: !include cameras.yaml
input_boolean: !include input_boolean.yaml
binary_sensor: !include binary_sensor.yaml
sensor: !include sensor.yaml
media_player:
- platform: androidtv
name: Living Room FireTV
host: 192.168.1.56
state_detection_rules:
'com.amazon.tv.launcher':
- 'standby'
'com.netflix.ninja':
- 'media_session_state'
'com.amazon.avod':
- 'standby'
frontend:
themes: !include_dir_merge_named themes
extra_module_url:
- /hacsfiles/hass-hue-icons/hass-hue-icons.js

8
groups.yaml Normal file
View File

@ -0,0 +1,8 @@
Family:
- person.tony_stork
- person.christina_stork
Xbox In Game:
- binary_sensor.kjsgamer2012_in_game
- binary_sensor.irishpirate1988_in_game
- binary_sensor.tm24fan_in_game

0
input_boolean.yaml Normal file
View File

1470
packages/weatheralerts.yaml Normal file

File diff suppressed because it is too large Load Diff

0
scenes.yaml Normal file
View File

158
scripts.yaml Normal file
View File

@ -0,0 +1,158 @@
start_netflix:
alias: Start Netflix
sequence:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: com.netflix.ninja
mode: single
icon: mdi:netflix
stop_netflix:
alias: Stop Netflix
sequence:
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: '!com.netflix.ninja'
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
mode: single
icon: mdi:netflix
give_me_darkness:
alias: Give Me Darkness
sequence:
- service: switch.turn_on
target:
entity_id:
- switch.adaptive_lighting_sleep_mode_upstairs_hallway
- switch.adaptive_lighting_sleep_mode_mud_room
- service: light.turn_off
target:
device_id:
- cfa5796f2572082c37db92f809e432bc
- 3ccbb8face40bff22fd924966bbb19f5
area_id:
- kallen_bedroom
- master_bedroom
mode: single
icon: mdi:weather-night
start_youtube:
alias: Start Youtube
sequence:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: com.amazon.firetv.youtube
mode: single
icon: mdi:youtube
stop_youtube:
alias: Stop Youtube
sequence:
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: '!com.amazon.firetv.youtube'
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
mode: single
icon: mdi:youtube
start_twitch:
alias: Start Twitch
sequence:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: tv.twitch.android.viewer
mode: single
icon: mdi:twitch
stop_twitch:
alias: Stop Twitch
sequence:
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: '!tv.twitch.android.viewer'
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
mode: single
icon: mdi:twitch
start_spotify:
alias: Start Spotify
sequence:
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: com.spotify.tv.android
mode: single
icon: mdi:spotify
stop_spotify:
alias: Stop Spotify
sequence:
- service: media_player.select_source
target:
entity_id: media_player.living_room_firetv
data:
source: '!com.spotify.tv.android'
mode: single
icon: mdi:spotify
goodnight:
alias: Goodnight
sequence:
- service: scene.turn_on
target:
entity_id:
- scene.upstairs_hallway_nightlight
- scene.mud_room_nightlight
- service: light.turn_off
target:
device_id:
- cfa5796f2572082c37db92f809e432bc
- 3ccbb8face40bff22fd924966bbb19f5
area_id:
- basement_studio
- master_bedroom
- kallen_bedroom
- furnace_room
- mud_room
- nursery
- service: switch.turn_off
target:
area_id: basement_studio
- service: switch.turn_on
target:
entity_id:
- switch.basement_echo_dot_do_not_disturb_switch
- switch.living_room_echo_dot_do_not_disturb_switch
mode: single
icon: mdi:weather-night
alexa_tts_test:
alias: Alexa TTS Test
sequence:
- service: notify.alexa_media
data:
data:
method: all
type: announce
target: Living Room Echo Dot
message: I farted
mode: single
icon: mdi:test-tube

10
sensor.yaml Normal file
View File

@ -0,0 +1,10 @@
- platform: time_date
display_options:
- 'time'
- 'date'
- 'date_time'
- 'date_time_utc'
- 'date_time_iso'
- 'time_date'
- 'time_utc'
- 'beat'