mirror of
https://github.com/GeorgeSG/sarah.git
synced 2026-04-19 10:08:18 +00:00
Compare commits
18 Commits
253f50d378
...
a44c68bd04
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a44c68bd04 | ||
|
|
2b9a55b0ff | ||
|
|
01e58498ef | ||
|
|
dd145e690b | ||
|
|
a2fd8dd9f5 | ||
|
|
4f1a2d302b | ||
|
|
2698986600 | ||
|
|
c0cae3cd66 | ||
|
|
0af50d1139 | ||
|
|
8d4ba1905d | ||
|
|
7c5856bcc2 | ||
|
|
886fa1433e | ||
|
|
fb527049bd | ||
|
|
64bf08afc0 | ||
|
|
3da6fa7c95 | ||
|
|
73da47a3c4 | ||
|
|
9797a31581 | ||
|
|
edc91fdce4 |
@@ -1 +1 @@
|
||||
2024.11.2
|
||||
2026.1.3
|
||||
1
config/.gitignore
vendored
1
config/.gitignore
vendored
@@ -13,6 +13,7 @@ themes/
|
||||
tts/
|
||||
www/audio
|
||||
www/community
|
||||
www/media/ha-bambulab
|
||||
webostv.conf
|
||||
zigbee.db
|
||||
*.db
|
||||
|
||||
@@ -1,36 +1,3 @@
|
||||
- id: '1699305396452'
|
||||
alias: Terrarium · Climate alert
|
||||
description: ''
|
||||
trigger:
|
||||
- platform: template
|
||||
value_template: '{{ states(''sensor.terrarium_weather_temperature'')|float > 29
|
||||
or states(''sensor.terrarium_weather_temperature'')|float < 22 }}
|
||||
|
||||
'
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 5
|
||||
seconds: 0
|
||||
id: temperature
|
||||
- platform: template
|
||||
value_template: '{{ states(''sensor.terrarium_weather_humidity'')|float > 87 or
|
||||
states(''sensor.terrarium_weather_humidity'')|float < 60 }}
|
||||
|
||||
'
|
||||
for:
|
||||
hours: 0
|
||||
minutes: 5
|
||||
seconds: 0
|
||||
id: humidity
|
||||
condition: []
|
||||
action:
|
||||
- service: notify.mobile_app_mayas_iphone
|
||||
data:
|
||||
title: Terrarium · {{ trigger.id }} alert
|
||||
message: '{{ trigger.id }} has been out of bounds for 5 mins!'
|
||||
data:
|
||||
url: /lovelace/terrarium
|
||||
mode: single
|
||||
- id: '1699306268852'
|
||||
alias: Printer · Toner warning
|
||||
description: ''
|
||||
@@ -97,3 +64,32 @@
|
||||
- light.hallway_main
|
||||
- light.hallway_entrance
|
||||
mode: single
|
||||
- id: '1751744496991'
|
||||
alias: Climate · AC · Reduce cooling at 4
|
||||
description: ''
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: 04:00:00
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: climate.toshiba_ac
|
||||
state: cool
|
||||
actions:
|
||||
- action: climate.set_temperature
|
||||
metadata: {}
|
||||
data:
|
||||
temperature: 23
|
||||
target:
|
||||
entity_id: climate.toshiba_ac
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 3
|
||||
milliseconds: 0
|
||||
- action: climate.set_fan_mode
|
||||
metadata: {}
|
||||
data:
|
||||
fan_mode: auto
|
||||
target:
|
||||
entity_id: climate.toshiba_ac
|
||||
mode: single
|
||||
|
||||
@@ -143,7 +143,6 @@ recorder: &recorder_config
|
||||
- weather
|
||||
- zwave
|
||||
entities:
|
||||
- device_tracker.mayas_iphone
|
||||
- device_tracker.titanium
|
||||
- media_player.living_room_tv
|
||||
- media_player.nvidia_shield
|
||||
|
||||
@@ -32,8 +32,8 @@ views:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 25px
|
||||
paddingBottom_size: 25px
|
||||
paddingTop_size: 8px
|
||||
paddingBottom_size: 8px
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
@@ -41,11 +41,6 @@ views:
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
@@ -259,9 +254,9 @@ views:
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 25px
|
||||
paddingBottom_size: 25px
|
||||
font_size: 8rem
|
||||
paddingTop_size: 8px
|
||||
paddingBottom_size: 8px
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
@@ -269,19 +264,15 @@ views:
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 1 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_1
|
||||
- title: Bus 288 (1259)
|
||||
- entity: sensor.sofia_traffic_bus_288
|
||||
- empty: No upcoming buses
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
|
||||
@@ -39,9 +39,9 @@ views:
|
||||
cards:
|
||||
- type: 'custom:simple-clock-card'
|
||||
hide_seconds: true
|
||||
font_size: 4rem
|
||||
paddingTop_size: 23px
|
||||
paddingBottom_size: 23px
|
||||
font_size: 8rem
|
||||
paddingTop_size: 10px
|
||||
paddingBottom_size: 10px
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
@@ -85,12 +85,12 @@ cards:
|
||||
type: custom:decluttering-card
|
||||
template: light_with_fade_and_switch
|
||||
variables:
|
||||
- light: light.light_lohas_2
|
||||
- fade: switch.light_lohas_2
|
||||
- wifi: sensor.light_lohas_2_wifi
|
||||
- light: light.neo_1
|
||||
- fade: switch.neo_1
|
||||
- wifi: sensor.neo_1_wifi
|
||||
entities:
|
||||
- type: custom:slider-entity-row
|
||||
entity: light.light_lohas_2
|
||||
entity: light.neo_1
|
||||
name: Brightness
|
||||
hide_state: true
|
||||
step: 5
|
||||
|
||||
@@ -44,10 +44,7 @@ cards:
|
||||
entities:
|
||||
- input_boolean.routine_welcome_home
|
||||
- automation.presence_georgi_arrival_detection
|
||||
- automation.presence_player_2_arrival_detection
|
||||
- automation.presence_player_2_arrival_best_effort
|
||||
- automation.presence_georgi_leaving
|
||||
- automation.presence_player_2_leaving
|
||||
- automation.presence_coming_home
|
||||
- automation.presence_leaving_home
|
||||
|
||||
|
||||
@@ -76,8 +76,6 @@ cards:
|
||||
entity: sensor.bathroom_motion_battery
|
||||
- type: custom:battery-entity-row
|
||||
entity: sensor.guest_bedroom_weather_battery
|
||||
- type: custom:battery-entity-row
|
||||
entity: sensor.terrarium_weather_battery
|
||||
- type: entities
|
||||
title: Aqara Devices
|
||||
entities:
|
||||
|
||||
@@ -10,18 +10,11 @@ stacked-weather:
|
||||
margin-top: 16px;
|
||||
}
|
||||
cards:
|
||||
- type: custom:simple-weather-card
|
||||
- type: weather-forecast
|
||||
entity: weather.pirateweather
|
||||
backdrop: true
|
||||
secondary_info:
|
||||
- humidity
|
||||
- wind_speed
|
||||
- precipitation_probability
|
||||
card_mod:
|
||||
style: |
|
||||
.weather__info:not(.weather__info--add) {
|
||||
margin-left: 14px;
|
||||
}
|
||||
show_current: true
|
||||
show_forecast: true
|
||||
forecast_type: hourly
|
||||
|
||||
- type: custom:air-visual-card
|
||||
air_pollution_level: sensor.u_s_air_pollution_level
|
||||
@@ -76,7 +69,3 @@ stacked-weather:
|
||||
font-size: 1.5em;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
- type: markdown
|
||||
content: >-
|
||||
It will be {{ states('sensor.pirateweather_daily_summary') }}
|
||||
|
||||
@@ -39,11 +39,6 @@
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.average_temperature
|
||||
|
||||
@@ -19,11 +19,6 @@
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
- type: custom:button-card
|
||||
template: v3_chip_name
|
||||
entity: binary_sensor.living_room_right_window_contact
|
||||
@@ -114,7 +109,7 @@
|
||||
name: Ambient Main
|
||||
- type: custom:button-card
|
||||
template: v3_button
|
||||
entity: light.light_lohas_2
|
||||
entity: light.neo_1
|
||||
name: Ambient 2nd
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
- type: custom:layout-card
|
||||
layout_type: custom:horizontal-layout
|
||||
layout:
|
||||
max_cols: 2
|
||||
cards:
|
||||
- type: custom:decluttering-card
|
||||
template: coloured-vertical-stack
|
||||
variables:
|
||||
- color: "#0040A0"
|
||||
- cards:
|
||||
- type: custom:decluttering-card
|
||||
template: v3_title
|
||||
variables:
|
||||
- title: 🐍 Terrarium
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.terrarium_weather_temperature
|
||||
- type: custom:button-card
|
||||
template: v3_chip
|
||||
entity: sensor.terrarium_weather_humidity
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Climate
|
||||
- type: custom:decluttering-card
|
||||
template: climate_card
|
||||
variables:
|
||||
- main_entity: sensor.terrarium_weather_humidity
|
||||
- main_name: Humidity
|
||||
- left_entity: sensor.terrarium_weather_temperature
|
||||
- left_name: Temperature
|
||||
- right_entity: sensor.terrarium_weather_pressure
|
||||
- type: custom:decluttering-card
|
||||
template: coloured-vertical-stack
|
||||
variables:
|
||||
- color: "#0040A0"
|
||||
- cards:
|
||||
- type: custom:decluttering-card
|
||||
template: v3_section_title
|
||||
variables:
|
||||
- title: Camera
|
||||
- type: picture-glance
|
||||
camera_image: camera.terrarium_cam_sd
|
||||
entities:
|
||||
- camera.terrarium_cam_hd
|
||||
|
||||
- !include ../popup_cards.yaml
|
||||
@@ -20,11 +20,6 @@
|
||||
entity: input_boolean.georgi_home
|
||||
entity_picture: /local/images/people/georgi.jpg
|
||||
name: Georgi
|
||||
- type: custom:button-card
|
||||
template: v3_chip_person
|
||||
entity: input_boolean.player_2_home
|
||||
entity_picture: /local/images/people/maya.jpg
|
||||
name: Maya
|
||||
|
||||
- type: custom:decluttering-card
|
||||
template: stacked-weather
|
||||
@@ -53,8 +48,8 @@
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 1 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_1
|
||||
- title: Bus 288 (1259)
|
||||
- entity: sensor.sofia_traffic_bus_288
|
||||
- empty: No upcoming buses
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
@@ -62,12 +57,7 @@
|
||||
- title: Bus 5 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_5
|
||||
- empty: No upcoming buses
|
||||
- type: custom:decluttering-card
|
||||
template: bus_departure
|
||||
variables:
|
||||
- title: Bus 6 (1257)
|
||||
- entity: sensor.sofia_traffic_bus_6
|
||||
- empty: No upcoming buses
|
||||
|
||||
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
|
||||
@@ -485,31 +485,6 @@ cards:
|
||||
- right_entity: sensor.hallway_weather_pressure
|
||||
|
||||
|
||||
- type: custom:popup-card
|
||||
entity: sensor.terrarium_weather_temperature
|
||||
title: Terrarium Temperature
|
||||
card:
|
||||
type: custom:decluttering-card
|
||||
template: climate_card
|
||||
variables:
|
||||
- main_entity: sensor.terrarium_weather_temperature
|
||||
- left_entity: sensor.terrarium_weather_humidity
|
||||
- right_entity: sensor.terrarium_weather_pressure
|
||||
|
||||
|
||||
- type: custom:popup-card
|
||||
entity: sensor.terrarium_weather_humidity
|
||||
title: Terrarium Humidity
|
||||
card:
|
||||
type: custom:decluttering-card
|
||||
template: climate_card
|
||||
variables:
|
||||
- main_entity: sensor.terrarium_weather_humidity
|
||||
- main_name: Humidity
|
||||
- left_entity: sensor.terrarium_weather_temperature
|
||||
- left_name: Temperature
|
||||
- right_entity: sensor.terrarium_weather_pressure
|
||||
|
||||
- type: custom:popup-card
|
||||
entity: sensor.guest_bedroom_weather_temperature
|
||||
title: Guest Bedroom Temperature
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
type: module
|
||||
- url: /hacsfiles/bar-card/bar-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-battery-entity-row/battery-entity-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/button-card/button-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-card-tools/card-tools.js
|
||||
- url: /hacsfiles/lovelace-battery-entity-row/battery-entity-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/config-template-card/config-template-card.js
|
||||
- url: /hacsfiles/lovelace-card-tools/card-tools.js
|
||||
type: module
|
||||
- url: /hacsfiles/custom-brand-icons/custom-brand-icons.js
|
||||
type: module
|
||||
@@ -16,9 +14,7 @@
|
||||
type: module
|
||||
- url: /hacsfiles/hass-bha-icons/hass-bha-icons.js
|
||||
type: module
|
||||
# - url: /hacsfiles/kiosk-mode/kiosk-mode.js
|
||||
# type: module
|
||||
- url: /hacsfiles/light-entity-card/light-entity-card.js
|
||||
- url: /hacsfiles/printwatch-card/printwatch-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-card-mod/card-mod.js
|
||||
type: module
|
||||
@@ -26,34 +22,22 @@
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-layout-card/layout-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-hourly-weather/hourly-weather.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-slider-entity-row/slider-entity-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-text-input-row/lovelace-text-input-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/mini-graph-card/mini-graph-card-bundle.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-more-info-card/more-info-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/mini-media-player/mini-media-player-bundle.js
|
||||
type: module
|
||||
- url: /hacsfiles/popup-backdrop-filter/popup-backdrop-filter.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-state-switch/state-switch.js
|
||||
type: module
|
||||
- url: /hacsfiles/simple-clock-card/simple-clock-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/simple-weather-card/simple-weather-card-bundle.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-swipe-navigation/swipe-navigation.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-template-entity-row/template-entity-row.js
|
||||
type: module
|
||||
- url: /hacsfiles/travel-time-card/travel-time-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/vacuum-card/vacuum-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/stack-in-card/stack-in-card.js
|
||||
@@ -62,8 +46,6 @@
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-xiaomi-vacuum-map-card/xiaomi-vacuum-map-card.js
|
||||
type: module
|
||||
- url: /hacsfiles/zigbee2mqtt-networkmap/zigbee2mqtt-networkmap.js
|
||||
type: module
|
||||
- url: /hacsfiles/lovelace-horizon-card/lovelace-horizon-card.js
|
||||
type: module
|
||||
|
||||
|
||||
@@ -35,114 +35,110 @@ input_select:
|
||||
- 50
|
||||
- 60
|
||||
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
purifier_air_quality:
|
||||
friendly_name: Air quality
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}"
|
||||
icon_template: mdi:weather-windy
|
||||
purifier_humidity:
|
||||
friendly_name: Humidity
|
||||
unit_of_measurement: "%"
|
||||
device_class: humidity
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}"
|
||||
icon_template: mdi:water
|
||||
purifier_temperature:
|
||||
friendly_name: Temperature
|
||||
unit_of_measurement: "°C"
|
||||
device_class: temperature
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}"
|
||||
icon_template: mdi:thermometer
|
||||
purifier_preset_mode:
|
||||
friendly_name: Preset Mode
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'preset_mode') }}"
|
||||
icon_template: >-
|
||||
{% set value = state_attr('fan.philips_airpurifier', 'preset_mode') %}
|
||||
{% if value == 'auto' %}
|
||||
{{ 'mdi:brightness-auto' }}
|
||||
{% elif value == 'manual' %}
|
||||
{{ 'mdi:speedometer-medium' }}
|
||||
{% elif value == 'sleep' %}
|
||||
{{ 'mdi:power-sleep' }}
|
||||
{% elif value == 'allergen' %}
|
||||
{{ 'mdi:allergy' }}
|
||||
{% endif %}
|
||||
purifier_speed:
|
||||
friendly_name: Speed
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'percentage') }}"
|
||||
purifier_allergens:
|
||||
friendly_name: Allergen index
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'allergen_index') }}"
|
||||
icon_template: mdi:weather-windy-variant
|
||||
purifier_function:
|
||||
friendly_name: Function
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'function') }}"
|
||||
icon_template: >-
|
||||
{{ is_state_attr('fan.philips_airpurifier', 'function', 'Purification') | iif('mdi:air-purifier', 'mdi:air-humidifier') }}
|
||||
purifier_pre_filter:
|
||||
friendly_name: Pre-filter
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'pre_filter') }}"
|
||||
icon_template: mdi:air-filter
|
||||
purifier_wick_filter:
|
||||
friendly_name: Wick filter
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'wick_filter') }}"
|
||||
icon_template: mdi:air-filter
|
||||
purifier_carbon_filter:
|
||||
friendly_name: Carbon filter
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'carbon_filter') }}"
|
||||
icon_template: mdi:air-filter
|
||||
purifier_hepa_filter:
|
||||
friendly_name: HEPA filter
|
||||
unit_of_measurement: "Hrs"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'hepa_filter')}}"
|
||||
icon_template: mdi:air-filter
|
||||
purifier_target_humidity:
|
||||
friendly_name: Target humidity
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'target_humidity') }}"
|
||||
icon_template: mdi:water-percent
|
||||
purifier_brightness:
|
||||
friendly_name: Brightness
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'light_brightness') }}"
|
||||
icon_template: mdi:brightness-6
|
||||
purifier_timer:
|
||||
friendly_name: Timer
|
||||
unit_of_measurement: "hrs"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'timer') }}"
|
||||
icon_template: mdi:timer-outline
|
||||
purifier_time_remaining:
|
||||
friendly_name: Time remaining
|
||||
unit_of_measurement: "minutes"
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'timer_remaining_minutes') }}"
|
||||
icon_template: mdi:timer-outline
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
purifier_out_of_water:
|
||||
friendly_name: Water level
|
||||
device_class: problem
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}"
|
||||
purifier_child_lock:
|
||||
friendly_name: Child lock
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}"
|
||||
purifier_display_light:
|
||||
friendly_name: Display light
|
||||
value_template: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}"
|
||||
purifier_filter_needs_change:
|
||||
friendly_name: Filter needs change
|
||||
device_class: problem
|
||||
value_template: >
|
||||
|
||||
{{ is_state('sensor.purifier_pre_filter', '0')
|
||||
or is_state('sensor.purifier_wick_filter', '0')
|
||||
or is_state('sensor.purifier_carbon_filter', '0')
|
||||
or is_state('sensor.purifier_hepa_filter', '0') }}
|
||||
template:
|
||||
- sensor:
|
||||
- default_entity_id: sensor.purifier_air_quality
|
||||
name: Air quality
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}"
|
||||
icon: mdi:weather-windy
|
||||
- default_entity_id: sensor.purifier_humidity
|
||||
name: Humidity
|
||||
unit_of_measurement: "%"
|
||||
device_class: humidity
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}"
|
||||
icon: mdi:water
|
||||
- default_entity_id: sensor.purifier_temperature
|
||||
name: Temperature
|
||||
unit_of_measurement: "°C"
|
||||
device_class: temperature
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}"
|
||||
icon: mdi:thermometer
|
||||
- default_entity_id: sensor.purifier_preset_mode
|
||||
name: Preset Mode
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'preset_mode') }}"
|
||||
icon: >-
|
||||
{% set value = state_attr('fan.philips_airpurifier', 'preset_mode') %}
|
||||
{% if value == 'auto' %}
|
||||
{{ 'mdi:brightness-auto' }}
|
||||
{% elif value == 'manual' %}
|
||||
{{ 'mdi:speedometer-medium' }}
|
||||
{% elif value == 'sleep' %}
|
||||
{{ 'mdi:power-sleep' }}
|
||||
{% elif value == 'allergen' %}
|
||||
{{ 'mdi:allergy' }}
|
||||
{% endif %}
|
||||
- default_entity_id: sensor.purifier_speed
|
||||
name: Speed
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'percentage') }}"
|
||||
- default_entity_id: sensor.purifier_allergens
|
||||
name: Allergen index
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'allergen_index') }}"
|
||||
icon: mdi:weather-windy-variant
|
||||
- default_entity_id: sensor.purifier_function
|
||||
name: Function
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'function') }}"
|
||||
icon: >-
|
||||
{{ is_state_attr('fan.philips_airpurifier', 'function', 'Purification') | iif('mdi:air-purifier', 'mdi:air-humidifier') }}
|
||||
- default_entity_id: sensor.purifier_pre_filter
|
||||
name: Pre-filter
|
||||
unit_of_measurement: "Hrs"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'pre_filter') }}"
|
||||
icon: mdi:air-filter
|
||||
- default_entity_id: sensor.purifier_wick_filter
|
||||
name: Wick filter
|
||||
unit_of_measurement: "Hrs"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'wick_filter') }}"
|
||||
icon: mdi:air-filter
|
||||
- default_entity_id: sensor.purifier_carbon_filter
|
||||
name: Carbon filter
|
||||
unit_of_measurement: "Hrs"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'carbon_filter') }}"
|
||||
icon: mdi:air-filter
|
||||
- default_entity_id: sensor.purifier_hepa_filter
|
||||
name: HEPA filter
|
||||
unit_of_measurement: "Hrs"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'hepa_filter')}}"
|
||||
icon: mdi:air-filter
|
||||
- default_entity_id: sensor.purifier_target_humidity
|
||||
name: Target humidity
|
||||
unit_of_measurement: "%"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'target_humidity') }}"
|
||||
icon: mdi:water-percent
|
||||
- default_entity_id: sensor.purifier_brightness
|
||||
name: Brightness
|
||||
unit_of_measurement: "%"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'light_brightness') }}"
|
||||
icon: mdi:brightness-6
|
||||
- default_entity_id: sensor.purifier_timer
|
||||
name: Timer
|
||||
unit_of_measurement: "hrs"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'timer') }}"
|
||||
icon: mdi:timer-outline
|
||||
- default_entity_id: sensor.purifier_time_remaining
|
||||
name: Time remaining
|
||||
unit_of_measurement: "minutes"
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'timer_remaining_minutes') }}"
|
||||
icon: mdi:timer-outline
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.purifier_out_of_water
|
||||
name: Out of water
|
||||
device_class: problem
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}"
|
||||
- default_entity_id: binary_sensor.purifier_child_lock
|
||||
name: Child lock
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}"
|
||||
- default_entity_id: binary_sensor.purifier_display_light
|
||||
name: Display light
|
||||
state: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}"
|
||||
- default_entity_id: binary_sensor.purifier_filter_needs_change
|
||||
name: Filter needs change
|
||||
device_class: problem
|
||||
state: >
|
||||
{{ is_state('sensor.purifier_pre_filter', '0')
|
||||
or is_state('sensor.purifier_wick_filter', '0')
|
||||
or is_state('sensor.purifier_carbon_filter', '0')
|
||||
or is_state('sensor.purifier_hepa_filter', '0') }}
|
||||
|
||||
|
||||
script:
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
switch:
|
||||
- platform: template
|
||||
switches:
|
||||
tapo_bedroom:
|
||||
friendly_name: "Bedroom Camera"
|
||||
value_template: "{{ is_state('switch.bedroom_privacy', 'off') }}"
|
||||
turn_on:
|
||||
service: script.tapo_bedroom_on
|
||||
turn_off:
|
||||
service: script.tapo_bedroom_off
|
||||
icon_template: >
|
||||
{%if is_state('switch.bedroom_privacy', 'off') %}
|
||||
mdi:video
|
||||
{% else %}
|
||||
mdi:video-off
|
||||
{% endif %}
|
||||
template:
|
||||
- switch:
|
||||
- default_entity_id: switch.tapo_bedroom
|
||||
name: Bedroom Camera
|
||||
state: "{{ is_state('switch.bedroom_privacy', 'off') }}"
|
||||
turn_on:
|
||||
- action: script.tapo_bedroom_on
|
||||
turn_off:
|
||||
- action: script.tapo_bedroom_off
|
||||
icon: "{%if is_state('switch.bedroom_privacy', 'off') %}\n mdi:video\n{% else
|
||||
%}\n mdi:video-off\n{% endif %}"
|
||||
|
||||
|
||||
script:
|
||||
tapo_bedroom_toggle:
|
||||
|
||||
@@ -3,7 +3,7 @@ template:
|
||||
- binary_sensor:
|
||||
- name: Paper 1 Motion Detected
|
||||
device_class: "occupancy"
|
||||
delay_off: 1min
|
||||
delay_off: "00:01:00"
|
||||
state: >-
|
||||
{%- if states('binary_sensor.hallway_motion_occupancy') == 'on' or states('binary_sensor.hallway_motion_2_occupancy') == 'on' or states('binary_sensor.kitchen_motion_occupancy') == 'on' %}
|
||||
on
|
||||
|
||||
@@ -14,13 +14,12 @@ input_datetime:
|
||||
has_date: true
|
||||
has_time: false
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
brita_should_change_filter:
|
||||
friendly_name: Should change Brita filter
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.brita_should_change_filter
|
||||
name: Should change Brita filter
|
||||
device_class: problem
|
||||
value_template: >-
|
||||
state: >-
|
||||
|
||||
{% set liters_check = states('input_number.brita_remaining_liters')|int < 3 %}
|
||||
|
||||
|
||||
@@ -5,14 +5,25 @@ binary_sensor:
|
||||
scan_interval: 10
|
||||
count: 2
|
||||
|
||||
- platform: template
|
||||
sensors:
|
||||
cadmium:
|
||||
friendly_name: Cadmium
|
||||
value_template: >-
|
||||
template:
|
||||
- sensor:
|
||||
- default_entity_id: sensor.cadmium
|
||||
name: Cadmium
|
||||
state: >-
|
||||
{{ is_state("binary_sensor.cadmium_ping", "on") }}
|
||||
icon_template: >-
|
||||
icon: >-
|
||||
{{ is_state("binary_sensor.cadmium_ping", "on") | iif(' mdi:desktop-mac-dashboard', 'mdi:monitor') }}
|
||||
- switch:
|
||||
- default_entity_id: switch.cadmium
|
||||
name: Cadmium
|
||||
state: '{{ is_state(''binary_sensor.cadmium'', ''on'') }}'
|
||||
turn_on:
|
||||
- action: script.cadmium_start
|
||||
turn_off:
|
||||
- action: script.cadmium_shutdown
|
||||
icon: '{{ is_state(''binary_sensor.cadmium'', ''on'') | iif(''mdi:monitor-dashboard'',
|
||||
''mdi:monitor-off'') }}'
|
||||
|
||||
|
||||
#
|
||||
# ─── IOTLink ──────────────────────────────────────────────────────────────
|
||||
@@ -113,18 +124,6 @@ mqtt:
|
||||
unit_of_measurement: "GB"
|
||||
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
switches:
|
||||
cadmium:
|
||||
friendly_name: Cadmium
|
||||
value_template: "{{ is_state('binary_sensor.cadmium', 'on') }}"
|
||||
turn_on:
|
||||
service: script.cadmium_start
|
||||
turn_off:
|
||||
service: script.cadmium_shutdown
|
||||
icon_template: >-
|
||||
{{ is_state('binary_sensor.cadmium', 'on') | iif('mdi:monitor-dashboard', 'mdi:monitor-off') }}
|
||||
|
||||
script:
|
||||
cadmium_start:
|
||||
|
||||
@@ -7,15 +7,14 @@
|
||||
# binary_sensors:
|
||||
# - online
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
camera_state:
|
||||
friendly_name: Security camera
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.camera_state
|
||||
name: Security camera
|
||||
device_class: safety
|
||||
value_template: >-
|
||||
state: >-
|
||||
{{ is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') }}
|
||||
icon_template: >-
|
||||
icon: >-
|
||||
{% if is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') %}
|
||||
mdi:video
|
||||
{% else %}
|
||||
|
||||
@@ -11,7 +11,7 @@ automation:
|
||||
- alias: Mercury · Power on at 10am when guest mode enabled
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "11:00:00"
|
||||
at: "10:00:00"
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
@@ -24,10 +24,10 @@ automation:
|
||||
title: "*Mercury · Powering on*"
|
||||
message: "11:00 · Powering Mercury on (guest mode enabled)"
|
||||
|
||||
- alias: Mercury · Power off at 10pm when guest mode enabled
|
||||
- alias: Mercury · Power off at 11pm when guest mode enabled
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "22:00:00"
|
||||
at: "23:00:00"
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: input_boolean.guest_mode
|
||||
@@ -38,4 +38,4 @@ automation:
|
||||
- service: notify.telegram
|
||||
data_template:
|
||||
title: "*Mercury · Powering off*"
|
||||
message: "22:00 · Powering Mercury off (guest mode enabled)"
|
||||
message: "23:00 · Powering Mercury off (guest mode enabled)"
|
||||
|
||||
@@ -12,13 +12,12 @@ input_select:
|
||||
- day
|
||||
- night
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
bedroom_mode:
|
||||
friendly_name: Bedroom mode
|
||||
value_template: "{{ states('input_select.bedroom_mode') }}"
|
||||
icon_template: >-
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.bedroom_mode
|
||||
name: Bedroom mode
|
||||
state: "{{ states('input_select.bedroom_mode') }}"
|
||||
icon: >-
|
||||
|
||||
{% if is_state('input_select.bedroom_mode', 'day') %}
|
||||
mdi:weather-sunny
|
||||
@@ -28,9 +27,9 @@ binary_sensor:
|
||||
mdi:weather-night
|
||||
{% endif %}
|
||||
|
||||
someone_sleeping:
|
||||
friendly_name: Someone sleeping
|
||||
value_template: >-
|
||||
- default_entity_id: binary_sensor.someone_sleeping
|
||||
name: Someone sleeping
|
||||
state: >-
|
||||
|
||||
{% if is_state('input_boolean.guest_bedroom', 'off') %}
|
||||
{{ is_state('input_select.bedroom_mode', 'night') }}
|
||||
@@ -38,12 +37,10 @@ binary_sensor:
|
||||
{{ is_state('input_select.bedroom_mode', 'night') or is_state('input_select.guest_bedroom_mode', 'night') }}
|
||||
{% endif %}
|
||||
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
house_mode:
|
||||
friendly_name: House mode
|
||||
value_template: >-
|
||||
- sensor:
|
||||
- default_entity_id: sensor.house_mode
|
||||
name: House mode
|
||||
state: >-
|
||||
|
||||
{% if is_state('input_boolean.guest_bedroom', 'off') %}
|
||||
{% if is_state('input_select.bedroom_mode', 'night') %}
|
||||
|
||||
@@ -33,7 +33,6 @@ automation:
|
||||
- sensor.hallway_motion_2_battery
|
||||
|
||||
- sensor.guest_bedroom_weather_battery
|
||||
- sensor.terrarium_weather_battery
|
||||
below: 20
|
||||
|
||||
action:
|
||||
|
||||
@@ -13,12 +13,11 @@ group:
|
||||
- binary_sensor.bedroom_left_window_contact
|
||||
- binary_sensor.bedroom_right_window_contact
|
||||
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
open_window_count:
|
||||
friendly_name: Open windozw count
|
||||
value_template: >-
|
||||
template:
|
||||
- sensor:
|
||||
- default_entity_id: sensor.open_window_count
|
||||
name: Open window count
|
||||
state: >-
|
||||
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_windows', 'entity_id')) %}
|
||||
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ scene:
|
||||
- name: Living Room Ambient Christmas
|
||||
icon: mdi:pine-tree
|
||||
entities:
|
||||
light.light_lohas_2:
|
||||
light.neo_1:
|
||||
state: "on"
|
||||
rgb_color: [0, 255, 0]
|
||||
brightness_pct: 100
|
||||
@@ -77,7 +77,7 @@ scene:
|
||||
- name: Living Room Ambient Neon
|
||||
icon: "mdi:weather-night"
|
||||
entities:
|
||||
light.light_lohas_2:
|
||||
light.neo_1:
|
||||
state: "on"
|
||||
xy_color: [0.668, 0.284]
|
||||
brightness_pct: 80
|
||||
@@ -88,7 +88,7 @@ scene:
|
||||
- name: Living Room Ambient Default
|
||||
icon: "mdi:weather-sunny"
|
||||
entities:
|
||||
light.light_lohas_2:
|
||||
light.neo_1:
|
||||
state: "on"
|
||||
color_temp: 500
|
||||
brightness_pct: 100
|
||||
|
||||
@@ -64,7 +64,7 @@ automation:
|
||||
brightness_pct: 40
|
||||
- service: light.turn_on
|
||||
entity_id:
|
||||
- light.light_lohas_2 # living room ambient Secondary
|
||||
- light.neo_1 # living room ambient Secondary
|
||||
- light.hue_1 # Hallway
|
||||
data:
|
||||
rgb_color: [0, 0, 255]
|
||||
|
||||
@@ -12,7 +12,7 @@ light:
|
||||
name: Living room ambient
|
||||
entities:
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
|
||||
- platform: group
|
||||
name: Living room
|
||||
@@ -23,7 +23,7 @@ light:
|
||||
- light.light_le_4
|
||||
- light.hue_ambiance_7
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
|
||||
# - platform: group
|
||||
# name: Master bedroom main
|
||||
@@ -97,7 +97,7 @@ light:
|
||||
- light.hue_ambiance_7
|
||||
# LR ambiance
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
|
||||
- light.master_bedroom_main
|
||||
- light.bedside
|
||||
@@ -116,7 +116,7 @@ script:
|
||||
- light.hue_ambiance_7
|
||||
# LR ambiance
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
- light.master_bedroom_main
|
||||
- light.bedside
|
||||
|
||||
@@ -135,7 +135,7 @@ script:
|
||||
- light.hue_ambiance_7
|
||||
# LR ambiance
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
- light.master_bedroom_main
|
||||
- light.bedside
|
||||
|
||||
@@ -158,7 +158,7 @@ homeassistant:
|
||||
|
||||
light.living_room_ambient:
|
||||
icon: mdi:floor-lamp-dual
|
||||
light.light_lohas_2:
|
||||
light.neo_1:
|
||||
friendly_name: Living room ambient secondary
|
||||
|
||||
# Master bedroom
|
||||
|
||||
@@ -80,30 +80,30 @@ mqtt:
|
||||
qos: 1
|
||||
retain: false
|
||||
|
||||
- name: "light_lohas_2"
|
||||
state_topic: "tele/light_lohas_2/STATE"
|
||||
- name: "light_lohas_3"
|
||||
state_topic: "tele/light_lohas_3/STATE"
|
||||
state_value_template: "{{ value_json.POWER }}"
|
||||
command_topic: "cmnd/light_lohas_2/POWER"
|
||||
command_topic: "cmnd/light_lohas_3/POWER"
|
||||
payload_on: "ON"
|
||||
payload_off: "OFF"
|
||||
availability_topic: "tele/light_lohas_2/LWT"
|
||||
availability_topic: "tele/light_lohas_3/LWT"
|
||||
payload_available: "Online"
|
||||
payload_not_available: "Offline"
|
||||
on_command_type: "brightness"
|
||||
brightness_command_topic: "cmnd/light_lohas_2/Dimmer"
|
||||
brightness_state_topic: "tele/light_lohas_2/STATE"
|
||||
brightness_command_topic: "cmnd/light_lohas_3/Dimmer"
|
||||
brightness_state_topic: "tele/light_lohas_3/STATE"
|
||||
brightness_scale: 100
|
||||
brightness_value_template: "{{ value_json.Dimmer }}"
|
||||
hs_command_topic: "cmnd/light_lohas_2/HSBColor"
|
||||
hs_state_topic: "tele/light_lohas_2/STATE"
|
||||
hs_command_topic: "cmnd/light_lohas_3/HSBColor"
|
||||
hs_state_topic: "tele/light_lohas_3/STATE"
|
||||
hs_value_template: "{{ value_json.HSBColor.split(',')[0:2]|join(',') }}"
|
||||
color_temp_command_topic: "cmnd/light_lohas_2/CT"
|
||||
color_temp_state_topic: "tele/light_lohas_2/STATE"
|
||||
color_temp_command_topic: "cmnd/light_lohas_3/CT"
|
||||
color_temp_state_topic: "tele/light_lohas_3/STATE"
|
||||
color_temp_value_template: "{{ value_json.CT }}"
|
||||
qos: 1
|
||||
retain: false
|
||||
effect_command_topic: "cmnd/light_lohas_2/Scheme"
|
||||
effect_state_topic: "tele/light_lohas_2/STATE"
|
||||
effect_command_topic: "cmnd/light_lohas_3/Scheme"
|
||||
effect_state_topic: "tele/light_lohas_3/STATE"
|
||||
effect_value_template: "{{value_json.Scheme}}"
|
||||
effect_list: [0, 1, 2, 3, 4]
|
||||
|
||||
@@ -144,12 +144,12 @@ mqtt:
|
||||
unit_of_measurement: "dBm"
|
||||
value_template: "{{ value_json.Wifi.RSSI }}"
|
||||
|
||||
- name: "light_lohas_2_wifi"
|
||||
availability_topic: "tele/light_lohas_2/LWT"
|
||||
- name: "light_lohas_3_wifi"
|
||||
availability_topic: "tele/light_lohas_3/LWT"
|
||||
device_class: signal_strength
|
||||
payload_available: "Online"
|
||||
payload_not_available: "Offline"
|
||||
state_topic: "tele/light_lohas_2/STATE"
|
||||
state_topic: "tele/light_lohas_3/STATE"
|
||||
unit_of_measurement: "dBm"
|
||||
value_template: "{{ value_json.Wifi.RSSI }}"
|
||||
|
||||
@@ -195,14 +195,14 @@ mqtt:
|
||||
state_topic: "tele/light_le_4/STATE"
|
||||
value_template: "{{ value_json.Fade }}"
|
||||
|
||||
- name: "light_lohas_2_fade"
|
||||
availability_topic: "tele/light_lohas_2/LWT"
|
||||
command_topic: "cmnd/light_lohas_2/FADE"
|
||||
- name: "light_lohas_3_fade"
|
||||
availability_topic: "tele/light_lohas_3/LWT"
|
||||
command_topic: "cmnd/light_lohas_3/FADE"
|
||||
icon: mdi:gradient
|
||||
payload_available: "Online"
|
||||
payload_not_available: "Offline"
|
||||
qos: 1
|
||||
state_topic: "tele/light_lohas_2/STATE"
|
||||
state_topic: "tele/light_lohas_3/STATE"
|
||||
value_template: "{{ value_json.Fade }}"
|
||||
|
||||
automation:
|
||||
|
||||
@@ -65,7 +65,7 @@ script:
|
||||
- light.living_room_main
|
||||
- light.hue_ambiance_7
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
- light.hallway
|
||||
- light.master_bedroom_main
|
||||
- light.kitchen
|
||||
@@ -77,7 +77,7 @@ script:
|
||||
entity_id:
|
||||
- light.hue_ambiance_7
|
||||
- light.living_room_ambient_main
|
||||
- light.light_lohas_2
|
||||
- light.neo_1
|
||||
- service: light.turn_off
|
||||
entity_id:
|
||||
- light.master_bedroom_main
|
||||
|
||||
@@ -1,40 +1,41 @@
|
||||
# Depends on Sonos integration (config flow): https://www.home-assistant.io/integrations/sonos
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
sonos_recoverable:
|
||||
friendly_name: Sonos recoverable
|
||||
value_template: >-
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.sonos_recoverable
|
||||
name: Sonos recoverable
|
||||
device_class: problem
|
||||
state: >-
|
||||
|
||||
{% set content_id = state_attr('media_player.master_bedroom', 'media_content_id') %}
|
||||
{% if content_id == None
|
||||
or content_id.startswith('x-sonos-spotify:spotify')
|
||||
or content_id.startswith('x-sonosapi-hls-static') %}
|
||||
True
|
||||
true
|
||||
{% else %}
|
||||
False
|
||||
false
|
||||
{% endif %}
|
||||
|
||||
sonos_is_bedroom_master:
|
||||
friendly_name: Sonos is Bedroom master
|
||||
value_template: >-
|
||||
- default_entity_id: binary_sensor.sonos_is_bedroom_master
|
||||
name: Sonos is Bedroom master
|
||||
state: >-
|
||||
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
||||
{{ group|length > 1 and group[0] == 'media_player.master_bedroom' }}
|
||||
|
||||
sonos_is_living_room_master:
|
||||
friendly_name: Sonos is Living room master
|
||||
value_template: >-
|
||||
- default_entity_id: binary_sensor.sonos_is_living_room_master
|
||||
name: Sonos is Living room master
|
||||
state: >-
|
||||
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
|
||||
{{ group|length > 1 and group[0] == 'media_player.living_room' }}
|
||||
|
||||
sonos_is_kitchen_grouped:
|
||||
friendly_name: Sonos Kitchen is grouped
|
||||
value_template: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}"
|
||||
- default_entity_id: binary_sensor.sonos_is_kitchen_grouped
|
||||
name: Sonos Kitchen is grouped
|
||||
state: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}"
|
||||
|
||||
- default_entity_id: binary_sensor.sonos_is_bathroom_grouped
|
||||
name: Sonos Bathroom is grouped
|
||||
state: "{{ state_attr('media_player.bathroom', 'group_members')|length > 1 }}"
|
||||
|
||||
sonos_is_bathroom_grouped:
|
||||
friendly_name: Sonos Bathroom is grouped
|
||||
value_template: "{{ state_attr('media_player.bathroom', 'group_members')|length > 1 }}"
|
||||
|
||||
script:
|
||||
sonos_join_bedroom:
|
||||
|
||||
@@ -15,7 +15,6 @@ homekit:
|
||||
filter:
|
||||
include_entities:
|
||||
- person.georgi
|
||||
- person.maya
|
||||
|
||||
# Living Room
|
||||
- light.living_room
|
||||
@@ -191,19 +190,20 @@ homekit:
|
||||
# ─── ENTITIES ───────────────────────────────────────────────────────────────────
|
||||
#
|
||||
|
||||
command_line:
|
||||
- switch:
|
||||
name: pihole_temp_disable
|
||||
command_on: !secret pihole_disable_5
|
||||
command_off: !secret pihole_enable
|
||||
command_state: !secret pihole_status
|
||||
value_template: '{{ value_json.status == "disabled" }}'
|
||||
- binary_sensor:
|
||||
name: "Pi-Hole enabled"
|
||||
command: !secret pihole_status
|
||||
payload_on: "enabled"
|
||||
payload_off: "disabled"
|
||||
value_template: '{{ value_json.status }}'
|
||||
# PiHole: Disabled
|
||||
# command_line:
|
||||
# - switch:
|
||||
# name: pihole_temp_disable
|
||||
# command_on: !secret pihole_disable_5
|
||||
# command_off: !secret pihole_enable
|
||||
# command_state: !secret pihole_status
|
||||
# value_template: '{{ value_json.status == "disabled" }}'
|
||||
# - binary_sensor:
|
||||
# name: "Pi-Hole enabled"
|
||||
# command: !secret pihole_status
|
||||
# payload_on: "enabled"
|
||||
# payload_off: "disabled"
|
||||
# value_template: '{{ value_json.status }}'
|
||||
|
||||
mqtt:
|
||||
sensor:
|
||||
@@ -220,12 +220,12 @@ mqtt:
|
||||
value_template: "{{ value_json | count }}"
|
||||
icon: "mdi:counter"
|
||||
|
||||
- name: "Router 1 LQI"
|
||||
state_topic: "z2m_deconz/router_1"
|
||||
availability_topic: "z2m_deconz/bridge/state"
|
||||
unit_of_measurement: "lqi"
|
||||
device_class: "signal_strength"
|
||||
value_template: "{{ value_json.linkquality }}"
|
||||
# - name: "Router 1 LQI"
|
||||
# state_topic: "z2m_deconz/router_1"
|
||||
# availability_topic: "z2m_deconz/bridge/state"
|
||||
# unit_of_measurement: "lqi"
|
||||
# device_class: "signal_strength"
|
||||
# value_template: "{{ value_json.linkquality }}"
|
||||
|
||||
script:
|
||||
zigbee2mqtt_get_device_count:
|
||||
|
||||
@@ -8,7 +8,6 @@ notify:
|
||||
platform: group
|
||||
services:
|
||||
- service: mobile_app_titanium
|
||||
- service: mobile_app_mayas_iphone
|
||||
|
||||
automation:
|
||||
- alias: Notification · Phone battery low
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
milena_preferences_enabled:
|
||||
friendly_name: Milena Preferences
|
||||
value_template: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}"
|
||||
icon_template: >
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.milena_preferences_enabled
|
||||
name: Milena Preferences
|
||||
state: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}"
|
||||
icon: >
|
||||
{{
|
||||
is_state('device_tracker.iphone_de_yovcheva', 'home')
|
||||
| iif('mdi:star-settings', 'mdi:star-settings-outline')
|
||||
|
||||
@@ -33,23 +33,21 @@ input_boolean:
|
||||
name: Player 2 home
|
||||
icon: mdi:account
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
someone_home:
|
||||
friendly_name: Someone home
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.someone_home
|
||||
name: Someone home
|
||||
device_class: presence
|
||||
value_template: >
|
||||
state: >
|
||||
{{ is_state('input_boolean.guest_mode', 'on') or is_state('input_boolean.georgi_home', 'on') or is_state('input_boolean.player_2_home', 'on') }}
|
||||
icon_template: >
|
||||
icon: >
|
||||
{% if is_state('input_boolean.guest_mode', 'on') or is_state('input_boolean.georgi_home', 'on') or is_state('input_boolean.player_2_home', 'on') %} mdi:account
|
||||
{% else %} mdi:account-off-outline
|
||||
{% endif %}
|
||||
|
||||
multisensor_motion:
|
||||
friendly_name: MultiSensor motion
|
||||
- default_entity_id: binary_sensor.multisensor_motion
|
||||
name: MultiSensor motion
|
||||
device_class: motion
|
||||
value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
|
||||
state: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
|
||||
|
||||
|
||||
automation:
|
||||
@@ -61,24 +59,6 @@ automation:
|
||||
name: Georgi
|
||||
input_boolean: input_boolean.georgi_home
|
||||
|
||||
- alias: Presence · Player 2 Arrival detection
|
||||
use_blueprint:
|
||||
path: arrival_detection.yaml
|
||||
input:
|
||||
person: person.maya
|
||||
name: Maya
|
||||
input_boolean: input_boolean.player_2_home
|
||||
|
||||
- alias: Presence · Player 2 Arrival best effort
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: person.maya
|
||||
from: "not_home"
|
||||
to: "home"
|
||||
for: "00:10:00"
|
||||
action:
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: input_boolean.player_2_home
|
||||
|
||||
- alias: Presence · Georgi leaving
|
||||
trigger:
|
||||
@@ -95,21 +75,6 @@ automation:
|
||||
title: "🏠 *Presence Module · Leaving Home*"
|
||||
message: "I notice Georgi has left. Marking as away."
|
||||
|
||||
- alias: Presence · Player 2 leaving
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: person.maya
|
||||
from: "home"
|
||||
to: "not_home"
|
||||
for: "00:01:00"
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
entity_id: input_boolean.player_2_home
|
||||
- service: notify.telegram
|
||||
data:
|
||||
title: "🏠 *Presence Module · Leaving Home*"
|
||||
message: "I notice Maya has left. Marking as away."
|
||||
|
||||
- alias: Presence · Leaving home
|
||||
trigger:
|
||||
- platform: state
|
||||
|
||||
@@ -13,6 +13,7 @@ automation:
|
||||
- sensor.sofia_traffic_bus_1
|
||||
- sensor.sofia_traffic_bus_5
|
||||
- sensor.sofia_traffic_bus_6
|
||||
- sensor.sofia_traffic_bus_288
|
||||
|
||||
sensor:
|
||||
- platform: rest
|
||||
@@ -45,3 +46,9 @@ sensor:
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
- platform: rest
|
||||
name: sofia_traffic_bus_288
|
||||
resource: http://192.168.0.27:3013/departures?stop=1259&line=288
|
||||
method: GET
|
||||
value_template: "{{ value_json }}"
|
||||
scan_interval: 60
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
# https://www.home-assistant.io/integrations/telegram
|
||||
# https://www.home-assistant.io/integrations/telegram_chatbot
|
||||
telegram_bot:
|
||||
- platform: polling
|
||||
api_key: !secret telegram_token
|
||||
allowed_chat_ids:
|
||||
- !secret telegram_georgi_chat_id
|
||||
# Replaced by UI configuration
|
||||
# telegram_bot:
|
||||
# - platform: polling
|
||||
# api_key: !secret telegram_token
|
||||
# allowed_chat_ids:
|
||||
# - !secret telegram_georgi_chat_id
|
||||
|
||||
# https://www.home-assistant.io/integrations/tts
|
||||
tts:
|
||||
|
||||
@@ -3,13 +3,17 @@ input_boolean:
|
||||
initial: off
|
||||
floorplan_show_all:
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
floorplan_night_mode:
|
||||
value_template: >-
|
||||
{{ states('sun.sun') == 'below_horizon'
|
||||
or is_state('input_boolean.floorplan_night_mode', 'on') }}
|
||||
template:
|
||||
- binary_sensor:
|
||||
- default_entity_id: binary_sensor.floorplan_night_mode
|
||||
name: floorplan night mode
|
||||
state: >-
|
||||
{{ states('sun.sun') == 'below_horizon'
|
||||
or is_state('input_boolean.floorplan_night_mode', 'on') }}
|
||||
- sensor:
|
||||
- default_entity_id: sensor.automations_count
|
||||
name: "Number of automations"
|
||||
state: "{{ states.automation | count }}"
|
||||
|
||||
sensor:
|
||||
- platform: time_date
|
||||
@@ -17,15 +21,6 @@ sensor:
|
||||
- "time"
|
||||
- "date"
|
||||
|
||||
- platform: template
|
||||
sensors:
|
||||
sarah_url:
|
||||
friendly_name: "SARAH's URL"
|
||||
value_template: !secret sarah_url
|
||||
automations_count:
|
||||
friendly_name: "Number of automations"
|
||||
value_template: "{{ states.automation | count }}"
|
||||
|
||||
|
||||
shell_command:
|
||||
clear_logs: truncate -s 0 /config/home-assistant.log
|
||||
|
||||
@@ -6,12 +6,11 @@ group:
|
||||
- binary_sensor.bedroom_door_contact
|
||||
- binary_sensor.kitchen_door
|
||||
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
open_door_count:
|
||||
friendly_name: Open door count
|
||||
value_template: >-
|
||||
template:
|
||||
- sensor:
|
||||
- default_entity_id: sensor.open_door_count
|
||||
name: Open door count
|
||||
state: >-
|
||||
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_doors', 'entity_id')) %}
|
||||
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}
|
||||
|
||||
|
||||
@@ -49,13 +49,6 @@ views:
|
||||
background: '#b1633e'
|
||||
cards: !include lovelace/home_dashboard/hallway_dashboard.yaml
|
||||
theme: sarah-noctis-grey
|
||||
- title: Terrarium
|
||||
path: terrarium
|
||||
icon: "mdi:snake"
|
||||
panel: true
|
||||
background: 'top / 100% no-repeat url("/local/images/wallpapers-3/terrarium.jpg") #5E3C0F fixed'
|
||||
cards: !include lovelace/home_dashboard/terrarium_dashboard.yaml
|
||||
theme: sarah-noctis-grey
|
||||
- title: Guest Bedroom
|
||||
path: guest_bedroom
|
||||
icon: "mdi:numeric-2-box-outline"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
homeassistant:
|
||||
container_name: home-assistant
|
||||
|
||||
Reference in New Issue
Block a user