mirror of
https://github.com/GeorgeSG/sarah.git
synced 2026-06-21 02:47:44 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
custom_components/
|
||||
secrets.yaml
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.yaml": "home-assistant"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
# https://www.home-assistant.io/integrations/automation
|
||||
|
||||
#
|
||||
# ─── PUBLIC ─────────────────────────────────────────────────────────────────────
|
||||
#
|
||||
|
||||
- id: leaving_home
|
||||
alias: Leaving home
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: person.georgi
|
||||
to: "not_home"
|
||||
action:
|
||||
- service: script.security_camera_on
|
||||
- service: media_player.turn_off
|
||||
entity_id: media_player.living_room_tv
|
||||
- service: media_player.turn_off
|
||||
entity_id: media_player.living_room_tv_2
|
||||
- service: light.turn_off
|
||||
entity_id: light.living_room_all_lights
|
||||
|
||||
- id: coming_home
|
||||
alias: Coming home
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: person.georgi
|
||||
to: "home"
|
||||
action:
|
||||
- service: script.security_camera_off
|
||||
- service: light.turn_on
|
||||
entity_id: light.living_room_all_lights
|
||||
|
||||
- alias: Play welcome music when I come back
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: person.georgi
|
||||
to: "home"
|
||||
action:
|
||||
- service: media_player.turn_on
|
||||
entity_id: media_player.living_room_tv_2
|
||||
- delay: "00:00:10"
|
||||
- service: spotcast.start
|
||||
data:
|
||||
device_name: "Living Room TV"
|
||||
uri: "spotify:playlist:1dstTefWFQaBFTC6CjcEHd"
|
||||
random_song: true
|
||||
|
||||
#
|
||||
# ─── PRIVATE ────────────────────────────────────────────────────────────────────
|
||||
#
|
||||
|
||||
# Hack - the switch.camera initial state is wrong (ON) when the server starts.
|
||||
- id: hass_startup
|
||||
alias: "Hass startup"
|
||||
trigger:
|
||||
- platform: homeassistant
|
||||
event: start
|
||||
action:
|
||||
- service: switch.turn_off
|
||||
entity_id: switch.camera
|
||||
|
||||
- id: enable_guest_mode
|
||||
alias: Enable Guest Mode
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
from: "off"
|
||||
to: "on"
|
||||
action:
|
||||
- service: automation.turn_off
|
||||
entity_id: automation.leaving_home
|
||||
- service: automation.turn_off
|
||||
entity_id: automation.coming_home
|
||||
|
||||
- id: disable_guest_mode
|
||||
alias: Disable Guest Mode
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
from: "on"
|
||||
to: "off"
|
||||
action:
|
||||
- service: automation.turn_on
|
||||
entity_id: automation.leaving_home
|
||||
- service: automation.turn_on
|
||||
entity_id: automation.coming_home
|
||||
|
||||
- id: enable_sleep_mode
|
||||
alias: Enable Sleep Mode
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.sleep_mode
|
||||
from: "off"
|
||||
to: "on"
|
||||
action:
|
||||
- service: media_player.turn_off
|
||||
entity_id: media_player.living_room_tv
|
||||
- service: media_player.turn_off
|
||||
entity_id: media_player.living_room_tv_2
|
||||
- service: light.turn_off
|
||||
entity_id: light.living_room_all_lights
|
||||
|
||||
- alias: Trigger Domestina Start
|
||||
trigger:
|
||||
platform: time
|
||||
at: "08:30:00"
|
||||
condition:
|
||||
- condition: time
|
||||
weekday: thu
|
||||
action:
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.domestina
|
||||
|
||||
- alias: On Domestina Start
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.domestina
|
||||
from: "off"
|
||||
to: "on"
|
||||
action:
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.guest_mode
|
||||
- service: notify.mobile_app_carbon
|
||||
data:
|
||||
message: "Enabling Domestina Mode"
|
||||
|
||||
- alias: Trigger Domestina End
|
||||
trigger:
|
||||
platform: time
|
||||
at: "13:00:00"
|
||||
condition:
|
||||
- condition: time
|
||||
weekday: thu
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.domestina
|
||||
|
||||
- alias: On Domestina End
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_boolean.domestina
|
||||
from: "on"
|
||||
to: "off"
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.guest_mode
|
||||
- service: automation.turn_on
|
||||
entity_id: automation.leaving_home
|
||||
- service: notify.mobile_app_carbon
|
||||
data:
|
||||
message: "Disabling Domestina Mode"
|
||||
@@ -0,0 +1,9 @@
|
||||
# https://www.home-assistant.io/integrations/binary_sensor
|
||||
|
||||
- platform: template
|
||||
sensors:
|
||||
camera_state:
|
||||
friendly_name: "Security camera"
|
||||
device_class: safety
|
||||
value_template: >-
|
||||
{{ state_attr('camera.amcrest_camera', 'motion_recording') != 'on' }}
|
||||
@@ -0,0 +1,178 @@
|
||||
homeassistant:
|
||||
name: Sarah
|
||||
latitude: !secret home_latitude
|
||||
longitude: !secret home_longitude
|
||||
elevation: !secret home_elevation
|
||||
unit_system: metric
|
||||
time_zone: Europe/Sofia
|
||||
customize: !include_dir_merge_named customize
|
||||
|
||||
#
|
||||
# ─── HOME ASSISTANT COMPONENTS ENABLED ──────────────────────────────────────────
|
||||
#
|
||||
|
||||
# https://www.home-assistant.io/components/config
|
||||
config:
|
||||
|
||||
# https://home-assistant.io/components/http
|
||||
http:
|
||||
login_attempts_threshold: 20
|
||||
|
||||
# lovelace:
|
||||
# mode: yaml
|
||||
|
||||
# https://www.home-assistant.io/components/logbook
|
||||
logbook:
|
||||
|
||||
# https://www.home-assistant.io/components/map
|
||||
map:
|
||||
|
||||
# https://www.home-assistant.io/integrations/mobile_app
|
||||
mobile_app:
|
||||
|
||||
# https://www.home-assistant.io/components/person
|
||||
person:
|
||||
- name: Georgi
|
||||
id: !secret georgi_user_id
|
||||
user_id: !secret georgi_user_id
|
||||
device_trackers:
|
||||
- device_tracker.carbon
|
||||
|
||||
# https://www.home-assistant.io/components/system_health
|
||||
system_health:
|
||||
|
||||
# https://www.home-assistant.io/components/updater
|
||||
updater:
|
||||
|
||||
# https://www.home-assistant.io/components/logger
|
||||
# logger:
|
||||
# default: notset
|
||||
|
||||
#
|
||||
# ─── INTEGRATIONS ───────────────────────────────────────────────────────────────
|
||||
#
|
||||
|
||||
# https://www.home-assistant.io/integrations/amcrest
|
||||
amcrest:
|
||||
- host: !secret amcrest_ip
|
||||
username: !secret amcrest_username
|
||||
password: !secret amcrest_password
|
||||
resolution: low
|
||||
scan_interval: 5
|
||||
binary_sensors:
|
||||
- motion_detected
|
||||
- online
|
||||
|
||||
# https://www.home-assistant.io/integrations/automation
|
||||
automation: !include automations.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/binary_sensor
|
||||
binary_sensor: !include binary_sensor.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/device_tracker
|
||||
device_tracker:
|
||||
- platform: tile
|
||||
username: !secret tile_username
|
||||
password: !secret tile_password
|
||||
|
||||
# https://www.home-assistant.io/integrations/ffmpeg
|
||||
ffmpeg:
|
||||
|
||||
# https://www.home-assistant.io/integrations/frontend
|
||||
frontend:
|
||||
themes: !include_dir_merge_named themes
|
||||
|
||||
# https://www.home-assistant.io/integrations/group
|
||||
group: !include groups.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/history
|
||||
history:
|
||||
|
||||
# https://www.home-assistant.io/integrations/input_boolean
|
||||
input_boolean: !include input_boolean.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/light
|
||||
light: !include light.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/media_extractor
|
||||
media_extractor:
|
||||
|
||||
# https://www.home-assistant.io/integrations/scene
|
||||
scene: !include scenes.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/script
|
||||
script: !include scripts.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/sensor
|
||||
sensor: !include sensor.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/spotify
|
||||
spotify:
|
||||
client_id: !secret spotify_client_id
|
||||
client_secret: !secret spotify_client_secret
|
||||
|
||||
# https://www.home-assistant.io/integrations/sun
|
||||
sun:
|
||||
|
||||
# https://www.home-assistant.io/integrations/switch
|
||||
switch: !include switch.yaml
|
||||
|
||||
# https://www.home-assistant.io/integrations/tts
|
||||
tts:
|
||||
- platform: amazon_polly
|
||||
aws_access_key_id: !secret aws_polly_client_id
|
||||
aws_secret_access_key: !secret aws_polly_client_secret
|
||||
region_name: eu-central-1
|
||||
voice: Emma
|
||||
|
||||
# https://www.home-assistant.io/integrations/tuya
|
||||
tuya:
|
||||
username: !secret tuya_username
|
||||
password: !secret tuya_password
|
||||
country_code: bg
|
||||
|
||||
# https://www.home-assistant.io/integrations/upnp
|
||||
upnp:
|
||||
|
||||
# https://www.home-assistant.io/integrations/wake_on_lan
|
||||
wake_on_lan:
|
||||
|
||||
# https://www.home-assistant.io/integrations/webostv
|
||||
webostv:
|
||||
- host: !secret living_room_tv_ip
|
||||
name: Living Room TV
|
||||
turn_on_action:
|
||||
service: wake_on_lan.send_magic_packet
|
||||
data:
|
||||
mac: !secret living_room_tv_mac
|
||||
# customize:
|
||||
# sources:
|
||||
# - livetv
|
||||
# - youtube
|
||||
# - makotv
|
||||
# - netflix
|
||||
|
||||
# https://www.home-assistant.io/integrations/zeroconf
|
||||
zeroconf:
|
||||
|
||||
# https://www.home-assistant.io/integrations/zone
|
||||
zone: !include zone.yaml
|
||||
|
||||
#
|
||||
# ─── PLUGINS ────────────────────────────────────────────────────────────────────
|
||||
#
|
||||
|
||||
spotcast:
|
||||
username: !secret spotify_spotcast_username
|
||||
password: !secret spotify_spotcast_password
|
||||
|
||||
hacs:
|
||||
token: !secret hacs_github_token
|
||||
appdaemon: true
|
||||
|
||||
# Philips Purifier
|
||||
fan:
|
||||
platform: philips-airpurifier
|
||||
host: !secret philips_purifier_ip
|
||||
|
||||
uilogs:
|
||||
@@ -0,0 +1,249 @@
|
||||
elements:
|
||||
- icon: 'mdi:fan'
|
||||
style:
|
||||
'--iron-icon-height': 45px
|
||||
'--iron-icon-width': 45px
|
||||
color: dodgerblue
|
||||
left: 10%
|
||||
opacity: 0.7
|
||||
top: 7%
|
||||
tap_action: none
|
||||
type: icon
|
||||
- entity: sensor.purifier_speed
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
left: 6%
|
||||
opacity: 1
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 7%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- icon: 'mdi:water-percent'
|
||||
style:
|
||||
'--iron-icon-height': 45px
|
||||
'--iron-icon-width': 45px
|
||||
color: dodgerblue
|
||||
left: 10%
|
||||
top: 20%
|
||||
tap_action: none
|
||||
type: icon
|
||||
- attribute: humidity
|
||||
color_stops: null
|
||||
entity: fan.philips_airpurifier
|
||||
fill: 'rgba(0,0,0,0.3)'
|
||||
font_style:
|
||||
color: white
|
||||
gradient: true
|
||||
max: 100
|
||||
min: 0
|
||||
show_card: null
|
||||
stroke_width: 10
|
||||
style:
|
||||
height: 60px
|
||||
left: 10%
|
||||
top: 20%
|
||||
width: 60px
|
||||
type: 'custom:circle-sensor-card'
|
||||
units: '%'
|
||||
- icon: 'mdi:thermometer'
|
||||
style:
|
||||
'--iron-icon-height': 45px
|
||||
'--iron-icon-width': 45px
|
||||
color: dodgerblue
|
||||
left: 10%
|
||||
top: 35%
|
||||
tap_action: none
|
||||
type: icon
|
||||
- attribute: temperature
|
||||
color_stops: null
|
||||
entity: fan.philips_airpurifier
|
||||
fill: 'rgba(0,0,0,0.3)'
|
||||
font_style:
|
||||
color: white
|
||||
gradient: true
|
||||
max: 100
|
||||
min: 0
|
||||
show_card: null
|
||||
stroke_width: 10
|
||||
style:
|
||||
height: 60px
|
||||
left: 10%
|
||||
top: 35%
|
||||
width: 60px
|
||||
type: 'custom:circle-sensor-card'
|
||||
units: °C
|
||||
- icon: 'mdi:bug'
|
||||
style:
|
||||
'--iron-icon-height': 45px
|
||||
'--iron-icon-width': 45px
|
||||
color: dodgerblue
|
||||
left: 10%
|
||||
top: 50%
|
||||
tap_action: none
|
||||
type: icon
|
||||
- attribute: allergen_index
|
||||
color_stops: null
|
||||
entity: fan.philips_airpurifier
|
||||
fill: 'rgba(0,0,0,0.3)'
|
||||
font_style:
|
||||
color: white
|
||||
gradient: true
|
||||
max: 10
|
||||
min: 0
|
||||
show_card: null
|
||||
stroke_width: 10
|
||||
style:
|
||||
height: 60px
|
||||
left: 10%
|
||||
top: 50%
|
||||
width: 60px
|
||||
type: 'custom:circle-sensor-card'
|
||||
- entity: sensor.purifier_mode
|
||||
prefix: 'Mode: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-right-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
right: 1%
|
||||
text-shadow: 1px 1px black
|
||||
top: 80%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_target_humidity
|
||||
prefix: 'Target humidity: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-right-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
right: 1%
|
||||
text-shadow: 1px 1px black
|
||||
top: 85%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_water_level
|
||||
prefix: 'Water level: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-right-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
right: 1%
|
||||
text-shadow: 1px 1px black
|
||||
top: 90%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_brightness
|
||||
prefix: 'Brightness: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-right-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
right: 1%
|
||||
text-shadow: 1px 1px black
|
||||
top: 95%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_air_quality
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 120%
|
||||
font-weight: bold
|
||||
left: 46%
|
||||
opacity: 1
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 22%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_pre_filter
|
||||
prefix: 'Pre-filter: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-left-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
left: 1%
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 80%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_wick_filter
|
||||
prefix: 'Wick filter: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-left-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
left: 1%
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 85%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_carbon_filter
|
||||
prefix: 'Carbon filter: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-left-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
left: 1%
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 90%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
- entity: sensor.purifier_hepa_filter
|
||||
prefix: 'HEPA filter: '
|
||||
style:
|
||||
border-color: 'rgb(34, 154, 210)'
|
||||
border-left-style: solid
|
||||
color: 'rgb(255, 255, 255)'
|
||||
font-family: Trebuchet MS
|
||||
font-size: 90%
|
||||
font-weight: bold
|
||||
left: 1%
|
||||
opacity: 0.8
|
||||
pointer-events: none
|
||||
text-shadow: 1px 1px black
|
||||
top: 95%
|
||||
transform: 'translate(0%,-50%)'
|
||||
type: state-label
|
||||
image: /local/images/purifier-image.png
|
||||
type: picture-elements
|
||||
@@ -0,0 +1,5 @@
|
||||
automation.coming_home:
|
||||
icon: mdi:home-account
|
||||
|
||||
automation.leaving_home:
|
||||
icon: mdi:home
|
||||
@@ -0,0 +1,5 @@
|
||||
device_tracker.tile_p_6e3c33752f24f417254c039040a984bd:
|
||||
friendly_name: "Georgi's iPhone Tile"
|
||||
|
||||
device_tracker.tile_1bcb2b3021b9f96b:
|
||||
friendly_name: "Keys Tile"
|
||||
@@ -0,0 +1,16 @@
|
||||
# https://www.home-assistant.io/integrations/input_boolean
|
||||
|
||||
sleep_mode:
|
||||
name: Sleep Mode
|
||||
initial: off
|
||||
icon: mdi:sleep
|
||||
|
||||
guest_mode:
|
||||
name: Guest Mode
|
||||
initial: off
|
||||
icon: mdi:human-greeting
|
||||
|
||||
domestina:
|
||||
name: Domestina Time
|
||||
initial: off
|
||||
icon: mdi:broom
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# https://www.home-assistant.io/integrations/light
|
||||
|
||||
- platform: group
|
||||
name: Living Room Main Lights
|
||||
entities:
|
||||
- light.living_room_1
|
||||
- light.living_room_2
|
||||
- light.living_room_3
|
||||
- light.living_room_4
|
||||
- platform: group
|
||||
name: Living Room All Lights
|
||||
entities:
|
||||
- light.living_room_1
|
||||
- light.living_room_2
|
||||
- light.living_room_3
|
||||
- light.living_room_4
|
||||
- light.pc
|
||||
@@ -0,0 +1,74 @@
|
||||
# https://www.home-assistant.io/integrations/script
|
||||
|
||||
sarah_restart:
|
||||
alias: Restart SARAH
|
||||
sequence:
|
||||
service: homeassistant.restart
|
||||
|
||||
security_camera_on:
|
||||
alias: Turn Security Camera on
|
||||
sequence:
|
||||
- service: amcrest.goto_preset
|
||||
entity_id: camera.amcrest_camera
|
||||
data:
|
||||
preset: 1
|
||||
- service: amcrest.enable_motion_recording
|
||||
entity_id: camera.amcrest_camera
|
||||
- service: amcrest.enable_recording
|
||||
entity_id: camera.amcrest_camera
|
||||
- service: amcrest.enable_audio
|
||||
entity_id: camera.amcrest_camera
|
||||
|
||||
security_camera_off:
|
||||
alias: Turn Security Camera off
|
||||
sequence:
|
||||
- service: amcrest.goto_preset
|
||||
entity_id: camera.amcrest_camera
|
||||
data:
|
||||
preset: 3
|
||||
- service: amcrest.disable_motion_recording
|
||||
entity_id: camera.amcrest_camera
|
||||
- service: amcrest.disable_recording
|
||||
entity_id: camera.amcrest_camera
|
||||
- service: amcrest.disable_audio
|
||||
entity_id: camera.amcrest_camera
|
||||
|
||||
tv_chill:
|
||||
alias: TV Chill
|
||||
sequence:
|
||||
- service: media_extractor.play_media
|
||||
data:
|
||||
entity_id: media_player.living_room_tv_2
|
||||
media_content_id: "https://www.youtube.com/watch?v=UgHKb_7884o"
|
||||
media_content_type: video/youtube
|
||||
|
||||
latest_pds:
|
||||
alias: Play the latest PDS
|
||||
sequence:
|
||||
- service: media_extractor.play_media
|
||||
data_template:
|
||||
entity_id: media_player.living_room_tv_2
|
||||
media_content_id: "{{ state_attr('sensor.philip_defranco', 'url') }}"
|
||||
media_content_type: video/youtube
|
||||
|
||||
say:
|
||||
alias: Sonos TTS
|
||||
sequence:
|
||||
- service: sonos.snapshot
|
||||
data_template:
|
||||
entity_id: media_player.master_bedroom
|
||||
- delay: "00:00:03"
|
||||
# - service: media_player.play_media
|
||||
# data:
|
||||
# entity_id: media_player.master_bedroom
|
||||
# media_content_id: http://REDACTED33:8123/local/sounds/two-tone-chime.mp3
|
||||
# media_content_type: music
|
||||
# - delay: '00:00:02'
|
||||
- service: tts.amazon_polly_say
|
||||
data_template:
|
||||
entity_id: media_player.master_bedroom
|
||||
message: "{{ what }}"
|
||||
- delay: "00:00:03"
|
||||
- service: sonos.restore
|
||||
data_template:
|
||||
entity_id: media_player.master_bedroom
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
# Youtube sensor
|
||||
- platform: youtube
|
||||
channel_id: UClFSU9_bUb4Rc6OYfTt5SPw
|
||||
|
||||
# Philips Purifier sensors
|
||||
- platform: template
|
||||
sensors:
|
||||
purifier_air_quality:
|
||||
friendly_name: "Air quality"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.pm25 }}"
|
||||
purifier_humidity:
|
||||
friendly_name: "Humidity"
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.humidity }}"
|
||||
purifier_temperature:
|
||||
friendly_name: "Temperature"
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.temperature }}"
|
||||
purifier_speed:
|
||||
friendly_name: "Speed"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.speed }}"
|
||||
purifier_allergens:
|
||||
friendly_name: "Allergen index"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.allergen_index }}"
|
||||
purifier_mode:
|
||||
friendly_name: "Mode"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.function }}"
|
||||
purifier_pre_filter:
|
||||
friendly_name: "Pre-filter"
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.pre_filter }}"
|
||||
purifier_wick_filter:
|
||||
friendly_name: "Wick filter"
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.wick_filter }}"
|
||||
purifier_carbon_filter:
|
||||
friendly_name: "Carbon filter"
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.carbon_filter }}"
|
||||
purifier_hepa_filter:
|
||||
friendly_name: "HEPA filter"
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes. hepa_filter}}"
|
||||
purifier_target_humidity:
|
||||
friendly_name: "Target humidity"
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.target_humidity }}"
|
||||
purifier_water_level:
|
||||
friendly_name: "Water level"
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.water_level }}"
|
||||
purifier_brightness:
|
||||
friendly_name: "brightness"
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ states.fan.philips_airpurifier.attributes.light_brightness }}"
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
# https://www.home-assistant.io/integrations/switch
|
||||
|
||||
- platform: template
|
||||
switches:
|
||||
camera:
|
||||
friendly_name: "Security Camera"
|
||||
value_template: "{{ state_attr('camera.amcrest_camera', 'motion_recording') == 'on' }}"
|
||||
icon_template: >
|
||||
{% if state_attr('camera.amcrest_camera', 'motion_recording') == 'on' %} mdi:shield-home
|
||||
{% else %} mdi:shield-off
|
||||
{% endif %}
|
||||
turn_on:
|
||||
service: script.security_camera_on
|
||||
turn_off:
|
||||
service: script.security_camera_off
|
||||
@@ -0,0 +1,35 @@
|
||||
# WIP
|
||||
|
||||
title: Home
|
||||
views:
|
||||
- path: home
|
||||
title: Home
|
||||
panel: false
|
||||
badges:
|
||||
- entity: binary_sensor.updater
|
||||
- entity: sun.sun
|
||||
- entity: person.georgi
|
||||
|
||||
cards:
|
||||
- entities:
|
||||
- entity: device_tracker.tile_p_6e3c33752f24f417254c039040a984bd
|
||||
- entity: device_tracker.tile_1bcb2b3021b9f96b
|
||||
theme: default
|
||||
title: Tiles
|
||||
type: entities
|
||||
|
||||
- entity: weather.home
|
||||
type: weather-forecast
|
||||
- entity: light.pc_light
|
||||
name: PC Light
|
||||
type: light
|
||||
|
||||
- path: media
|
||||
title: Media
|
||||
cards:
|
||||
- entity: media_player.living_room_chromecast
|
||||
type: media-control
|
||||
- entity: media_player.living_room_tv
|
||||
type: media-control
|
||||
- entity: media_player.spotify
|
||||
type: media-control
|
||||
@@ -0,0 +1,13 @@
|
||||
# https://www.home-assistant.io/components/zone
|
||||
|
||||
- name: Home
|
||||
latitude: !secret home_latitude
|
||||
longitude: !secret home_longitude
|
||||
radius: 20
|
||||
icon: mdi:home
|
||||
|
||||
- name: Work
|
||||
latitude: !secret work_latitude
|
||||
longitude: !secret work_longitude
|
||||
radius: 60
|
||||
icon: mdi:worker
|
||||
Reference in New Issue
Block a user