Compare commits

...

18 Commits

Author SHA1 Message Date
GeorgeSG
a44c68bd04 Remove unused resources 2026-01-25 13:56:37 +02:00
GeorgeSG
2b9a55b0ff Remove weather summary 2026-01-25 13:41:05 +02:00
GeorgeSG
01e58498ef Change mercury timings 2026-01-25 13:36:11 +02:00
GeorgeSG
dd145e690b ignore bambulab media 2026-01-25 13:35:55 +02:00
GeorgeSG
a2fd8dd9f5 Replace lohas_2 with lohas_3 2026-01-25 13:33:49 +02:00
GeorgeSG
4f1a2d302b Update weather card 2026-01-25 13:33:37 +02:00
GeorgeSG
2698986600 Remove compose version 2026-01-25 13:32:56 +02:00
GeorgeSG
c0cae3cd66 Remove deprecated telegram config 2026-01-25 13:32:48 +02:00
GeorgeSG
0af50d1139 Update dashboard paddings 2026-01-25 13:32:17 +02:00
GeorgeSG
8d4ba1905d Fix automation delay 2026-01-25 13:31:47 +02:00
GeorgeSG
7c5856bcc2 Add bus 288 2026-01-25 13:31:35 +02:00
GeorgeSG
886fa1433e More player 2 removal 2026-01-25 13:31:02 +02:00
GeorgeSG
fb527049bd Replace living room ambient secondary 2026-01-25 13:29:58 +02:00
GeorgeSG
64bf08afc0 HA 2026.1.3 2026-01-25 13:27:42 +02:00
GeorgeSG
3da6fa7c95 Remove obsolete automations 2026-01-25 13:17:51 +02:00
GeorgeSG
73da47a3c4 Remove maya 2026-01-25 13:17:39 +02:00
GeorgeSG
9797a31581 Remove terrarium 2026-01-25 13:15:16 +02:00
GeorgeSG
edc91fdce4 Update template sensors to new syntax 2026-01-25 13:13:53 +02:00
42 changed files with 339 additions and 540 deletions

View File

@@ -1 +1 @@
2024.11.2
2026.1.3

1
config/.gitignore vendored
View File

@@ -13,6 +13,7 @@ themes/
tts/
www/audio
www/community
www/media/ha-bambulab
webostv.conf
zigbee.db
*.db

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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') }}

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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 %}

View File

@@ -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:

View File

@@ -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 %}

View File

@@ -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)"

View File

@@ -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') %}

View File

@@ -33,7 +33,6 @@ automation:
- sensor.hallway_motion_2_battery
- sensor.guest_bedroom_weather_battery
- sensor.terrarium_weather_battery
below: 20
action:

View File

@@ -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 }}

View File

@@ -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

View File

@@ -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]

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -8,7 +8,6 @@ notify:
platform: group
services:
- service: mobile_app_titanium
- service: mobile_app_mayas_iphone
automation:
- alias: Notification · Phone battery low

View File

@@ -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')

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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 }}

View File

@@ -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"

View File

@@ -1,5 +1,3 @@
version: "3"
services:
homeassistant:
container_name: home-assistant