- alias: system_set_radio_volume
id: system_set_radio_volume
initial_state: true
triggers:
- trigger: state
entity_id: input_number.volume_radio
to: null
actions:
- action: media_player.volume_set
data:
entity_id: '{% if is_state("input_select.chromecast_radio", "Kitchen") %} media_player.yandex_k
{% elif is_state("input_select.chromecast_radio", "Vova room") %} media_player.yandex_v
{% elif is_state("input_select.chromecast_radio", "Sasha room") %} media_player.yandex_s
{% elif is_state("input_select.chromecast_radio", "Master Bedroom") %} media_player.yandex_mb
{% elif is_state("input_select.chromecast_radio", "Hall big") %} media_player.yandex_hb
{% endif %}
'
volume_level: '{{ states(''input_number.volume_radio'') }}'
- alias: master_bedroom_breather_auto_co2
id: master_bedroom_breather_auto_co2
initial_state: true
triggers:
- trigger: time_pattern
minutes: /3
conditions:
- condition: state
entity_id: switch.system_breather_auto_mb
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: switch.system_breather_manual_mb
state: 'on'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d000200ad58_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_mb_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_mb
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: numeric_state
entity_id: sensor.0x00158d000222c746_temperature
above: 20
sequence:
- action: fan.turn_on
entity_id: fan.breather_mb
- condition: numeric_state
entity_id: sensor.esp32_node_mb_co2
above: input_number.co2_high_limit
- condition: state
entity_id: switch.system_breather_auto_speed_mb
state: 'on'
- action: fan.set_percentage
entity_id: fan.breather_mb
data:
percentage: '{{states(''sensor.breather_set_speed_mb'')|int(0) }}'
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d000200ad58_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_mb_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_mb
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: switch.system_breather_auto_speed_mb
state: 'on'
- condition: numeric_state
entity_id: sensor.breather_set_speed_mb
above: 0
sequence:
- action: fan.set_percentage
entity_id: fan.breather_mb
data:
percentage: '{{states(''sensor.breather_set_speed_mb'')|int(0) }}'
- conditions:
- or:
- and:
- condition: state
entity_id: binary_sensor.0x00158d000200ad58_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_mb_co2
below: input_number.co2_low_limit
- condition: state
entity_id: binary_sensor.breather_mb
state: 'on'
- and:
- or:
- condition: numeric_state
entity_id: sensor.0x00158d000222c746_temperature
below: 20
- condition: state
entity_id: binary_sensor.0x00158d000200ad58_contact
state: 'on'
- condition: state
entity_id: binary_sensor.breather_mb
state: 'on'
sequence:
- action: fan.turn_off
entity_id: fan.breather_mb
- alias: master_bedroom_breather_auto_timer
id: master_bedroom_breather_auto_timer
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи вентиляцию
id: to_off_alice
- trigger: event
event_type: yandex_intent
event_data:
text: Включи вентиляцию
id: to_on_alice
- trigger: time
at: 09:00:00
id: time_trigger_day
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_off_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_mb''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_mb
state: 'on'
then:
- action: fan.turn_off
entity_id: fan.breather_mb
- action: switch.turn_on
entity_id: switch.system_breather_auto_mb
- conditions:
- condition: trigger
id: to_on_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_mb''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_mb
state: 'off'
then:
- action: fan.turn_on
entity_id: fan.breather_mb
- action: switch.turn_on
entity_id: switch.system_breather_manual_mb
- conditions:
- condition: trigger
id: time_trigger_night
sequence:
- action: switch.turn_on
entity_id: switch.system_breather_manual_mb
- action: fan.set_percentage
entity_id: fan.breather_mb
data:
percentage: 50
- conditions:
- condition: trigger
id: time_trigger_day
sequence:
- action: fan.turn_off
entity_id: fan.breather_mb
- alias: master_bedroom_breather_switches_interlock
id: master_bedroom_breather_switches_interlock
triggers:
- trigger: state
entity_id:
- switch.system_breather_auto_mb
- switch.system_breather_manual_mb
conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''on'' }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: homeassistant.turn_off
target:
entity_id: '{% if trigger.from_state.entity_id == ''switch.system_breather_auto_mb''
%} {{ ''switch.system_breather_manual_mb'' }} {% else %} {{ ''switch.system_breather_auto_mb''
}} {% endif %}'
- alias: master_bedroom_breather_switches_default
id: master_bedroom_breather_switches_default
triggers:
- trigger: template
value_template: '{{ is_state(''switch.system_breather_auto_mb'',''off'') and is_state(''switch.system_breather_manual_mb'',''off'')
}}'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: switch.turn_on
entity_id: switch.system_breather_auto_mb
- alias: system_calendar_events_to_list
id: system_calendar_events_to_list
triggers:
- event: start
platform: homeassistant
- trigger: time
at: 00:00:00
actions:
- action: input_select.set_options
target:
entity_id: input_select.calendar_events_list
data:
options: Нет событий
- event: calendar_event_list_updated
- action: script.calendar_events
data:
calendar: calendar.dima_tsymbal_gmail_com
make_choice: true
choice_word: день рождения
response_variable: events
- if:
- condition: template
value_template: '{{ events | length > 0 }}'
then:
- action: input_select.set_options
target:
entity_id: input_select.calendar_events_list
data:
options: '{{ (state_attr(''input_select.calendar_events_list'', ''options'')
| join(''|'') + ''|'' + events.values() | list | join(''|'')).split(''|'')
| select(''ne'', '''') | unique | list }}'
- event: calendar_event_list_updated
- action: script.calendar_events
data:
calendar: calendar.prazdniki_rossii_polnyi
response_variable: events
- if:
- condition: template
value_template: '{{ events | length > 0 }}'
then:
- action: input_select.set_options
target:
entity_id: input_select.calendar_events_list
data:
options: '{{ (state_attr(''input_select.calendar_events_list'', ''options'')
| join(''|'') + ''|'' + events.values() | list | join(''|'')).split(''|'')
| select(''ne'', '''') | unique | list }}'
- event: calendar_event_list_updated
- alias: system_snapshot_window
id: system_snapshot_window
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.g5_bullet_window_motion
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_snapshot_window'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: notify.telegram_cam
data:
message: Window
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_window
caption: 📷 Window {{states('sensor.time')}} {{states('sensor.date')}}
- alias: system_snapshot_yard
id: system_snapshot_yard
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.g5_bullet_yard_motion
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_snapshot_yard'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: notify.telegram_cam
data:
message: Yard
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_yard
caption: 📷 Yard {{states('sensor.time')}} {{states('sensor.date')}}
- alias: system_snapshot_dixy
id: system_snapshot_dixy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.g5_turret_dixy_motion
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_snapshot_dixy'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: notify.telegram_cam
data:
message: Dixy
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_dixy
caption: 📷 Dixy {{states('sensor.time')}} {{states('sensor.date')}}
- alias: system_snapshot_street
id: system_snapshot_street
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.g5_turret_street_motion
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_snapshot_street'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: notify.telegram_cam
data:
message: Street
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_street
caption: 📷 Street {{states('sensor.time')}} {{states('sensor.date')}}
- alias: system_snaphot_outside
id: system_snaphot_outside
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.g4_doorbell_motion
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_snaphot_outside'',
''last_triggered''),0)|int(0)) > 15 }}'
actions:
- action: notify.telegram_cam
data:
message: Doorbell
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g4_doorbell
caption: 📷 Doorbell {{states('sensor.time')}} {{states('sensor.date')}}
- alias: hall_big_domofon_incoming_call
id: hall_big_domofon_incoming_call
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.esp32_domofon_incomingcall
to: 'on'
from: 'off'
actions:
- parallel:
- action: switch.turn_on
entity_id: switch.kiosk_screen
- parallel:
- action: notify.telegram
data:
title: '{{states(''sensor.time'')}} {{states(''sensor.date'')}}'
message: '{{states(''sensor.time'')}} {{states(''sensor.date'')}}'
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_window
caption: 📣 Звонок в домофон {{states('sensor.time')}} {{states('sensor.date')}}
- action: notify.telegram_cam
data:
title: '{{states(''sensor.time'')}} {{states(''sensor.date'')}}'
message: '{{states(''sensor.time'')}} {{states(''sensor.date'')}}'
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g5_window
caption: 📣 Звонок в домофон {{states('sensor.time')}} {{states('sensor.date')}}
- if:
- condition: state
entity_id: person.sasha
state: home
then:
- action: notify.hass_synochat
data:
message: Внимание Зконок в домофон
data:
file_url: http://localhost:1984/api/frame.jpeg?src=g5_window
- or:
- condition: state
entity_id: switch.system_silent_mode
state: 'on'
- condition: state
entity_id: switch.esp32_domofon_mute
state: 'on'
- action: light.turn_on
data:
entity_id: light.esp32_node_k_led
effect: Green_Alarm
brightness: 255
- delay: 00:00:20
- action: light.turn_off
entity_id: light.esp32_node_k_led
- alias: hall_big_domofon_open_from_iphone
id: hall_big_domofon_open_from_iphone
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: mobile_app_notification_action
event_data:
service: Domofon_Open
actions:
- action: switch.turn_on
entity_id: switch.esp32_domofon_open
- action: notify.telegram
data:
message: 🔘 Домофон открыт с телефона
- alias: hall_big_domofon_auto_message
id: hall_big_domofon_auto_message
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.esp32_domofon_auto_opening
from: 'off'
to: 'on'
actions:
- action: notify.telegram
data:
message: 📞 Домофон открыт автоматически
- alias: hall_big_domofon_auto_opening
id: hall_big_domofon_auto_opening
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: switch.esp32_domofon_auto_open, switch.esp32_domofon_auto_open_once
to: null
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ = trigger.from_state.state\n}}"
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: notify.telegram
data:
message: '{% if is_state(''switch.esp32_domofon_auto_open'',''on'') and ''once''
not in trigger.to_state.entity_id %}{{''\U0001f513''}} Домофон: Автооткрытие
включено {% elif is_state(''switch.esp32_domofon_auto_open_once'',''on'')
and ''once'' in trigger.to_state.entity_id %}{{''\U0001f513''}} Домофон: Разовое
автооткрытие включено {% else %}{{''\U0001f512''}} Домофон: Автооткрытие выключено{%
endif %}
'
- alias: hall_big_domofon_timer_on
id: hall_big_domofon_timer_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: template
value_template: '{{is_state(''switch.esp32_domofon_auto_open'',''on'') or is_state(''switch.esp32_domofon_auto_open_once'',''on'')
}}'
actions:
- action: timer.cancel
entity_id: timer.domofon
- action: timer.start
entity_id: timer.domofon
- alias: hall_big_domofon_auto_open_turn_off
id: hall_big_domofon_auto_open_turn_off
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.domofon
actions:
- action: switch.turn_off
entity_id: switch.esp32_domofon_auto_open, switch.esp32_domofon_auto_open_once,
switch.esp32_domofon_mute
- alias: hall_big_domofon_timer_off
id: hall_big_domofon_timer_off
initial_state: true
triggers:
- trigger: template
value_template: '{{not is_state(''switch.esp32_domofon_auto_open'',''on'') and
not is_state(''switch.esp32_domofon_auto_open_once'',''on'') }}'
actions:
- action: timer.cancel
entity_id: timer.domofon
- alias: hall_big_domofon_button
id: hall_big_domofon_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.esp32_domofon_button
from: 'off'
to: 'on'
actions:
- action: switch.turn_on
entity_id: switch.kiosk_screen
- action: telegram_bot.send_photo
data:
url: http://localhost:1984/api/frame.jpeg?src=g5_entrance
caption: 🔘 Домофон открыт вручную
target: secret tel_chat_id
timeout: 180
- alias: hall_big_doorbell
id: hall_big_doorbell
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.g4_doorbell_doorbell
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.hall_big_doorbell'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: switch.turn_on
entity_id: switch.kiosk_screen
- parallel:
- action: notify.telegram
data:
title: Doorbell photo
message: 🔔 Внимание! Кто-то звонит в дверь!
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g4_doorbell
caption: 🔔 Внимание! Кто-то звонит в дверь! {{states('sensor.time')}}
{{states('sensor.date')}}
- if:
- condition: state
entity_id: person.sasha
state: home
then:
- action: notify.hass_synochat
data:
message: Внимание! Кто-то звонит в дверь!
data:
file_url: http://localhost:1984/api/frame.jpeg?src=g4_doorbell
- parallel:
- action: light.turn_on
data:
entity_id: light.light_bar_s_ambilight
effect: Police
brightness: 255
- action: light.turn_on
data:
entity_id: light.esp32_node_k_led
effect: Green_Alarm
brightness: 255
- delay: 00:00:25
- wait_for_trigger:
- trigger: state
entity_id:
- binary_sensor.582d344031f7_contact
- binary_sensor.0x00158d0001e5d6be_contact
from: 'on'
to: 'off'
timeout:
seconds: 30
continue_on_timeout: true
- action: light.turn_off
entity_id: light.esp32_node_k_led, light.light_bar_s_ambilight
- alias: emergency_backup
id: emergency_backup
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.hass_backup_ping
to: null
- trigger: state
entity_id: binary_sensor.hass_backup_state
to: null
actions:
- action: notify.telegram
data:
message: '{% if is_state(''binary_sensor.hass_backup_ping'',''on'') and is_state(''binary_sensor.hass_backup_state'',''on'')
%}{{''\U00002705''}} {% elif is_state(''binary_sensor.hass_backup_ping'',''on'')
or is_state(''binary_sensor.hass_backup_state'',''on'') %}{{''\U000026a0''}}
{% else %}{{''\U0000274C''}} {% endif %} Backup: HA - {{states(''binary_sensor.hass_backup_state'')|upper}},
host - {{states(''binary_sensor.hass_backup_ping'')|upper}}!'
- alias: hall_big_fridge_not_closed_5m
id: hall_big_fridge_not_closed_5m
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000253722b_contact
from: 'off'
to: 'on'
for:
minutes: 5
actions:
- action: notify.telegram
data:
message: 👁 Внимание! Холодильник не закрыт!
- alias: hall_big_freezer_not_closed_5m
id: hall_big_freezer_not_closed_5m
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000252acba_contact
from: 'off'
to: 'on'
for:
minutes: 5
actions:
- action: notify.telegram
data:
message: 👁 Внимание! Морозильник не закрыт!
- alias: hall_big_fridge_temp_alarm
id: hall_big_fridge_temp_alarm
initial_state: true
triggers:
- trigger: time_pattern
minutes: /15
conditions:
- condition: numeric_state
entity_id: sensor.ble_temperature_ble_fridge
above: 15
actions:
- action: notify.telegram
data:
message: 🌡 Внимание! Температура в холодильнике {{states('sensor.ble_temperature_ble_fridge')|int(0)}}°C!
- alias: hall_big_freezer_temp_alarm
id: hall_big_freezer_temp_alarm
initial_state: true
triggers:
- trigger: time_pattern
minutes: /15
conditions:
- condition: numeric_state
entity_id: sensor.ble_temperature_ble_freezer
above: 0
actions:
- action: notify.telegram
data:
message: 🌡 Внимание! Температура в морозилке {{states('sensor.ble_temperature_ble_freezer')|int(0)}}°C!
- alias: hall_big_fridge_sensors_outage
id: hall_big_fridge_sensors_outage
mode: single
max_exceeded: silent
initial_state: true
triggers:
- trigger: time_pattern
minutes: /30
conditions:
- condition: template
value_template: '{{ as_timestamp(now())- as_timestamp(states.sensor.ble_temperature_ble_fridge.last_updated)
> 2*60*60 or as_timestamp(now())- as_timestamp(states.sensor.ble_temperature_ble_freezer.last_updated)
> 2*60*60 or as_timestamp(now())- as_timestamp(states.sensor[''0x00158d000253722b_zigbee''].last_updated)
> 2*60*60 or as_timestamp(now())- as_timestamp(states.sensor[''0x00158d000252acba_zigbee''].last_updated)
> 2*60*60 }}
'
actions:
- action: notify.telegram
data:
message: '{{''\U0000274c''}} Внимание! Нет данных от датчика {%- if as_timestamp(now())-
as_timestamp(states.sensor.ble_temperature_ble_fridge.last_updated) > 2*60*60
%} температуры холодильника {%- elif as_timestamp(now())- as_timestamp(states.sensor.ble_temperature_ble_freezer.last_updated)
> 2*60*60 %} температуры морозилки {%- elif as_timestamp(now())- as_timestamp(states.sensor[''0x00158d000253722b_zigbee''].last_updated)
> 2*60*60 %} двери холодильника {%- elif as_timestamp(now())- as_timestamp(states.sensor[''0x00158d000252acba_zigbee''].last_updated)
> 2*60*60 %} двери морозилки {%-else%} ххх {%endif%}!'
- alias: kitchen_briefing
id: kitchen_briefing
initial_state: true
triggers:
- trigger: time
at: 07:05:00
- trigger: homeassistant
event: start
conditions:
- condition: time
after: 07:00:00
before: 07:15:00
- condition: template
value_template: '{{(as_timestamp(now())|int(0) - as_timestamp(state_attr(''automation.kitchen_briefing'',
''last_triggered''),0)|int(0)) > 15*60 }}'
- condition: state
entity_id: binary_sensor.workday_sensor
state: 'on'
actions:
- action: input_number.set_value
data:
entity_id: input_number.main_volume
value: '0.4'
- wait_for_trigger:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
timeout:
minutes: 15
continue_on_timeout: false
- action: script.briefing_tts
data:
entity_id: media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- alias: kitchen_smoke_detected
id: kitchen_smoke_detected
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0002c92f31_smoke
to: 'on'
actions:
- action: notify.telegram
data:
message: ⛔ Внимание! Сработал датчик дыма!
- alias: kitchen_gas_detected
id: kitchen_gas_detected
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d00024bcf85_gas
to: 'on'
actions:
- action: notify.telegram
data:
message: ⛔ Внимание! Сработал датчик газа!
- alias: kitchen_kettle_count
id: kitchen_kettle_count
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.kettle_boil_k
from: 'off'
to: 'on'
actions:
- action: counter.increment
entity_id: counter.kettle_k
- alias: kitchen_oven_notify
id: kitchen_oven_notify
initial_state: true
triggers:
- trigger: time_pattern
minutes: /30
conditions:
- condition: numeric_state
entity_id: sensor.esp8266_oven_temp_k_temperature
above: 100
- condition: state
entity_id: binary_sensor.motion_k
state: 'off'
for: 00:30:00
actions:
- action: notify.telegram
data:
message: 🌡 Внимание! Духовка включена ({{states('sensor.esp8266_oven_temp_k_temperature')|int(0)}}°C)!
- alias: kitchen_tv_plug_off
id: kitchen_tv_plug_off
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.presence_k
to: 'off'
for:
minutes: 30
conditions:
- condition: time
after: 00:00:00
before: 06:00:00
- condition: state
entity_id: switch.0x00158d0001e85086_plug
state: 'on'
actions:
- action: switch.turn_off
entity_id: switch.0x00158d0001e85086_plug
- alias: kitchen_tv_plug_on
id: kitchen_tv_plug_on
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.presence_k
to: 'on'
from: 'off'
conditions:
- condition: time
after: 06:00:00
- condition: time
before: 08:00:00
- condition: state
entity_id: switch.0x00158d0001e85086_plug
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.0x00158d0001e85086_plug
- alias: kitchen_oven_notify_target_temp
id: kitchen_oven_notify_target_temp
initial_state: true
triggers:
- trigger: event
event_type: automation_reloaded
- trigger: state
entity_id: binary_sensor.esp8266_oven_temp_k_oven_state
to: 'on'
conditions:
- condition: template
value_template: '{{ states(''sensor.oven_target_temperature'')|int(0) > 100 }}'
- condition: template
value_template: '{{as_timestamp(now()) - as_timestamp(state_attr(''automation.kitchen_oven_notify_target_temp'',
''last_triggered''),0) > 60*60 }}'
- condition: state
entity_id: binary_sensor.esp8266_oven_temp_k_oven_state
state: 'on'
actions:
- wait_for_trigger:
- trigger: template
value_template: '{{ states(''sensor.esp8266_oven_temp_k_temperature'')|int(0)
>= states(''sensor.oven_target_temperature'')|int(0) }}'
timeout:
minutes: 60
continue_on_timeout: false
- action: notify.telegram
data:
message: 🌡 Духовка нагрелась до {{states('sensor.esp8266_oven_temp_k_temperature')|int(0)}}°C!
- if:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
then:
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Температура в духовке ({{states('sensor.esp8266_oven_temp_k_temperature')|int(0)}}°C
- alias: kitchen_oven_notify_to_alice
id: kitchen_oven_notify_to_alice
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Какая температура в духовке
actions:
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Температура в духовке ({{states('sensor.esp8266_oven_temp_k_temperature')|int(0)}}°C
- alias: kitchen_today_dishwasher
id: kitchen_today_dishwasher
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Кто моет посуду
actions:
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: '{{ trigger.event.data.entity_id }}'
media_content_id: Сегодня посуду моет {% if is_state('input_select.dishwasher','Vova')
%}{{['Вова','Володя','Владимир','Вовчик','Вовка']|random}}{%else%}{{['Саша','Санёк','Александр','Сашка']|random}}{%endif%}
extra:
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- alias: kitchen_tv_plug_toggle_button
id: kitchen_tv_plug_toggle_button
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef61be_action
click_type: single
actions:
- action: switch.toggle
entity_id: switch.0x00158d0001e85086_plug
- alias: system_fan_control_alice
id: system_fan_control_alice
initial_state: true
mode: parallel
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи вентиляцию
id: 'off'
- trigger: event
event_type: yandex_intent
event_data:
text: Включи вентиляцию
id: 'on'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_k''
}}'
actions:
- action: fan.turn_{{ trigger.id }}
entity_id: fan.esp8266_hood_k_fan
- alias: system_location_notify
id: system_location_notify
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id: person.sandra, person.vova, person.sasha
to: null
conditions:
- condition: template
value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'
actions:
- action: notify.telegram
data:
message: "{%- set from = trigger.from_state.state |replace('_',' ') | title\
\ %} {%- set to = trigger.to_state.state |replace('_',' ') | title %} {%-\
\ set person = trigger.to_state.attributes.friendly_name %} {%- if from ==\
\ 'Not Home' %}\n {%- set event = 'прибыл' %}\n{%- elif to == 'Not Home'\
\ %}\n {%- set event = 'покинул' %}\n{%- else %}\n {%- set event = 'переместился'\
\ %}\n{%- endif %} {%- if from == \"Not Home\" %} {{'\\U0001f30d'}} {{ person\
\ + ' ' + event + ' в ' + to }} {%- elif to == \"Not Home\" %} {{'\\U0001f30d'}}\
\ {{ person + ' ' + event + ' ' + from }} {%- else %} {{'\\U0001f30d'}} {{\
\ person + ' ' + event + ' из ' + from + ' в ' + to }} {%- endif %}"
- alias: system_person_came_left_home
id: system_person_came_left_home
mode: parallel
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- person.dima
- person.sandra
- person.sasha
- person.vova
to: null
conditions:
- condition: state
entity_id: input_boolean.ha_shutdown
state: 'off'
for:
seconds: 15
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ != trigger.from_state.state }} \n"
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''home'' and trigger.from_state.state
!= ''home'' }}'
sequence:
- event: person_came_home
- action: logbook.log
data:
name: Person Came Home
message: ' - {{ trigger.entity_id }}'
entity_id: '{{ trigger.entity_id }}'
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state != ''home'' and trigger.from_state.state
== ''home'' }}'
sequence:
- event: person_left_home
- action: logbook.log
data:
name: Person Left Home
message: ' - {{ trigger.entity_id }}'
entity_id: '{{ trigger.entity_id }}'
- alias: system_location_home_mode
id: system_location_home_mode
triggers:
- trigger: state
entity_id: sensor.people_home
to: '1'
id: non_vac
- trigger: state
entity_id: sensor.people_home
to: '0'
for:
hours: 24
id: vac
actions:
- choose:
- conditions:
- condition: trigger
id: non_vac
sequence:
- variables:
txt: '{% if states(''sensor.people_home'')|int(0) > 0 %} Home {% elif states(''sensor.people_home'')|int(0)
== 0 %} Away {% endif %}'
- action: input_select.select_option
entity_id: input_select.home_mode
data:
option: '{{ txt }}'
- conditions:
- condition: trigger
id: vac
sequence:
- action: input_select.select_option
entity_id: input_select.home_mode
data:
option: Vacation
- alias: hall_big_main_door_locks
id: hall_big_main_door_locks
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.top_lock
to: null
id: lock_top
- trigger: state
entity_id: binary_sensor.bottom_lock
to: null
id: lock_bottom
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 2
- condition: state
entity_id: input_boolean.ha_shutdown
state: 'off'
- condition: template
value_template: '{{ states(''binary_sensor.top_lock'') in [''on'',''off''] and
states(''binary_sensor.top_lock'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: lock_top
sequence:
- action: notify.telegram
data:
message: '{% if is_state(''binary_sensor.top_lock'',''on'') %}🔓🔼 Верхний
замок открыт!{% else %}🔒🔼 Верхний замок закрыт!{% endif %}'
- conditions:
- condition: trigger
id: lock_bottom
sequence:
- action: notify.telegram
data:
message: '{% if is_state(''binary_sensor.bottom_lock'',''on'') %}🔓🔽 Нижний
замок открыт!{% else %}🔒🔽 Нижний замок закрыт!{% endif %}'
- action: script.turn_on
entity_id: script.domofon_locks_indicator
- alias: hall_big_main_door_not_closed_3m
id: hall_big_main_door_not_closed_3m
initial_state: true
triggers:
- trigger: time_pattern
minutes: /3
conditions:
- condition: state
entity_id:
- binary_sensor.0x00158d0001e5d6be_contact
state: 'on'
for:
minutes: 3
actions:
- if:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
then:
- action: media_player.volume_set
data:
entity_id:
- media_player.yandex_hb
volume_level: '0.7'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_hb
media_content_id: Вним+ание! Входн+ая дв+ерь н+е закр+ыта! Входн+ая дв+ерь
н+е закр+ыта!
- action: notify.telegram
data:
message: 👁 Внимание! Входная дверь НЕ закрыта!
- action: script.turn_on
entity_id: script.open_door_photo
- action: media_player.volume_set
data:
entity_id: media_player.yandex_hb
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- alias: hall_big_main_door_closed
id: hall_big_main_door_closed
initial_state: true
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d0001e5d6be_contact
from: 'on'
to: 'off'
actions:
- action: notify.telegram
data:
title: Doorbell photo
message: 🔔 Входная дверь закрыта!
data:
photo:
- url: http://localhost:1984/api/frame.jpeg?src=g4_doorbell
caption: 🚪 Входная дверь закрыта {{ states('sensor.time') }}, была открыта
{{(as_timestamp(now())|int(0)-states('input_number.main_door_open')|int(0))
| timestamp_custom('%H:%M:%S',false,0)}}
- action: timer.cancel
entity_id: timer.main_door_open_hb
- id: mqtt_sensors_discovery
alias: mqtt_sensors_discovery
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.mqtt_broker_main
to: 'on'
- event: start
platform: homeassistant
- trigger: event
event_type: automation_reloaded
conditions:
- condition: state
entity_id: binary_sensor.mqtt_broker_main
state: 'on'
actions:
- action: mqtt.publish
data:
topic: homeassistant/binary_sensor/lxc_plex_media_mount/config
retain: true
payload: "{ \n \"name\":\"LXC Plex Media Mount\", \n \"state_topic\":\"lxc_plex/binary\"\
,\n \"unique_id\":\"lxc_plex_media_mount\",\n \"device_class\":\"connectivity\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"device\":{\"\
identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"\
}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/config_line_count/config
retain: true
payload: "{ \n \"name\":\"Config Line Count\", \n \"state_topic\":\"hp600g6/config_linecount\"\
,\n \"unique_id\":\"config_line_count\",\n \"icon\":\"mdi:format-list-bulleted\"\
,\n \"unit_of_measurement\":\"lines\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} value|int(0) {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"\
System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/config_line_count_code/config
retain: true
payload: "{ \n \"name\":\"Config Line Count Code\", \n \"state_topic\":\"\
hp600g6/config_linecount_code\",\n \"unique_id\":\"config_line_count_code\"\
,\n \"icon\":\"mdi:format-list-numbered\",\n \"unit_of_measurement\":\"\
lines\",\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"\
{{ '{{' }} value|int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"\
sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/music_allowed/config
retain: true
payload: "{ \n \"name\":\"Music Allowed\",\n \"command_topic\":\"servers/main_states/music_allowed\"\
,\n \"state_topic\":\"servers/main_states/music_allowed\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"music_allowed\",\n \"icon\":\"mdi:volume-high\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/guest_mode/config
retain: true
payload: "{ \n \"name\":\"Guest Mode\",\n \"command_topic\":\"servers/main_states/guest_mode\"\
,\n \"state_topic\":\"servers/main_states/guest_mode\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"guest_mode\",\n \"icon\":\"mdi:account-question\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/main_lead/config
retain: true
payload: "{ \n \"name\":\"Main Lead\",\n \"command_topic\":\"servers/main_states/main_lead\"\
,\n \"state_topic\":\"servers/main_states/main_lead\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"main_lead\",\n \"icon\":\"mdi:server-network\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_strip_bed_v_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED Strip Bed V Restart Key\",\n \"command_topic\"\
:\"servers/main_states/led_strip_bed_v_restart_key\",\n \"state_topic\":\"\
servers/main_states/led_strip_bed_v_restart_key\",\n \"payload_on\":\"ON\"\
,\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\":\"\
OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"led_strip_bed_v_restart_key\",\n \"icon\":\"mdi:restart\",\n \"device\"\
:{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"\
System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/square_led_v_restart_key/config
retain: true
payload: "{ \n \"name\":\"Square LED V Restart Key\",\n \"command_topic\"\
:\"servers/main_states/square_led_v_restart_key\",\n \"state_topic\":\"servers/main_states/square_led_v_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"square_led_v_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_color_v_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED Color V Restart Key\",\n \"command_topic\":\"\
servers/main_states/led_color_v_restart_key\",\n \"state_topic\":\"servers/main_states/led_color_v_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"led_color_v_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_color_s_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED Color S Restart Key\",\n \"command_topic\":\"\
servers/main_states/led_color_s_restart_key\",\n \"state_topic\":\"servers/main_states/led_color_s_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"led_color_s_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_white_s_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED White S Restart Key\",\n \"command_topic\":\"\
servers/main_states/led_white_s_restart_key\",\n \"state_topic\":\"servers/main_states/led_white_s_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"led_white_s_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_white_mb_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED White MB Restart Key\",\n \"command_topic\"\
:\"servers/main_states/led_white_mb_restart_key\",\n \"state_topic\":\"servers/main_states/led_white_mb_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"led_white_mb_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/square_led_s_restart_key/config
retain: true
payload: "{ \n \"name\":\"Square LED S Restart Key\",\n \"command_topic\"\
:\"servers/main_states/square_led_s_restart_key\",\n \"state_topic\":\"servers/main_states/square_led_s_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"square_led_s_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/light_bar_s_restart_key/config
retain: true
payload: "{ \n \"name\":\"Light Bar S Restart Key\",\n \"command_topic\":\"\
servers/main_states/light_bar_s_restart_key\",\n \"state_topic\":\"servers/main_states/light_bar_s_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"light_bar_s_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/bedside_restart_key/config
retain: true
payload: "{ \n \"name\":\"Bedside Restart Key\",\n \"command_topic\":\"servers/main_states/bedside_restart_key\"\
,\n \"state_topic\":\"servers/main_states/bedside_restart_key\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"bedside_restart_key\",\n \"icon\":\"mdi:restart\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/round_led_mb_restart_key/config
retain: true
payload: "{ \n \"name\":\"Round LED MB Restart Key\",\n \"command_topic\"\
:\"servers/main_states/round_led_mb_restart_key\",\n \"state_topic\":\"servers/main_states/round_led_mb_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"round_led_mb_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/round_led_k_restart_key/config
retain: true
payload: "{ \n \"name\":\"Round LED K Restart Key\",\n \"command_topic\":\"\
servers/main_states/round_led_k_restart_key\",\n \"state_topic\":\"servers/main_states/round_led_k_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"round_led_k_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/round_led_hs_restart_key/config
retain: true
payload: "{ \n \"name\":\"Round LED HS Restart Key\",\n \"command_topic\"\
:\"servers/main_states/round_led_hs_restart_key\",\n \"state_topic\":\"servers/main_states/round_led_hs_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"round_led_hs_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/round_led_st_restart_key/config
retain: true
payload: "{ \n \"name\":\"Round LED St Restart Key\",\n \"command_topic\"\
:\"servers/main_states/round_led_st_restart_key\",\n \"state_topic\":\"servers/main_states/round_led_st_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"round_led_st_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/mirror_light_b_restart_key/config
retain: true
payload: "{ \n \"name\":\"Mirror Light B Restart Key\",\n \"command_topic\"\
:\"servers/main_states/mirror_light_b_restart_key\",\n \"state_topic\":\"\
servers/main_states/mirror_light_b_restart_key\",\n \"payload_on\":\"ON\"\
,\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\":\"\
OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"mirror_light_b_restart_key\",\n \"icon\":\"mdi:restart\",\n \"device\"\
:{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"\
System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_strip_entrance_hb_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED Strip Entrance HB Restart Key\",\n \"command_topic\"\
:\"servers/main_states/led_strip_entrance_hb_restart_key\",\n \"state_topic\"\
:\"servers/main_states/led_strip_entrance_hb_restart_key\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"led_strip_entrance_hb_restart_key\",\n \"icon\":\"mdi:restart\",\n \"\
device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"\
name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/led_strip_hb_restart_key/config
retain: true
payload: "{ \n \"name\":\"LED Strip HB Restart Key\",\n \"command_topic\"\
:\"servers/main_states/led_strip_hb_restart_key\",\n \"state_topic\":\"servers/main_states/led_strip_hb_restart_key\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"led_strip_hb_restart_key\",\n \"icon\":\"mdi:restart\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/maintenance_mode/config
retain: true
payload: "{ \n \"name\":\"Maintenance Mode\",\n \"command_topic\":\"servers/main_states/maintenance_mode\"\
,\n \"state_topic\":\"servers/main_states/maintenance_mode\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"maintenance_mode\",\n \"icon\":\"mdi:hammer-wrench\",\n \"device\":{\"\
identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/security_mode/config
retain: true
payload: "{ \n \"name\":\"Security Mode\",\n \"command_topic\":\"servers/main_states/security_mode\"\
,\n \"state_topic\":\"servers/main_states/security_mode\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"security_mode\",\n \"icon\":\"mdi:police-badge\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/select/mode_breather_v/config
retain: true
payload: "{ \n \"name\":\"Mode Breather V\",\n \"command_topic\":\"servers/main_states/mode_breather_v\"\
,\n \"state_topic\":\"servers/main_states/mode_breather_v\",\n \"options\"\
: [\"Auto\", \"Manual\", \"Programm\", \"Off\"],\n \"optimistic\":\"false\"\
,\n \"retain\":\"true\",\n \"unique_id\":\"mode_breather_v\",\n \"icon\"\
:\"mdi:fan\",\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\"\
:\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/select/mode_breather_s/config
retain: true
payload: "{ \n \"name\":\"Mode Breather S\",\n \"command_topic\":\"servers/main_states/mode_breather_s\"\
,\n \"state_topic\":\"servers/main_states/mode_breather_s\",\n \"options\"\
: [\"Auto\", \"Manual\", \"Programm\", \"Off\"],\n \"optimistic\":\"false\"\
,\n \"retain\":\"true\",\n \"unique_id\":\"mode_breather_s\",\n \"icon\"\
:\"mdi:fan\",\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\"\
:\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/select/mode_breather_mb/config
retain: true
payload: "{ \n \"name\":\"Mode Breather MB\",\n \"command_topic\":\"servers/main_states/mode_breather_mb\"\
,\n \"state_topic\":\"servers/main_states/mode_breather_mb\",\n \"options\"\
: [\"Auto\", \"Manual\", \"Programm\", \"Off\"],\n \"optimistic\":\"false\"\
,\n \"retain\":\"true\",\n \"unique_id\":\"mode_breather_mb\",\n \"icon\"\
:\"mdi:fan\",\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\"\
:\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/hourly_mode_breather_v/config
retain: true
payload: "{ \n \"name\":\"Hourly Mode Breather V\",\n \"command_topic\":\"\
servers/main_states/hourly_mode_breather_v\",\n \"state_topic\":\"servers/main_states/hourly_mode_breather_v\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"hourly_mode_breather_v\",\n \"icon\":\"mdi:flash-auto\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_auto_v/config
retain: true
payload: "{ \n \"name\":\"Breather Auto V\",\n \"command_topic\":\"servers/main_states/breather_auto_v\"\
,\n \"state_topic\":\"servers/main_states/breather_auto_v\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_auto_v\",\n \"icon\":\"mdi:flash-auto\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_auto_mb/config
retain: true
payload: "{ \n \"name\":\"Breather Auto MB\",\n \"command_topic\":\"servers/main_states/breather_auto_mb\"\
,\n \"state_topic\":\"servers/main_states/breather_auto_mb\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_auto_mb\",\n \"icon\":\"mdi:flash-auto\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_auto_s/config
retain: true
payload: "{ \n \"name\":\"Breather Auto S\",\n \"command_topic\":\"servers/main_states/breather_auto_s\"\
,\n \"state_topic\":\"servers/main_states/breather_auto_s\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_auto_s\",\n \"icon\":\"mdi:flash-auto\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_speed_auto_v/config
retain: true
payload: "{ \n \"name\":\"Breather Auto Speed V\",\n \"command_topic\":\"\
servers/main_states/breather_speed_auto_v\",\n \"state_topic\":\"servers/main_states/breather_speed_auto_v\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"retain\":\"true\"\
,\n \"state_on\":\"ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\"\
,\n \"unique_id\":\"breather_speed_auto_v\",\n \"icon\":\"mdi:fan-auto\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_speed_auto_mb/config
retain: true
payload: "{ \n \"name\":\"Breather Auto Speed MB\",\n \"command_topic\":\"\
servers/main_states/breather_speed_auto_mb\",\n \"state_topic\":\"servers/main_states/breather_speed_auto_mb\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"breather_speed_auto_mb\",\n \"icon\":\"mdi:fan-auto\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_speed_auto_s/config
retain: true
payload: "{ \n \"name\":\"Breather Auto Speed S\",\n \"command_topic\":\"\
servers/main_states/breather_speed_auto_s\",\n \"state_topic\":\"servers/main_states/breather_speed_auto_s\"\
,\n \"payload_on\":\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"\
ON\",\n \"state_off\":\"OFF\",\n \"optimistic\":\"false\",\n \"retain\"\
:\"true\",\n \"unique_id\":\"breather_speed_auto_s\",\n \"icon\":\"mdi:fan-auto\"\
,\n \"device\":{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\"\
,\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_manual_v/config
retain: true
payload: "{ \n \"name\":\"Breather Manual V\",\n \"command_topic\":\"servers/main_states/breather_manual_v\"\
,\n \"state_topic\":\"servers/main_states/breather_manual_v\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_manual_v\",\n \"icon\":\"mdi:flash-red-eye\",\n \"device\":{\"\
identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_manual_s/config
retain: true
payload: "{ \n \"name\":\"Breather Manual S\",\n \"command_topic\":\"servers/main_states/breather_manual_s\"\
,\n \"state_topic\":\"servers/main_states/breather_manual_s\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_manual_s\",\n \"icon\":\"mdi:flash-red-eye\",\n \"device\":{\"\
identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/breather_manual_mb/config
retain: true
payload: "{ \n \"name\":\"Breather Manual MB\",\n \"command_topic\":\"servers/main_states/breather_manual_mb\"\
,\n \"state_topic\":\"servers/main_states/breather_manual_mb\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"breather_manual_mb\",\n \"icon\":\"mdi:flash-red-eye\",\n \"device\"\
:{\"identifiers\":[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"\
System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/silent_mode/config
retain: true
payload: "{ \n \"name\":\"Silent Mode\",\n \"command_topic\":\"servers/main_states/silent_mode\"\
,\n \"state_topic\":\"servers/main_states/silent_mode\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"silent_mode\",\n \"icon\":\"mdi:volume-off\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/switch/dark_mode/config
retain: true
payload: "{ \n \"name\":\"Dark Mode\",\n \"command_topic\":\"servers/main_states/dark_mode\"\
,\n \"state_topic\":\"servers/main_states/dark_mode\",\n \"payload_on\"\
:\"ON\",\n \"payload_off\":\"OFF\",\n \"state_on\":\"ON\",\n \"state_off\"\
:\"OFF\",\n \"optimistic\":\"false\",\n \"retain\":\"true\",\n \"unique_id\"\
:\"dark_mode\",\n \"icon\":\"mdi:weather-night\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/binary_sensor/main_server_state/config
retain: true
payload: "{ \n \"name\":\"Main Server State\", \n \"state_topic\":\"servers/main_server\"\
,\n \"device_class\":\"connectivity\",\n \"payload_on\":\"ON\",\n \"payload_off\"\
:\"OFF\",\n \"unique_id\":\"main_server_state\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/binary_sensor/backup_server_state/config
retain: true
payload: "{ \n \"name\":\"Backup Server State\", \n \"state_topic\":\"servers/backup_server\"\
,\n \"device_class\":\"connectivity\",\n \"payload_on\":\"ON\",\n \"payload_off\"\
:\"OFF\",\n \"unique_id\":\"backup_server_state\",\n \"device\":{\"identifiers\"\
:[\"sys_info\"],\"manufacturer\":\"DTsymbal\",\"name\":\"System\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_fan_speed/config
retain: true
payload: "{ \n \"name\":\"Fan Speed\", \n \"state_topic\":\"1621/fan_speed\"\
,\n \"unique_id\":\"ds1621plus_fan_speed\",\n \"icon\":\"mdi:fan\",\n \"\
entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{' }} value\
\ | capitalize {{ '}}' }}\",\n \"device\":{\"identifiers\":[\"1621\"],\"\
manufacturer\":\"Synology\",\"model\":\"DS1621+\",\"name\":\"ds1621plus\"\
}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_fan1_rpm/config
retain: true
payload: "{ \n \"name\":\"Fan1 RPM\", \n \"state_topic\":\"1621/fan1\", \n\
\ \"icon\":\"mdi:fan\", \n \"unit_of_measurement\": \"RPM\",\n \"unique_id\"\
:\"ds1621plus_fan1\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"1621\"],\"manufacturer\":\"Synology\",\"model\":\"DS1621+\",\"name\":\"\
ds1621plus\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_fan2_rpm/config
retain: true
payload: "{ \n \"name\":\"Fan2 RPM\", \n \"state_topic\":\"1621/fan2\", \n\
\ \"icon\":\"mdi:fan\", \n \"unit_of_measurement\": \"RPM\",\n \"unique_id\"\
:\"ds1621plus_fan2\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"1621\"],\"manufacturer\":\"Synology\",\"model\":\"DS1621+\",\"name\":\"\
ds1621plus\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme0_data_units_read/config
retain: true
payload: "{ \n \"name\":\"Data Units Read\", \n \"state_topic\":\"1621/nvme0/read\"\
,\n \"unique_id\":\"ds1621plus_nvme0_data_units_read\",\n \"icon\":\"mdi:alpha-r-circle\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512 / 1024 / 1024 /\
\ 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"1621_nvme0\"\
],\"manufacturer\":\"Silicon Power\",\"model\":\"A80 1Tb\",\"name\":\"ds1621plus\
\ nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme0_data_units_written/config
retain: true
payload: "{ \n \"name\":\"Data Units Written\", \n \"state_topic\":\"1621/nvme0/write\"\
,\n \"unique_id\":\"ds1621plus_nvme0_data_units_written\",\n \"icon\":\"\
mdi:alpha-w-circle\",\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512\
\ / 1024 / 1024 / 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"1621_nvme0\"],\"manufacturer\":\"Silicon Power\",\"model\":\"A80 1Tb\"\
,\"name\":\"ds1621plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme0_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"Power On Hours\", \n \"state_topic\":\"1621/nvme0/power_on_hours\"\
,\n \"unique_id\":\"ds1621plus_nvme0_power_on_hours\",\n \"icon\":\"mdi:calendar-clock\"\
,\n \"unit_of_measurement\":\"hr\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"\
device\":{\"identifiers\":[\"1621_nvme0\"],\"manufacturer\":\"Silicon Power\"\
,\"model\":\"A80 1Tb\",\"name\":\"ds1621plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme0_wear_leveling_count/config
retain: true
payload: "{ \n \"name\":\"Wear Leveling Count\", \n \"state_topic\":\"1621/nvme0/percent\"\
,\n \"unique_id\":\"ds1621plus_nvme0_wear_leveling_count\",\n \"icon\":\"\
mdi:percent-circle\",\n \"unit_of_measurement\":\"%\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"1621_nvme0\"],\"manufacturer\"\
:\"Silicon Power\",\"model\":\"A80 1Tb\",\"name\":\"ds1621plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme1_data_units_read/config
retain: true
payload: "{ \n \"name\":\"Data Units Read\", \n \"state_topic\":\"1621/nvme1/read\"\
,\n \"unique_id\":\"ds1621plus_nvme1_data_units_read\",\n \"icon\":\"mdi:alpha-r-circle\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512 / 1024 / 1024 /\
\ 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"1621_nvme1\"\
],\"manufacturer\":\"Silicon Power\",\"model\":\"A80 1Tb\",\"name\":\"ds1621plus\
\ nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme1_data_units_written/config
retain: true
payload: "{ \n \"name\":\"Data Units Written\", \n \"state_topic\":\"1621/nvme1/write\"\
,\n \"unique_id\":\"ds1621plus_nvme1_data_units_written\",\n \"icon\":\"\
mdi:alpha-w-circle\",\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512\
\ / 1024 / 1024 / 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"1621_nvme1\"],\"manufacturer\":\"Silicon Power\",\"model\":\"A80 1Tb\"\
,\"name\":\"ds1621plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme1_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"Power On Hours\", \n \"state_topic\":\"1621/nvme1/power_on_hours\"\
,\n \"unique_id\":\"ds1621plus_nvme1_power_on_hours\",\n \"icon\":\"mdi:calendar-clock\"\
,\n \"unit_of_measurement\":\"hr\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"\
device\":{\"identifiers\":[\"1621_nvme1\"],\"manufacturer\":\"Silicon Power\"\
,\"model\":\"A80 1Tb\",\"name\":\"ds1621plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_nvme1_wear_leveling_count/config
retain: true
payload: "{ \n \"name\":\"Wear Leveling Count\", \n \"state_topic\":\"1621/nvme1/percent\"\
,\n \"unique_id\":\"ds1621plus_nvme1_wear_leveling_count\",\n \"icon\":\"\
mdi:percent-circle\",\n \"unit_of_measurement\":\"%\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"1621_nvme1\"],\"manufacturer\"\
:\"Silicon Power\",\"model\":\"A80 1Tb\",\"name\":\"ds1621plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_usb1_wear_leveling_count/config
retain: true
payload: "{ \n \"name\":\"Wear Leveling Count\", \n \"state_topic\":\"1621/usb1/wear_leveling_count\"\
,\n \"unique_id\":\"ds1621plus_usb1_wear_leveling_count\",\n \"icon\":\"\
mdi:percent-circle\",\n \"unit_of_measurement\":\"%\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"1621_usb1\"],\"manufacturer\":\"\
Samsung\",\"model\":\"PM883 960Gb\",\"name\":\"ds1621plus usb1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_usb1_total_lbas_written/config
retain: true
payload: "{ \n \"name\":\"Total LBAs Written\", \n \"state_topic\":\"1621/usb1/total_lbas_written\"\
,\n \"unique_id\":\"ds1621plus_usb1_total_lbas_written\",\n \"icon\":\"\
mdi:alpha-w-circle\",\n \"unit_of_measurement\":\"Tb\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512000\
\ / 1024 / 1024 / 1024 / 1024 / 1024 ) | round(2) {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"1621_usb1\"],\"manufacturer\":\"Samsung\",\"model\":\"\
PM883 960Gb\",\"name\":\"ds1621plus usb1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_usb1_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"Power On Hours\", \n \"state_topic\":\"1621/usb1/power_on_hours\"\
,\n \"unique_id\":\"ds1621plus_usb1_power_on_hours\",\n \"unit_of_measurement\"\
:\"hr\",\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"\
{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"1621_usb1\"],\"manufacturer\":\"Samsung\",\"model\":\"PM883 960Gb\",\"\
name\":\"ds1621plus usb1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds1621plus_usb1_temperature/config
retain: true
payload: "{ \n \"name\":\"Temperature\", \n \"state_topic\":\"1621/usb1/temperature\"\
,\n \"unique_id\":\"ds1621plus_usb1_temperature\",\n \"unit_of_measurement\"\
:\"°C\",\n \"device_class\":\"temperature\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"\
device\":{\"identifiers\":[\"1621_usb1\"],\"manufacturer\":\"Samsung\",\"\
model\":\"PM883 960Gb\",\"name\":\"ds1621plus usb1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/binary_sensor/kiosk_motion/config
retain: true
payload: "{ \n \"name\":\"Motion\", \n \"state_topic\":\"xiaoxin/event\",\n\
\ \"unique_id\":\"kisok_motion\",\n \"device_class\":\"motion\",\n \"payload_on\"\
:\"onMotion\",\n \"payload_off\":\" \",\n \"off_delay\": \"2\",\n \"value_template\"\
:\"{{ '{{' }} value_json.event {{ '}}' }}\",\n \"device\":{\"identifiers\"\
:[\"Xiaoxin Kiosk\"],\"manufacturer\":\"Fully Kiosk Broser\",\"name\":\"Xiaoxin\
\ Kiosk\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme0_data_units_read/config
retain: true
payload: "{ \n \"name\":\"Data Units Read\", \n \"state_topic\":\"920/nvme0/read\"\
,\n \"unique_id\":\"ds920plus_nvme0_data_units_read\",\n \"icon\":\"mdi:alpha-r-circle\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512 / 1024 / 1024 /\
\ 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"920_nvme0\"\
],\"manufacturer\":\"A-Data\",\"model\":\"SX6000 Lite 256Gb\",\"name\":\"\
ds920plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme0_data_units_written/config
retain: true
payload: "{ \n \"name\":\"Data Units Written\", \n \"state_topic\":\"920/nvme0/write\"\
,\n \"unique_id\":\"ds920plus_nvme0_data_units_written\",\n \"icon\":\"\
mdi:alpha-w-circle\",\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512\
\ / 1024 / 1024 / 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"920_nvme0\"],\"manufacturer\":\"A-Data\",\"model\":\"SX6000 Lite 256Gb\"\
,\"name\":\"ds920plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme0_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"Power On Hours\", \n \"state_topic\":\"920/nvme0/power_on_hours\"\
,\n \"unique_id\":\"ds920plus_nvme0_power_on_hours\",\n \"icon\":\"mdi:calendar-clock\"\
,\n \"unit_of_measurement\":\"hr\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"\
device\":{\"identifiers\":[\"920_nvme0\"],\"manufacturer\":\"A-Data\",\"model\"\
:\"SX6000 Lite 256Gb\",\"name\":\"ds920plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme0_wear_leveling_count/config
retain: true
payload: "{ \n \"name\":\"Wear Leveling Count\", \n \"state_topic\":\"920/nvme0/percent\"\
,\n \"unique_id\":\"ds920plus_nvme0_wear_leveling_count\",\n \"icon\":\"\
mdi:percent-circle\",\n \"unit_of_measurement\":\"%\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"920_nvme0\"],\"manufacturer\":\"\
A-Data\",\"model\":\"SX6000 Lite 256Gb\",\"name\":\"ds920plus nvme0\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme1_data_units_read/config
retain: true
payload: "{ \n \"name\":\"Data Units Read\", \n \"state_topic\":\"920/nvme1/read\"\
,\n \"unique_id\":\"ds920plus_nvme1_data_units_read\",\n \"icon\":\"mdi:alpha-r-circle\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512 / 1024 / 1024 /\
\ 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"920_nvme1\"\
],\"manufacturer\":\"A-Data\",\"model\":\"SX6000 Lite 256Gb\",\"name\":\"\
ds920plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme1_data_units_written/config
retain: true
payload: "{ \n \"name\":\"Data Units Written\", \n \"state_topic\":\"920/nvme1/write\"\
,\n \"unique_id\":\"ds920plus_nvme1_data_units_written\",\n \"icon\":\"\
mdi:alpha-w-circle\",\n \"unit_of_measurement\":\"Gb\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) * 512\
\ / 1024 / 1024 / 1024 ) | round(2) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"920_nvme1\"],\"manufacturer\":\"A-Data\",\"model\":\"SX6000 Lite 256Gb\"\
,\"name\":\"ds920plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme1_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"Power On Hours\", \n \"state_topic\":\"920/nvme1/power_on_hours\"\
,\n \"unique_id\":\"ds920plus_nvme1_power_on_hours\",\n \"icon\":\"mdi:calendar-clock\"\
,\n \"unit_of_measurement\":\"hr\",\n \"entity_category\": \"diagnostic\"\
,\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}' }}\", \n \"\
device\":{\"identifiers\":[\"920_nvme1\"],\"manufacturer\":\"A-Data\",\"model\"\
:\"SX6000 Lite 256Gb\",\"name\":\"ds920plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ds920plus_nvme1_wear_leveling_count/config
retain: true
payload: "{ \n \"name\":\"Wear Leveling Count\", \n \"state_topic\":\"920/nvme1/percent\"\
,\n \"unique_id\":\"ds920plus_nvme1_wear_leveling_count\",\n \"icon\":\"\
mdi:percent-circle\",\n \"unit_of_measurement\":\"%\",\n \"entity_category\"\
: \"diagnostic\",\n \"value_template\":\"{{ '{{' }} ( value|int(0) ) {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"920_nvme1\"],\"manufacturer\":\"\
A-Data\",\"model\":\"SX6000 Lite 256Gb\",\"name\":\"ds920plus nvme1\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"pikvm/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"pikvm_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"pikvm\"],\"manufacturer\"\
:\"BLICUBE\",\"model\":\"PIKVM V3 HAT\",\"name\":\"PIKVM\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm_uptime/config
retain: true
payload: "{\n \"name\":\"Uptime\",\n \"state_topic\":\"pikvm/system_uptime\"\
,\n \"icon\":\"mdi:clock-digital\",\n \"unit_of_measurement\": \"h\",\n\
\ \"unique_id\":\"blikvm_uptime\",\n \"entity_category\": \"diagnostic\"\
,\n \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value\
\ | float(0))/3600) | round(2, 'common') {{ '}}' }}\",\n \"device\":{\"identifiers\"\
:[\"pikvm\"],\"manufacturer\":\"BLICUBE\",\"model\":\"BLIKVM V3 HAT\",\"name\"\
:\"PIKVM\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"pikvm/psmqtt/cpu_percent\"\
, \n \"icon\":\"mdi:cpu-64-bit\", \n \"unit_of_measurement\": \"%\",\n\
\ \"unique_id\":\"pikvm_cpu_load\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"pikvm\"],\"manufacturer\":\"BLICUBE\",\"model\":\"PIKVM\
\ V3 HAT\",\"name\":\"PIKVM\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"pikvm/psmqtt/sensors_temperatures/cpu_thermal\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pikvm_cpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(1, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pikvm\"],\"manufacturer\":\"BLICUBE\"\
,\"model\":\"PIKVM V3 HAT\",\"name\":\"PIKVM\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm2w_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"pikvm2w/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"pikvm2w_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"pikvm2w\"],\"\
manufacturer\":\"DIY\",\"model\":\"PIKVM DIY\",\"name\":\"PIKVM 2w\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm2w_uptime/config
retain: true
payload: "{\n \"name\":\"Uptime\",\n \"state_topic\":\"pikvm2w/system_uptime\"\
,\n \"icon\":\"mdi:clock-digital\",\n \"unit_of_measurement\": \"h\",\n\
\ \"unique_id\":\"pikvm2w_uptime\",\n \"entity_category\": \"diagnostic\"\
,\n \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value\
\ | float(0))/3600) | round(2, 'common') {{ '}}' }}\",\n \"device\":{\"identifiers\"\
:[\"pikvm2w\"],\"manufacturer\":\"DIY\",\"model\":\"PIKVM DIY\",\"name\":\"\
PIKVM 2w\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm2w_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"pikvm2w/psmqtt/cpu_percent\"\
, \n \"icon\":\"mdi:cpu-64-bit\", \n \"unit_of_measurement\": \"%\",\n\
\ \"unique_id\":\"pikvm2w_cpu_load\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pikvm2w\"],\"manufacturer\":\"\
DIY\",\"model\":\"PIKVM DIY\",\"name\":\"PIKVM 2w\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pikvm2w_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"pikvm2w/psmqtt/sensors_temperatures/cpu_thermal\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pikvm2w_cpu_temp\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"pikvm2w\"],\"manufacturer\"\
:\"DIY\",\"model\":\"PIKVM DIY\",\"name\":\"PIKVM 2w\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/rpi3_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"rpi3/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"rpi3_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"rpi3\"],\"manufacturer\"\
:\"Raspberry\",\"model\":\"3 B+\",\"name\":\"RPI3\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/rpi3_uptime/config
retain: true
payload: "{\n \"name\":\"Uptime\",\n \"state_topic\":\"rpi3/system_uptime\"\
,\n \"icon\":\"mdi:clock-digital\",\n \"unit_of_measurement\": \"h\",\n\
\ \"unique_id\":\"rpi3_uptime\",\n \"entity_category\": \"diagnostic\",\n\
\ \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value |\
\ float(0))/3600) | round(2, 'common') {{ '}}' }}\",\n \"device\":{\"identifiers\"\
:[\"rpi3\"],\"manufacturer\":\"Raspberry\",\"model\":\"3 B+\",\"name\":\"\
RPI3\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/rpi3_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"rpi3/psmqtt/cpu_percent\"\
, \n \"icon\":\"mdi:cpu-64-bit\", \n \"unit_of_measurement\": \"%\",\n\
\ \"unique_id\":\"rpi3_cpu_load\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"rpi3\"],\"manufacturer\":\"Raspberry\",\"model\":\"3\
\ B+\",\"name\":\"RPI3\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/rpi3_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"rpi3/psmqtt/sensors_temperatures/cpu_thermal\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"rpi3_cpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(1, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"rpi3\"],\"manufacturer\":\"Raspberry\"\
,\"model\":\"3 B+\",\"name\":\"RPI3\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/rpi3_memory_used/config
retain: true
payload: "{ \n \"name\":\"Memory Used\", \n \"state_topic\":\"rpi3/psmqtt/virtual_memory/percent\"\
,\n \"value_template\":\"{{ '{{' }} value | float(100) | round(1, 'common')\
\ {{ '}}' }}\", \n \"unique_id\":\"rpi3_memory_used\",\n \"unit_of_measurement\"\
:\"%\",\n \"icon\":\"mdi:memory\",\n \"device\":{\"identifiers\":[\"rpi3\"\
],\"manufacturer\":\"Raspberry\",\"model\":\"3 B+\",\"name\":\"RPI3\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"ms01a/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"ms01a_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_uptime/config
retain: true
payload: "{ \n \"name\":\"Uptime\", \n \"state_topic\":\"ms01a/system_uptime\"\
, \n \"icon\":\"mdi:clock-digital\", \n \"unit_of_measurement\": \"m\"\
,\n \"unique_id\":\"ms01a_uptime\", \n \"entity_category\": \"diagnostic\"\
,\n \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value\
\ | float(0))/60) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_iowait/config
retain: true
payload: "{ \n \"name\":\"IoWait\", \n \"state_topic\":\"ms01a/kernel_stat\"\
, \n \"icon\":\"mdi:speedometer-medium\", \n \"unit_of_measurement\": \"\
%\",\n \"unique_id\":\"ms01a_iowait\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} ((value_json.sysstat.hosts[0].statistics[0]['avg-cpu'].iowait)\
\ | float(0)) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_usage/config
retain: true
payload: "{ \n \"name\":\"NVME0 Usage\", \n \"state_topic\":\"ms01a/disk_usage/nvme0\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"ms01a_nvme0_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_temp/config
retain: true
payload: "{ \n \"name\":\"NVME0 Temp\", \n \"state_topic\":\"ms01a/disk_temp/nvme0\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01a_nvme0_temp\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_tb_written/config
retain: true
payload: "{ \n \"name\":\"NVME0 TB Written\", \n \"state_topic\":\"ms01a/ssd_smart/nvme0_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"ms01a_nvme0_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512000 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"NVME0 Power On Hours\", \n \"state_topic\":\"ms01a/ssd_smart/nvme0_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"ms01a_nvme0_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"NVME0 Life Left Smart\", \n \"state_topic\":\"ms01a/ssd_smart/nvme0_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"ms01a_nvme0_life_left_smart\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_gb_write/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Write\", \n \"state_topic\":\"ms01a/disk_stat/nvme0_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"ms01a_nvme0_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme0_gb_read/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Read\", \n \"state_topic\":\"ms01a/disk_stat/nvme0_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"ms01a_nvme0_session_read\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_usage/config
retain: true
payload: "{ \n \"name\":\"NVME1 Usage\", \n \"state_topic\":\"ms01a/disk_usage/nvme1\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"ms01a_nvme1_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_temp/config
retain: true
payload: "{ \n \"name\":\"NVME1 Temp\", \n \"state_topic\":\"ms01a/disk_temp/nvme1\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01a_nvme1_temp\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_tb_written/config
retain: true
payload: "{ \n \"name\":\"NVME1 TB Written\", \n \"state_topic\":\"ms01a/ssd_smart/nvme1_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"ms01a_nvme1_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512000 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"NVME1 Power On Hours\", \n \"state_topic\":\"ms01a/ssd_smart/nvme1_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"ms01a_nvme1_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"NVME1 Life Left Smart\", \n \"state_topic\":\"ms01a/ssd_smart/nvme1_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"ms01a_nvme1_life_left_smart\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_gb_write/config
retain: true
payload: "{ \n \"name\":\"NVME1 Session Write\", \n \"state_topic\":\"ms01a/disk_stat/nvme1_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"ms01a_nvme1_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_nvme1_gb_read/config
retain: true
payload: "{ \n \"name\":\"NVME1 Session Read\", \n \"state_topic\":\"ms01a/disk_stat/nvme1_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"ms01a_nvme1_session_read\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"ms01a/psmqtt/sensors_temperatures/coretemp\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01a_cpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value_json[0] | float(0) | round(0, 'common')\
\ {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"ms01a/psmqtt/cpu_percent\"\
, \n \"unit_of_measurement\":\"%\",\n \"unique_id\":\"ms01a_cpu_load\",\n\
\ \"icon\":\"mdi:cpu-64-bit\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(1, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_memory_used/config
retain: true
payload: "{ \n \"name\":\"Memory Used\", \n \"state_topic\":\"ms01a/psmqtt/virtual_memory/percent\"\
,\n \"value_template\":\"{{ '{{' }} value | float(100) | round(1, 'common')\
\ {{ '}}' }}\", \n \"unique_id\":\"ms01a_memory_used\",\n \"unit_of_measurement\"\
:\"%\",\n \"icon\":\"mdi:memory\",\n \"device\":{\"identifiers\":[\"ms01a\"\
],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01a\"}\n\
}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp88s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp88s0 Speed\", \n \"state_topic\":\"ms01a/net/enp88s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp88s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp90s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp90s0 Speed\", \n \"state_topic\":\"ms01a/net/enp90s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp90s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp3s0f0np0_speed/config
retain: true
payload: "{ \n \"name\":\"enp3s0f0np0 Speed\", \n \"state_topic\":\"ms01a/net/enp3s0f0np0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp3s0f0np0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp3s0f1np1_speed/config
retain: true
payload: "{ \n \"name\":\"enp3s0f1np1 Speed\", \n \"state_topic\":\"ms01a/net/enp3s0f1np1\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp3s0f1np1_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp1s0f0_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f0 Speed\", \n \"state_topic\":\"ms01a/net/enp1s0f0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp1s0f0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp1s0f1_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f1 Speed\", \n \"state_topic\":\"ms01a/net/enp1s0f1\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp1s0f1_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp1s0f2_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f2 Speed\", \n \"state_topic\":\"ms01a/net/enp1s0f2\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp1s0f2_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_enp1s0f3_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f3 Speed\", \n \"state_topic\":\"ms01a/net/enp1s0f3\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01a_enp1s0f3_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01a\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01a\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_fan1/config
retain: true
payload: "{ \n \"name\":\"Fan 1\", \n \"state_topic\":\"ms01a/psmqtt/sensors_fans/nct6798\"\
, \n \"unit_of_measurement\":\"rpm\",\n \"unique_id\":\"ms01a_fan_1\", \n\
\ \"icon\":\"mdi:fan\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value_json[0] | float(0) | round(0, 'common') {{ '}}' }}\",\
\ \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01a_fan2/config
retain: true
payload: "{ \n \"name\":\"Fan 2\", \n \"state_topic\":\"ms01a/psmqtt/sensors_fans/nct6798\"\
, \n \"unit_of_measurement\":\"rpm\",\n \"unique_id\":\"ms01a_fan_2\", \n\
\ \"icon\":\"mdi:fan\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value_json[1] | float(0) | round(0, 'common') {{ '}}' }}\",\
\ \n \"device\":{\"identifiers\":[\"ms01a\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01a\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"ms01b/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"ms01b_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_uptime/config
retain: true
payload: "{ \n \"name\":\"Uptime\", \n \"state_topic\":\"ms01b/system_uptime\"\
, \n \"icon\":\"mdi:clock-digital\", \n \"unit_of_measurement\": \"m\"\
,\n \"unique_id\":\"ms01b_uptime\", \n \"entity_category\": \"diagnostic\"\
,\n \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value\
\ | float(0))/60) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_iowait/config
retain: true
payload: "{ \n \"name\":\"IoWait\", \n \"state_topic\":\"ms01b/kernel_stat\"\
, \n \"icon\":\"mdi:speedometer-medium\", \n \"unit_of_measurement\": \"\
%\",\n \"unique_id\":\"ms01b_iowait\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} ((value_json.sysstat.hosts[0].statistics[0]['avg-cpu'].iowait)\
\ | float(0)) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_usage/config
retain: true
payload: "{ \n \"name\":\"NVME0 Usage\", \n \"state_topic\":\"ms01b/disk_usage/nvme0\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"ms01b_nvme0_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_temp/config
retain: true
payload: "{ \n \"name\":\"NVME0 Temp\", \n \"state_topic\":\"ms01b/disk_temp/nvme0\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01b_nvme0_temp\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_tb_written/config
retain: true
payload: "{ \n \"name\":\"NVME0 TB Written\", \n \"state_topic\":\"ms01b/ssd_smart/nvme0_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"ms01b_nvme0_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512000 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"NVME0 Power On Hours\", \n \"state_topic\":\"ms01b/ssd_smart/nvme0_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"ms01b_nvme0_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"NVME0 Life Left Smart\", \n \"state_topic\":\"ms01b/ssd_smart/nvme0_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"ms01b_nvme0_life_left_smart\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_gb_write/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Write\", \n \"state_topic\":\"ms01b/disk_stat/nvme0_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"ms01b_nvme0_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme0_gb_read/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Read\", \n \"state_topic\":\"ms01b/disk_stat/nvme0_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"ms01b_nvme0_session_read\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_usage/config
retain: true
payload: "{ \n \"name\":\"NVME1 Usage\", \n \"state_topic\":\"ms01b/disk_usage/nvme1\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"ms01b_nvme1_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_temp/config
retain: true
payload: "{ \n \"name\":\"NVME1 Temp\", \n \"state_topic\":\"ms01b/disk_temp/nvme1\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01b_nvme1_temp\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_tb_written/config
retain: true
payload: "{ \n \"name\":\"NVME1 TB Written\", \n \"state_topic\":\"ms01b/ssd_smart/nvme1_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"ms01b_nvme1_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512000 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"NVME1 Power On Hours\", \n \"state_topic\":\"ms01b/ssd_smart/nvme1_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"ms01b_nvme1_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"NVME1 Life Left Smart\", \n \"state_topic\":\"ms01b/ssd_smart/nvme1_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"ms01b_nvme1_life_left_smart\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_gb_write/config
retain: true
payload: "{ \n \"name\":\"NVME1 Session Write\", \n \"state_topic\":\"ms01b/disk_stat/nvme1_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"ms01b_nvme1_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_nvme1_gb_read/config
retain: true
payload: "{ \n \"name\":\"NVME1 Session Read\", \n \"state_topic\":\"ms01b/disk_stat/nvme1_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"ms01b_nvme1_session_read\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"ms01b/psmqtt/sensors_temperatures/coretemp\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"ms01b_cpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value_json[0] | float(0) | round(0, 'common')\
\ {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\"\
:\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"ms01b/psmqtt/cpu_percent\"\
, \n \"unit_of_measurement\":\"%\",\n \"unique_id\":\"ms01b_cpu_load\",\n\
\ \"icon\":\"mdi:cpu-64-bit\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(1, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"\
MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_memory_used/config
retain: true
payload: "{ \n \"name\":\"Memory Used\", \n \"state_topic\":\"ms01b/psmqtt/virtual_memory/percent\"\
,\n \"value_template\":\"{{ '{{' }} value | float(100) | round(1, 'common')\
\ {{ '}}' }}\", \n \"unique_id\":\"ms01b_memory_used\",\n \"unit_of_measurement\"\
:\"%\",\n \"icon\":\"mdi:memory\",\n \"device\":{\"identifiers\":[\"ms01b\"\
],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"ms01b\"}\n\
}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp88s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp88s0 Speed\", \n \"state_topic\":\"ms01b/net/enp88s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp88s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp90s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp90s0 Speed\", \n \"state_topic\":\"ms01b/net/enp90s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp90s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp3s0f0np0_speed/config
retain: true
payload: "{ \n \"name\":\"enp3s0f0np0 Speed\", \n \"state_topic\":\"ms01b/net/enp3s0f0np0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp3s0f0np0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp3s0f1np1_speed/config
retain: true
payload: "{ \n \"name\":\"enp3s0f1np1 Speed\", \n \"state_topic\":\"ms01b/net/enp3s0f1np1\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp3s0f1np1_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp1s0f0_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f0 Speed\", \n \"state_topic\":\"ms01b/net/enp1s0f0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp1s0f0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp1s0f1_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f1 Speed\", \n \"state_topic\":\"ms01b/net/enp1s0f1\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp1s0f1_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp1s0f2_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f2 Speed\", \n \"state_topic\":\"ms01b/net/enp1s0f2\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp1s0f2_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_enp1s0f3_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0f3 Speed\", \n \"state_topic\":\"ms01b/net/enp1s0f3\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"ms01b_enp1s0f3_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"ms01b\"],\"manufacturer\":\"Minisforum\",\"model\":\"MS01\",\"name\":\"\
ms01b\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_fan1/config
retain: true
payload: "{ \n \"name\":\"Fan 1\", \n \"state_topic\":\"ms01b/psmqtt/sensors_fans/nct6798\"\
, \n \"unit_of_measurement\":\"rpm\",\n \"unique_id\":\"ms01b_fan_1\", \n\
\ \"icon\":\"mdi:fan\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value_json[0] | float(0) | round(0, 'common') {{ '}}' }}\",\
\ \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/ms01b_fan2/config
retain: true
payload: "{ \n \"name\":\"Fan 2\", \n \"state_topic\":\"ms01b/psmqtt/sensors_fans/nct6798\"\
, \n \"unit_of_measurement\":\"rpm\",\n \"unique_id\":\"ms01b_fan_2\", \n\
\ \"icon\":\"mdi:fan\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value_json[1] | float(0) | round(0, 'common') {{ '}}' }}\",\
\ \n \"device\":{\"identifiers\":[\"ms01b\"],\"manufacturer\":\"Minisforum\"\
,\"model\":\"MS01\",\"name\":\"ms01b\"}\n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_telemetry_last_update/config
retain: true
payload: "{ \n \"name\":\"Telemetry Last Update\", \n \"state_topic\":\"pbs100/last_update\"\
, \n \"icon\":\"mdi:calendar\", \n \"unique_id\":\"pbs100_telemetry_last_update\"\
,\n \"entity_category\": \"diagnostic\",\n \"value_template\":\"{{ '{{'\
\ }} value {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\"\
:\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_uptime/config
retain: true
payload: "{ \n \"name\":\"Uptime\", \n \"state_topic\":\"pbs100/system_uptime\"\
, \n \"icon\":\"mdi:clock-digital\", \n \"unit_of_measurement\": \"m\"\
,\n \"unique_id\":\"pbs100_uptime\", \n \"entity_category\": \"diagnostic\"\
,\n \"expire_after\":\"150\",\n \"value_template\":\"{{ '{{' }} ((value\
\ | float(0))/60) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_iowait/config
retain: true
payload: "{ \n \"name\":\"IoWait\", \n \"state_topic\":\"pbs100/kernel_stat\"\
, \n \"icon\":\"mdi:speedometer-medium\", \n \"unit_of_measurement\": \"\
%\",\n \"unique_id\":\"pbs100_iowait\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} ((value_json.sysstat.hosts[0].statistics[0]['avg-cpu'].iowait)\
\ | float(0)) | round(2, 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_usage/config
retain: true
payload: "{ \n \"name\":\"NVME0 Usage\", \n \"state_topic\":\"pbs100/disk_usage/nvme0\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"pbs100_nvme0_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\"\
,\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_temp/config
retain: true
payload: "{ \n \"name\":\"NVME0 Temp\", \n \"state_topic\":\"pbs100/disk_temp/nvme0\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pbs100_nvme0_temp\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\"\
:\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_tb_written/config
retain: true
payload: "{ \n \"name\":\"NVME0 TB Written\", \n \"state_topic\":\"pbs100/ssd_smart/nvme0_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"pbs100_nvme0_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512000 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"\
manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"NVME0 Power On Hours\", \n \"state_topic\":\"pbs100/ssd_smart/nvme0_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"pbs100_nvme0_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"\
model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"NVME0 Life Left Smart\", \n \"state_topic\":\"pbs100/ssd_smart/nvme0_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"pbs100_nvme0_life_left_smart\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"\
model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_gb_write/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Write\", \n \"state_topic\":\"pbs100/disk_stat/nvme0_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"pbs100_nvme0_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\"\
:\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_nvme0_gb_read/config
retain: true
payload: "{ \n \"name\":\"NVME0 Session Read\", \n \"state_topic\":\"pbs100/disk_stat/nvme0_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"pbs100_nvme0_session_read\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\"\
:\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_usage/config
retain: true
payload: "{ \n \"name\":\"SDA Usage\", \n \"state_topic\":\"pbs100/disk_usage/sda\"\
, \n \"icon\":\"mdi:chip\", \n \"unit_of_measurement\": \"%\",\n \"unique_id\"\
:\"pbs100_sda_usage\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\"\
,\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_temp/config
retain: true
payload: "{ \n \"name\":\"SDA Temp\", \n \"state_topic\":\"pbs100/disk_temp/sda\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pbs100_sda_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\"\
,\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_tb_written/config
retain: true
payload: "{ \n \"name\":\"SDA TB Written\", \n \"state_topic\":\"pbs100/ssd_smart/sda_lba_written\"\
,\n \"unit_of_measurement\":\"Tb\",\n \"icon\":\"mdi:chip\",\n \"unique_id\"\
:\"pbs100_sda_tb_written\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} ( value | float(0) * 512 / 1024 / 1024 / 1024 / 1024) |round(1,\
\ 'common') {{ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"\
manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_power_on_hours/config
retain: true
payload: "{ \n \"name\":\"SDA Power On Hours\", \n \"state_topic\":\"pbs100/ssd_smart/sda_power_on_hours\"\
,\n \"unit_of_measurement\":\"h\",\n \"icon\":\"mdi:clock-alert-outline\"\
,\n \"unique_id\":\"pbs100_sda_power_on_hours\", \n \"expire_after\":\"\
150\",\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n\
\ \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"\
model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_life_left_smart/config
retain: true
payload: "{ \n \"name\":\"SDA Life Left Smart\", \n \"state_topic\":\"pbs100/ssd_smart/sda_life_left\"\
,\n \"unit_of_measurement\":\"%\",\n \"icon\":\"mdi:calendar-heart\",\n\
\ \"unique_id\":\"pbs100_sda_life_left_smart\", \n \"expire_after\":\"150\"\
,\n \"value_template\":\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\"\
,\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_gb_write/config
retain: true
payload: "{ \n \"name\":\"SDA Session Write\", \n \"state_topic\":\"pbs100/disk_stat/sda_gb_write\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-w-box\",\n \"\
unique_id\":\"pbs100_sda_session_write\", \n \"expire_after\":\"150\",\n\
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{\
\ '}}' }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\"\
:\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_sda_gb_read/config
retain: true
payload: "{ \n \"name\":\"SDA Session Read\", \n \"state_topic\":\"pbs100/disk_stat/sda_gb_read\"\
,\n \"unit_of_measurement\":\"Gb\",\n \"icon\":\"mdi:alpha-r-box\",\n \"\
unique_id\":\"pbs100_sda_session_read\", \n \"expire_after\":\"150\",\n \
\ \"value_template\":\"{{ '{{' }} value| float(0)| round(1, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\"\
,\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_cpu_temp/config
retain: true
payload: "{ \n \"name\":\"CPU Temp\", \n \"state_topic\":\"pbs100/psmqtt/sensors_temperatures/k10temp\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pbs100_cpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\"\
,\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_gpu_temp/config
retain: true
payload: "{ \n \"name\":\"GPU Temp\", \n \"state_topic\":\"pbs100/psmqtt/sensors_temperatures/amdgpu\"\
, \n \"unit_of_measurement\":\"°C\",\n \"device_class\":\"temperature\"\
,\n \"unique_id\":\"pbs100_gpu_temp\", \n \"expire_after\":\"150\",\n \"\
value_template\":\"{{ '{{' }} value | float(0) | round(0, 'common') {{ '}}'\
\ }}\", \n \"device\":{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\"\
,\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_cpu_load/config
retain: true
payload: "{ \n \"name\":\"CPU Load\", \n \"state_topic\":\"pbs100/psmqtt/cpu_percent\"\
, \n \"unit_of_measurement\":\"%\",\n \"unique_id\":\"pbs100_cpu_load\"\
,\n \"icon\":\"mdi:cpu-64-bit\",\n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | float(0) | round(1, 'common') {{ '}}' }}\", \n \"device\"\
:{\"identifiers\":[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\"\
,\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_memory_used/config
retain: true
payload: "{ \n \"name\":\"Memory Used\", \n \"state_topic\":\"pbs100/psmqtt/virtual_memory/percent\"\
,\n \"value_template\":\"{{ '{{' }} value | float(100) | round(1, 'common')\
\ {{ '}}' }}\", \n \"unique_id\":\"pbs100_memory_used\",\n \"unit_of_measurement\"\
:\"%\",\n \"icon\":\"mdi:memory\",\n \"device\":{\"identifiers\":[\"pbs100\"\
],\"manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_enp1s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp1s0 Speed\", \n \"state_topic\":\"pbs100/net/enp1s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"pbs100_enp1s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"\
} \n}"
- action: mqtt.publish
data:
topic: homeassistant/sensor/pbs100_enp3s0_speed/config
retain: true
payload: "{ \n \"name\":\"enp3s0 Speed\", \n \"state_topic\":\"pbs100/net/enp3s0\"\
,\n \"unit_of_measurement\":\"MB/s\",\n \"icon\":\"mdi:speedometer\",\n\
\ \"device_class\":\"data_rate\",\n \"force_update\": true,\n \"unique_id\"\
:\"pbs100_enp3s0_speed\", \n \"expire_after\":\"150\",\n \"value_template\"\
:\"{{ '{{' }} value | int(0) {{ '}}' }}\", \n \"device\":{\"identifiers\"\
:[\"pbs100\"],\"manufacturer\":\"zxipc\",\"model\":\"4500u\",\"name\":\"pbs100\"\
} \n}"
- alias: bathroom_button_b_single
id: bathroom_button_b_single
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b94abe_action
click_type: single
actions:
- choose:
- conditions:
- condition: state
entity_id: group.lights_b
state: 'off'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 4
- conditions:
- condition: state
entity_id: fan.esp32_node_b_fan_b
state: 'off'
- condition: state
entity_id: group.lights_b
state: 'on'
- condition: state
entity_id: switch.esp32_node_b_fan_b_force_mode
state: 'off'
sequence:
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_t
- action: timer.pause
entity_id: timer.fan_t
- action: switch.turn_on
entity_id: switch.esp32_node_b_fan_b_manual_mode
- conditions:
- condition: state
entity_id: fan.esp32_node_b_fan_b
state: 'on'
- condition: state
entity_id: switch.esp32_node_b_fan_b_force_mode
state: 'off'
sequence:
- action: switch.turn_off
entity_id: switch.esp32_node_b_fan_b_manual_mode
- action: switch.turn_on
entity_id: switch.esp32_node_b_fan_b_auto_mode
- alias: bathroom_button_b_double
id: bathroom_button_b_double
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b94abe_action
click_type: double
actions:
- choose:
- conditions:
- condition: state
entity_id: group.lights_b
state: 'off'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 1
- conditions:
- condition: state
entity_id: group.lights_b
state: 'on'
sequence:
- action: fan.toggle
entity_id: fan.sonoff_pow_r2_1_bottom_fan
- alias: bathroom_fan_with_light
id: bathroom_fan_with_light
initial_state: true
triggers:
- trigger: state
entity_id: light.0x00158d0002a36433_channel_2
to: 'on'
id: to_on
- trigger: state
entity_id: light.0x00158d0002a36433_channel_2
to: 'off'
id: to_off
actions:
- choose:
- conditions:
- condition: trigger
id: to_on
sequence:
- action: switch.turn_off
entity_id: switch.esp32_node_b_fan_b_auto_mode
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_b, fan.sonoff_pow_r2_1_bottom_fan
- conditions:
- condition: trigger
id: to_off
sequence:
- action: switch.turn_on
entity_id: switch.esp32_node_b_fan_b_auto_mode
- alias: bathroom_fan_night_mode
id: bathroom_fan_night_mode
initial_state: true
triggers:
- trigger: time_pattern
minutes: /5
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ states(''fan.esp32_node_b_fan_b'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ 1 <= now().hour < 6 }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0002a14c5e_contact
state: 'off'
for:
minutes: 3
sequence:
- action: number.set_value
data:
value: '30'
target:
entity_id: number.esp32_node_b_humidity_set
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0002a14c5e_contact
state: 'on'
for:
minutes: 3
sequence:
- action: number.set_value
data:
value: '65'
target:
entity_id: number.esp32_node_b_humidity_set
- alias: bathroom_fan_to_normal_mode
id: bathroom_fan_to_normal_mode
initial_state: true
triggers:
- trigger: time
at: 06:20:00
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ states(''fan.esp32_node_b_fan_b'') in [''on'',''off''] }}'
- condition: template
value_template: '{{states(''number.esp32_node_b_humidity_set'')|int(0) < 50 }}'
actions:
- action: number.set_value
data:
value: '65'
target:
entity_id: number.esp32_node_b_humidity_set
- action: switch.turn_off
entity_id: switch.esp32_node_b_fan_b_force_mode
- alias: bathroom_bottom_fan_with_fan
id: bathroom_bottom_fan_with_fan
initial_state: true
triggers:
- trigger: state
entity_id: fan.esp32_node_b_fan_b
to: null
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ states(''fan.esp32_node_b_fan_b'') in [''on'',''off''] }}'
actions:
- action: fan.turn_{{ states('fan.esp32_node_b_fan_b') }}
entity_id: fan.sonoff_pow_r2_1_bottom_fan
- alias: bathroom_bottom_fan
id: bathroom_bottom_fan
initial_state: true
triggers:
- trigger: time
at: 07:00:03
- trigger: time
at: '23:00:03'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: fan.turn_{%if states('binary_sensor.tod_day')%}off{%else%}on{%endif%}
entity_id: fan.sonoff_pow_r2_1_bottom_fan
- alias: bathroom_bottom_fan_toggle
id: bathroom_bottom_fan_toggle
initial_state: true
triggers:
- trigger: time_pattern
minutes: /30
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: switch.esp32_node_b_fan_b_force_mode
state: 'off'
actions:
- condition: template
value_template: '{{ is_state(''group.lights_b'',''off'') or is_state(''fan.sonoff_pow_r2_1_bottom_fan'',''on'')
}}'
- action: fan.toggle
entity_id: fan.sonoff_pow_r2_1_bottom_fan
- alias: bathroom_fan_off_by_timer
id: bathroom_fan_off_by_timer
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.fan_b
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_b
- action: switch.turn_off
entity_id: switch.esp32_node_b_fan_b_manual_mode
- condition: state
entity_id: timer.fan_t
state: paused
- action: fan.turn_on
entity_id: fan.esp32_node_b_fan_t
- action: timer.start
entity_id: timer.fan_t
- alias: bathroom_main_fan_timer_with_switch
id: bathroom_main_fan_timer_with_switch
mode: single
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: fan.esp32_node_b_fan_b
to: null
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{{ states(''fan.esp32_node_b_fan_b'') in [''on'',''off''] }}'
- condition: state
entity_id: switch.esp32_node_b_fan_b_force_mode
state: 'off'
actions:
- if:
- condition: state
entity_id: fan.esp32_node_b_fan_b
state: 'on'
then:
- action: timer.start
entity_id: timer.fan_b
- alias: bathroom_light_off_auto
id: bathroom_light_off_auto
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_b
conditions:
- condition: state
entity_id: binary_sensor.presence_b
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: group.lights_b
state: 'on'
actions:
- action: light.turn_off
entity_id: light.0x00158d0002a36433_channel_2
- action: light.turn_off
entity_id: light.mirror_light_b
data:
transition: 5
- alias: bathroom_light_timer_on
id: bathroom_light_timer_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.presence_b
from: 'on'
to: 'off'
- trigger: state
entity_id: group.lights_b
to: 'on'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_b
- action: timer.start
entity_id: timer.main_light_b
- alias: bathroom_timer_stop
id: bathroom_timer_stop
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.presence_b
from: 'off'
to: 'on'
- trigger: state
entity_id: group.lights_b
to: 'off'
conditions:
- condition: state
entity_id: timer.main_light_b
state: active
actions:
- action: timer.cancel
entity_id: timer.main_light_b, timer.door_b
- alias: bathroom_timer_stop_motion_with_light_presence
id: bathroom_timer_stop_motion_with_light_presence
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000236bc6d_motion
to: 'on'
conditions:
and:
- condition: state
entity_id: binary_sensor.presence_b
state: 'on'
- condition: state
entity_id: group.lights_b
state: 'on'
- or:
- condition: state
entity_id: timer.main_light_b
state: active
- condition: state
entity_id: timer.door_b
state: active
actions:
- action: timer.cancel
entity_id: timer.main_light_b, timer.door_b
- alias: bathroom_input_on_off
id: bathroom_input_on_off
mode: queued
max: 10
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.wasp_b
to: 'on'
id: id_to_on
- trigger: state
entity_id: binary_sensor.wasp_b
to: 'off'
id: id_to_off
actions:
- choose:
- conditions:
- condition: trigger
id: id_to_on
- condition: state
entity_id: group.lights_b
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
sequence:
- action: timer.pause
entity_id: timer.main_light_b
- action: input_boolean.turn_on
data:
entity_id: input_boolean.bathroom_occupancy
- conditions:
- condition: trigger
id: id_to_off
sequence:
- action: input_boolean.turn_off
data:
entity_id: input_boolean.bathroom_occupancy
- alias: bathroom_auto_light_on_soft
id: bathroom_auto_light_on_soft
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d000236bc6d_motion
conditions:
- condition: state
entity_id: group.lights_b
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: '{{4 if (is_state(''binary_sensor.tod_day'',''off'') or is_state(''switch.system_dark_mode'',''on''))
else 1}}'
- alias: bathroom_light_toggle_repeater
id: bathroom_light_toggle_repeater
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x54ef4410005054cc_action
click_type: button_1_single
actions:
- choose:
- conditions:
- condition: state
entity_id: group.lights_b
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.0x00158d0002a36433_channel_2, light.mirror_light_b
- conditions:
- condition: state
entity_id: group.lights_b
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.0x00158d0002a36433_channel_2
- alias: bathroom_mirror_light_manual
id: bathroom_mirror_light_manual
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef6089_action
conditions:
- condition: template
value_template: '{{ states(''light.mirror_light_b'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: light.mirror_light_b
state: 'on'
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' }}'
sequence:
- action: light.turn_off
entity_id: light.mirror_light_b
- conditions:
- condition: state
entity_id: light.mirror_light_b
state: 'off'
- condition: state
entity_id: light.0x00158d0002a36433_channel_2
state: 'off'
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' }}'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 4
- conditions:
- condition: state
entity_id: light.mirror_light_b
state: 'off'
- condition: state
entity_id: light.0x00158d0002a36433_channel_2
state: 'on'
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' }}'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 1
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' }}'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 1
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' }}'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 4
- alias: bathroom_mirror_light_restart
id: bathroom_mirror_light_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.mirror_light_b
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_mirror_light_b_restart_key
state: 'on'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ states('switch.esp32_node_b_relay_5')\
\ not in ignore }} \n"
actions:
- repeat:
while:
- condition: state
entity_id: light.mirror_light_b
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_5
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.esp32_node_b_relay_5
- action: notify.telegram
data:
message: 🚨 Mirror LED B restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.mirror_light_b
state: unavailable
- action: notify.telegram
data:
message: 🚨 Mirror LED B restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_mirror_light_b_restart_key
- alias: bathroom_mirror_led_restart_key_toggle
id: bathroom_mirror_led_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.mirror_light_b
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_mirror_light_b_restart_key
- alias: bathroom_indicator
id: bathroom_indicator
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: input_boolean.bathroom_occupancy
to: null
conditions:
- condition: template
value_template: '{{ states(''input_boolean.bathroom_occupancy'') in [''on'',''off'']
}}'
actions:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.bathroom_occupancy
state: 'off'
sequence:
- action: light.turn_off
entity_id: light.esp32_node_hs_bathroom
- conditions:
- condition: state
entity_id: input_boolean.bathroom_occupancy
state: 'on'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_node_hs_bathroom
effect: Color Wipe
brightness: 100
- alias: bathroom_mirror_light_sync
id: bathroom_mirror_light_sync
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.0x00158d0002a36433_channel_2
to: 'off'
from: 'on'
id: to_off
- trigger: state
entity_id: light.0x00158d0002a36433_channel_2
to: 'on'
from: 'off'
id: to_on
actions:
- choose:
- conditions:
- condition: trigger
id: to_off
- condition: state
entity_id: light.mirror_light_b
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.mirror_light_b
data:
transition: 5
- conditions:
- condition: trigger
id: to_on
- condition: state
entity_id: light.mirror_light_b
state: 'on'
sequence:
- action: xiaomi_miio.light_set_scene
data:
entity_id: light.mirror_light_b
scene: 1
- alias: hall_big_auto_night_light_on
id: hall_big_auto_night_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e05856_motion
conditions:
- or:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: state
entity_id: switch.system_dark_mode
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: group.lights_hb
state: 'off'
actions:
- action: light.turn_on
entity_id: light.esp32_strip_1s_entrance_hb_rgb
data:
brightness: 10
rgb_color:
- 250
- 95
- 85
- alias: hall_big_auto_light_on
id: hall_big_auto_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e05856_motion
id: entr
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b482e9_motion
id: fridge
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- condition: state
entity_id: group.lights_main_hb
state: 'off'
actions:
- action: script.hall_big_led_strip_on
data:
strips: '{{ trigger.id }}'
- alias: hall_big_night_mode_preparation
id: hall_big_night_mode_preparation
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.tod_day
from: 'on'
to: 'off'
actions:
- action: light.turn_off
entity_id: light.esp32_strip_1s_wadrobe_hb_rgb, light.esp32_strip_1s_entrance_hb_rgb
data:
transition: 5
- action: switch.turn_off
entity_id: switch.system_dark_mode
- alias: hall_big_main_door_open
id: hall_big_main_door_open
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d0001e5d6be_contact
from: 'off'
to: 'on'
actions:
- action: script.hall_big_led_strip_on
data:
strips: both
- action: input_number.set_value
data:
entity_id: input_number.main_door_open
value: '{{as_timestamp(now())|int(0) }}'
- action: counter.increment
entity_id: counter.main_door_hb
- action: notify.telegram
data:
message: 🚪 Внимание! Входная дверь открыта! ({{states('sensor.time')}} {{states('sensor.date')}},
{{ states('counter.main_door_hb') }})
- action: notify.telegram_cam
data:
message: 🚪 Внимание! Входная дверь открыта! ({{states('sensor.time')}} {{states('sensor.date')}},
{{ states('counter.main_door_hb') }})
- delay: 00:00:09
- action: script.turn_on
entity_id: script.open_door_photo
- alias: hall_big_timer_on
id: hall_big_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: light.0x00158d000223921b_channel_1
to: 'on'
from: 'off'
- trigger: state
entity_id: light.0x00158d000253f04a_channel_2
to: 'on'
from: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_hb
- action: timer.start
entity_id: timer.main_light_hb
- alias: hall_big_timer_off
id: hall_big_timer_off
initial_state: true
triggers:
- trigger: template
value_template: '{{not is_state(''light.0x00158d000253f04a_channel_2'',''on'')
and not is_state(''light.0x00158d000223921b_channel_1'',''on'') }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_hb
- alias: hall_big_led_strip_with_main_off
id: hall_big_led_strip_with_main_off
initial_state: true
triggers:
- trigger: state
entity_id: group.lights_main_hb
to: 'off'
from: 'on'
- trigger: state
entity_id: group.lights_main_hb
to: 'on'
from: 'off'
actions:
- choose:
- conditions:
- condition: state
entity_id: group.lights_main_hb
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
sequence:
- action: script.hall_big_led_strip_on
data:
strips: both
- conditions:
- condition: state
entity_id: group.lights_main_hb
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.esp32_strip_1s_entrance_hb_rgb, light.esp32_strip_1s_wadrobe_hb_rgb
data:
transition: 5
- alias: hall_big_auto_off_10m
id: hall_big_auto_off_10m
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_hb
actions:
- action: light.turn_off
entity_id: light.0x00158d000223921b_channel_1, light.0x00158d000253f04a_channel_2
- alias: hall_big_timer_restart
id: hall_big_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e05856_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b482e9_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.582d34609600_motion
conditions:
- condition: state
entity_id: group.lights_main_hb
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_hb
- action: timer.start
entity_id: timer.main_light_hb
- alias: hall_big_entrance_light_on_from_fridge
id: hall_big_entrance_light_on_from_fridge
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d000253f04a_action
click_type: button_1_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001e0784e_action
click_type: button_1_single
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.toggle
entity_id: light.0x00158d000223921b_channel_1
- alias: hall_big_fridge_light_on_from_entrance
id: hall_big_fridge_light_on_from_entrance
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d000223921b_action
click_type: button_2_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001e0784e_action
click_type: button_2_single
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- action: light.toggle
entity_id: light.0x00158d000253f04a_channel_2
- alias: hall_big_led_strip_restart
id: hall_big_led_strip_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.esp32_strip_1s_wadrobe_hb_rgb
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_led_strip_hb_restart_key
state: 'on'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ states('switch.0x00158d00023e5812_outlet')\
\ not in ignore }} \n"
actions:
- repeat:
while:
- condition: state
entity_id: light.esp32_strip_1s_wadrobe_hb_rgb
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d00023e5812_outlet
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.0x00158d00023e5812_outlet
- action: notify.telegram
data:
message: 🚨 LED Strip HB restart done({{repeat.index}})!
- delay:
seconds: 15
- condition: state
entity_id: light.esp32_strip_1s_wadrobe_hb_rgb
state: unavailable
- action: notify.telegram
data:
message: 🚨 LED Strip HB restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_led_strip_hb_restart_key
- alias: hall_big_led_strip_restart_key_toggle
id: hall_big_led_strip_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.esp32_strip_1s_wadrobe_hb_rgb
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_led_strip_hb_restart_key
- alias: hall_big_led_strip_entrance_restart
id: hall_big_led_strip_entrance_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.esp32_strip_1s_entrance_hb_rgb
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_led_strip_entrance_hb_restart_key
state: 'on'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ states('switch.digma_strip_hb_relay1')\
\ not in ignore }} \n"
actions:
- repeat:
while:
- condition: state
entity_id: light.esp32_strip_1s_entrance_hb_rgb
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.digma_strip_hb_relay1
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.digma_strip_hb_relay1
- action: notify.telegram
data:
message: 🚨 LED Strip Entrance HB restart done({{repeat.index}})!
- delay:
seconds: 15
- condition: state
entity_id: light.esp32_strip_1s_entrance_hb_rgb
state: unavailable
- action: notify.telegram
data:
message: 🚨 LED Strip Entrance HB restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_led_strip_entrance_hb_restart_key
- alias: hall_big_led_strip_entrance_restart_key_toggle
id: hall_big_led_strip_entrance_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.esp32_strip_1s_entrance_hb_rgb
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_led_strip_entrance_hb_restart_key
- alias: hall_big_led_entance_manual
id: hall_big_led_entance_manual
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0003991051_action
conditions:
- condition: template
value_template: '{{ states(''light.esp32_strip_1s_entrance_hb_rgb'') in [''on'',''off'']
}}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' }}'
sequence:
- action: light.toggle
entity_id: light.esp32_strip_1s_entrance_hb_rgb
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' }}'
sequence:
- action: light.turn_on
entity_id: light.esp32_strip_1s_entrance_hb_rgb
data:
brightness: 255
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' }}'
sequence:
- action: light.turn_on
entity_id: light.esp32_strip_1s_entrance_hb_rgb
data:
brightness: 40
color_temp_kelvin: 3000
- alias: hall_big_led_strips_timer_on
id: hall_big_led_strips_timer_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.esp32_strip_1s_entrance_hb_rgb, light.esp32_strip_1s_wadrobe_hb_rgb
to: 'on'
from: 'off'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.led_strip_day_hb, timer.led_strip_night_hb
- action: timer.start
data:
entity_id: 'timer.{% if is_state(''binary_sensor.tod_day'',''on'') %}led_strip_day_hb{%else%}led_strip_night_hb{%endif%}
'
- alias: hall_big_led_strips_auto_led_off
id: hall_big_led_strips_auto_led_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_day_hb
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_night_hb
actions:
- action: light.turn_off
entity_id: light.esp32_strip_1s_entrance_hb_rgb, light.esp32_strip_1s_wadrobe_hb_rgb
data:
transition: 5
- alias: hall_big_led_strips_timer_restart
id: hall_big_led_strips_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e05856_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b482e9_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001d5995e_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.582d34609600_motion
- trigger: state
entity_id: binary_sensor.g5_flex_entrance_motion
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: group.lights_strips_hb
state: 'on'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.hall_big_led_strips_timer_restart'',
''last_triggered''),0)|int(0)) > 5 }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
sequence:
- action: timer.cancel
entity_id: timer.led_strip_day_hb
- action: timer.start
entity_id: timer.led_strip_day_hb
- conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
sequence:
- action: timer.cancel
entity_id: timer.led_strip_night_hb
- action: timer.start
entity_id: timer.led_strip_night_hb
- alias: hall_big_main_light_off_with_occupancy
id: hall_big_main_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.occupancy_hb
to: 'off'
for:
hours: 1
conditions:
- condition: state
entity_id: group.lights_main_hb
state: 'on'
actions:
- action: light.turn_off
entity_id: light.0x00158d000223921b_channel_1, light.0x00158d000253f04a_channel_2
- alias: hall_big_bedside_lamp_restart
id: hall_big_bedside_lamp_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.bedside
state: unavailable
for:
minutes: 2
- condition: state
entity_id: switch.system_bedside_restart_key
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.0x00158d00039bd56d_plug'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.bedside
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d00039bd56d_plug
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.0x00158d00039bd56d_plug
- action: notify.telegram
data:
message: 🚨 Bedside restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.bedside
state: unavailable
- action: notify.telegram
data:
message: 🚨 Bedside restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_bedside_restart_key
- alias: hall_big_bedside_restart_key_toggle
id: hall_big_bedside_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.bedside
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_bedside_restart_key
- alias: hall_small_auto_night_light
id: hall_small_auto_night_light
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001ae9f61_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b43ad4_motion
- trigger: state
entity_id:
- binary_sensor.0x00158d00025315e9_contact
- binary_sensor.0x00158d0002a14c5e_contact
- binary_sensor.0x00158d0001ef2ffc_contact
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: light.round_led_k
state: 'off'
- condition: state
entity_id: group.lights_main_hs
state: 'off'
- condition: state
entity_id: binary_sensor.light_outside_mi
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
entity_id: light.mono_strip_1_light
data:
brightness: 100
- alias: hall_small_main_lamp_on_single
id: hall_small_main_lamp_on_single
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0002a36433_action
click_type: button_1_single
conditions:
- condition: template
value_template: '{{ states(''light.round_led_hs'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- if:
- condition: state
entity_id: binary_sensor.round_led_hs_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_hs
state: 'off'
then:
- action: yeelight.set_mode
data:
entity_id: light.round_led_hs
mode: normal
- choose:
- conditions:
- condition: state
entity_id: light.round_led_hs
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.round_led_hs
- conditions:
- condition: state
entity_id: light.round_led_hs
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.round_led_hs
data:
brightness: 65
color_temp_kelvin: 5000
- alias: hall_small_main_lamp_on_double
id: hall_small_main_lamp_on_double
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0002a36433_action
click_type: button_1_double
conditions:
- condition: template
value_template: '{{ states(''light.round_led_k'') in [''on'',''off''] }}'
actions:
- if:
- condition: state
entity_id: binary_sensor.round_led_hs_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_hs
state: 'off'
then:
- action: yeelight.set_mode
data:
entity_id: light.round_led_hs
mode: normal
- action: light.turn_on
entity_id: light.round_led_hs
data:
brightness: 230
color_temp_kelvin: 5000
- alias: hall_small_main_lamp_restart
id: hall_small_main_lamp_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.round_led_hs
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_round_led_hs_restart_key
state: 'on'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.0x00158d0002a36433_channel_1'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.round_led_hs
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d0002a36433_channel_1
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.0x00158d0002a36433_channel_1
- action: notify.telegram
data:
message: 🚨 Round LED HS restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.round_led_hs
state: unavailable
- action: notify.telegram
data:
message: 🚨 Round LED HS restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_round_led_hs_restart_key
- alias: hall_small_main_lamp_restart_key_toggle
id: hall_small_main_lamp_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_hs
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_round_led_hs_restart_key
- alias: hall_small_led_strip_timer_on
id: hall_small_led_strip_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: light.mono_strip_1_light
to: 'on'
from: 'off'
actions:
- action: timer.cancel
entity_id: timer.led_strip_night_hs
- action: timer.start
entity_id: timer.led_strip_night_hs
- alias: hall_small_led_strip_auto_led_off
id: hall_small_led_strip_auto_led_off
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_night_hs
actions:
- action: light.turn_off
entity_id: light.mono_strip_1_light
data:
transition: 5
- alias: hall_small_led_strip_timer_restart
id: hall_small_led_strip_timer_restart
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001ae9f61_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b43ad4_motion
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.hall_small_led_strip_timer_restart'',
''last_triggered''),0)|int(0)) > 5 }}'
- condition: state
entity_id: light.mono_strip_1_light
state: 'on'
actions:
- action: timer.cancel
entity_id: timer.led_strip_night_hs
- action: timer.start
entity_id: timer.led_strip_night_hs
- alias: hall_small_timer_restart
id: hall_small_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b43ad4_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001ae9f61_motion
conditions:
- condition: template
value_template: '{{ not is_state(''light.round_led_hs'', ''off'') }}'
- condition: template
value_template: '{{(as_timestamp(now()) - as_timestamp(state_attr(''automation.hall_small_timer_restart'',
''last_triggered''),0)|int(0)) > 5 }}'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_hs
- action: timer.start
entity_id: timer.main_light_hs
- alias: hall_small_timer_off
id: hall_small_timer_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_hs
to: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_hs
- alias: hall_small_timer_on
id: hall_small_timer_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_hs
to: 'on'
actions:
- action: timer.cancel
entity_id: timer.main_light_hs
- action: timer.start
entity_id: timer.main_light_hs
- alias: hall_small_auto_light_off
id: hall_small_auto_light_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_hs
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
actions:
- action: light.turn_off
entity_id: light.round_led_hs
data:
transition: 15
- alias: hall_small_main_light_off_with_occupancy
id: hall_small_main_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.occupancy_hs
to: 'off'
for:
hours: 1
conditions:
- condition: state
entity_id: group.lights_main_hs
state: 'on'
actions:
- action: light.turn_off
entity_id: light.round_led_hs, light.mono_strip_1_light
data:
transition: 15
- alias: kitchen_timer_restart
id: kitchen_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
- trigger: state
entity_id: sensor.0x00158d0002a2412d_action
to:
- vibration
- tilt
conditions:
- condition: state
entity_id: group.lights_main_k
state: 'on'
- condition: template
value_template: '{{(as_timestamp(now()) - as_timestamp(state_attr(''automation.kitchen_timer_restart'',
''last_triggered''),0)|int(0)) > 5 }}'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_k
- action: timer.start
entity_id: timer.main_light_k
- alias: kitchen_timer_off
id: kitchen_timer_off
initial_state: true
triggers:
- trigger: state
entity_id: light.round_led_k
to: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_k, timer.main_light_delay_k
- action: timer.start
entity_id: timer.main_light_delay_k
- alias: kitchen_timer_on
id: kitchen_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: light.round_led_k
to: 'on'
actions:
- action: timer.cancel
entity_id: timer.main_light_k
- action: timer.start
entity_id: timer.main_light_k
- action: light.turn_off
entity_id: light.esp32_node_k_light, light.mono_strip_1_light
data:
transition: 5
- alias: kitchen_auto_light_off
id: kitchen_auto_light_off
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_k
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: binary_sensor.presence_k
state: 'off'
actions:
- action: light.turn_off
entity_id: light.round_led_k
data:
transition: 15
- action: light.turn_off
entity_id: light.d1mini_light_l_led, light.sonoff_mini_4_led, light.esp8266_hood_k_main
- alias: kitchen_auto_light_on
id: kitchen_auto_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: group.lights_main_k
state: 'off'
- condition: state
entity_id: binary_sensor.light_outside_mi
state: 'off'
- condition: state
entity_id: timer.main_light_delay_k
state: idle
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
entity_id: light.esp32_node_k_light
- alias: kitchen_auto_night_light
id: kitchen_auto_night_light
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: template
value_template: '{{ not is_state(''light.esp32_node_k_light'', ''on'') }}'
- condition: state
entity_id: group.lights_main_k
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{as_timestamp(now())-as_timestamp(state_attr(''automation.hall_small_auto_night_light'',
''last_triggered''),0) < 600 }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
entity_id: light.esp32_node_k_light
data:
brightness: 255
- alias: kitchen_main_lamp_restart
id: kitchen_main_lamp_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.round_led_k
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_round_led_k_restart_key
state: 'on'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.0x00158d0002a36f7f_channel_2'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.round_led_k
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d0002a36f7f_channel_2
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.0x00158d0002a36f7f_channel_2
- action: notify.telegram
data:
message: 🚨 Round LED K restart done({{repeat.index}})!
- delay:
seconds: 30
- if:
- condition: state
entity_id: light.round_led_k
state: unavailable
then:
- action: notify.telegram
data:
message: 🚨 Round LED K restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_round_led_k_restart_key
else:
- action: light.turn_{{ states("binary_sensor.round_led_k_prev") | lower }}
entity_id: light.round_led_k
- action: switch.turn_on
entity_id: switch.system_round_led_k_restart_key
- alias: kitchen_main_lamp_restart_key_toggle
id: kitchen_main_lamp_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_k
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_round_led_k_restart_key
- alias: kitchen_main_lamp_switch_on_if_off
id: kitchen_main_lamp_switch_on_if_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0002a36f7f_action
click_type: button_2_single
conditions:
- condition: state
entity_id: switch.0x00158d0002a36f7f_channel_2
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.0x00158d0002a36f7f_channel_2
- alias: kitchen_main_lamp_on
id: kitchen_main_lamp_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0002a36f7f_action
click_type: button_2_single
conditions:
- condition: template
value_template: '{{ states(''light.round_led_k'') in [''on'',''off''] }}'
- condition: state
entity_id: switch.0x00158d0002a36f7f_channel_2
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.round_led_k_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_k
state: 'off'
sequence:
- action: yeelight.set_mode
data:
entity_id: light.round_led_k
mode: normal
- action: light.turn_on
entity_id: light.round_led_k
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: state
entity_id: binary_sensor.round_led_k_nightlight
state: 'off'
- condition: state
entity_id: light.round_led_k
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.round_led_k
- delay: 00:00:01
- condition: state
entity_id: light.round_led_k
state: 'on'
- action: light.turn_off
entity_id: light.round_led_k
- conditions:
- condition: state
entity_id: light.round_led_k
state: 'off'
- condition: state
entity_id: binary_sensor.round_led_k_nightlight
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.round_led_k
data:
brightness: 230
color_temp_kelvin: 5000
- alias: kitchen_main_lamp_on_full
id: kitchen_main_lamp_on_full
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0002a36f7f_action
click_type: button_2_double
conditions:
- condition: template
value_template: '{{ states(''light.round_led_k'') in [''on'',''off''] }}'
- condition: state
entity_id: switch.0x00158d0002a36f7f_channel_2
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- if:
- condition: state
entity_id: binary_sensor.round_led_k_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_k
state: 'off'
then:
- action: yeelight.set_mode
data:
entity_id: light.round_led_k
mode: normal
- action: light.turn_on
entity_id: light.round_led_k
data:
brightness: 230
color_temp_kelvin: 5000
- alias: kitchen_led_strips_timer
id: kitchen_led_strips_timer
initial_state: true
triggers:
- trigger: state
entity_id: light.esp32_node_k_light
to: 'on'
actions:
- action: timer.cancel
entity_id: timer.led_strip_night_k
- action: timer.start
entity_id: timer.led_strip_night_k
- alias: kitchen_led_strip_auto_led_off
id: kitchen_led_strip_auto_led_off
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_night_k
actions:
- action: light.turn_off
entity_id: light.esp32_node_k_light
data:
transition: 5
- alias: kitchen_led_strip_timer_restart
id: kitchen_led_strip_timer_restart
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
- trigger: state
entity_id: light.esp32_node_k_light
to: 'on'
conditions:
- condition: state
entity_id: light.esp32_node_k_light
state: 'on'
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.kitchen_led_strip_timer_restart'',
''last_triggered''),0)|int(0)) > 5 }}'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: timer.cancel
entity_id: timer.led_strip_night_k
- action: timer.start
entity_id: timer.led_strip_night_k
- alias: kitchen_night_aux_light
id: kitchen_night_aux_light
initial_state: true
triggers:
- trigger: state
entity_id: light.round_led_k
to: 'off'
from: 'on'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id:
- light.d1mini_light_l_led
- light.sonoff_mini_4_led
- light.esp8266_hood_k_main
- light.esp32_node_k_light
- light.mono_strip_1_light
- light.round_led_hs
state: 'off'
- condition: state
entity_id: binary_sensor.light_outside_mi
state: 'off'
actions:
- action: light.turn_on
entity_id: light.esp32_node_k_light
data:
brightness: 255
- action: light.turn_on
entity_id: light.mono_strip_1_light
data:
brightness: 128
- alias: kitchen_main_light_off_with_occupancy
id: kitchen_main_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.presence_k
to: 'off'
for:
minutes: 15
conditions:
- condition: state
entity_id: group.lights_main_k
state: 'on'
actions:
- action: light.turn_off
entity_id: light.d1mini_light_l_led, light.sonoff_mini_4_led, light.esp8266_hood_k_main
- action: light.turn_off
entity_id: light.round_led_k
data:
transition: 15
- alias: master_bedroom_table_lamp
id: master_bedroom_table_lamp
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
conditions:
- condition: template
value_template: '{{ states(''light.0x54ef441000c88fa8_light'') in [''on'',''off'']
}}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' or trigger.event.data.click_type
== ''button_1_single'' }}'
sequence:
- action: light.toggle
entity_id: light.0x54ef441000c88fa8_light
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' or trigger.event.data.click_type
== ''button_1_double'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000c88fa8_light
data:
brightness: 255
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' or trigger.event.data.click_type
== ''button_1_hold'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000c88fa8_light
data:
brightness: 14
color_temp_kelvin: 3000
- alias: master_bedroom_main_lamp_right_button
id: master_bedroom_main_lamp_right_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00013e6aa5_action
click_type: button_2_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
click_type: button_3_single
conditions:
- condition: template
value_template: '{{ states(''light.round_led_mb'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.round_led_mb_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_mb
state: 'off'
sequence:
- action: yeelight.set_mode
data:
entity_id: light.round_led_mb
mode: normal
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: state
entity_id: light.round_led_mb
state: 'off'
- condition: state
entity_id: binary_sensor.round_led_mb_nightlight
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: state
entity_id: light.round_led_mb
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.round_led_mb
- alias: master_bedroom_main_lamp_right_button_full
id: master_bedroom_main_lamp_right_button_full
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00013e6aa5_action
click_type: button_2_double
conditions:
- condition: template
value_template: '{{ states(''light.round_led_mb'') in [''on'',''off''] }}'
actions:
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 230
color_temp_kelvin: 5000
- alias: master_bedroom_main_lamp_left_button
id: master_bedroom_main_lamp_left_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00013e6aa5_action
click_type: button_1_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
click_type: button_3_double
conditions:
- condition: template
value_template: '{{ states(''light.round_led_mb'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.round_led_mb_nightlight
state: 'on'
- condition: state
entity_id: light.round_led_mb
state: 'off'
sequence:
- action: yeelight.set_mode
data:
entity_id: light.round_led_mb
mode: normal
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 77
color_temp_kelvin: 3000
- conditions:
- condition: state
entity_id: light.round_led_mb
state: 'off'
- condition: state
entity_id: binary_sensor.round_led_mb_nightlight
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 77
color_temp_kelvin: 3000
- conditions:
- condition: state
entity_id: light.round_led_mb
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.round_led_mb
- alias: master_bedroom_round_led_restart
id: master_bedroom_round_led_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.round_led_mb
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_round_led_mb_restart_key
state: 'on'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ states('switch.shelly_1_led_mb')\
\ not in ignore }} \n"
actions:
- repeat:
while:
- condition: state
entity_id: light.round_led_mb
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.shelly_1_led_mb
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.shelly_1_led_mb
- action: notify.telegram
data:
message: 🚨 Round LED MB restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.round_led_mb
state: unavailable
- action: notify.telegram
data:
message: 🚨 Round LED MB restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_round_led_mb_restart_key
- alias: master_bedroom_main_lamp_restart_key_toggle
id: master_bedroom_lamp_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_mb
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_round_led_mb_restart_key
- alias: master_bedroom_main_lamp_switch_on_if_off
id: master_bedroom_main_lamp_switch_on_if_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00013e6aa5_action
click_type: button_2_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
click_type: button_3_single
conditions:
- condition: state
entity_id: switch.shelly_1_led_mb
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.shelly_1_led_mb
- alias: master_bedroom_timer_restart
id: master_bedroom_timer_restart
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e53cda_motion
conditions:
- condition: state
entity_id: light.round_led_mb
state: 'on'
actions:
- action: timer.cancel
entity_id: timer.main_light_mb
- action: timer.start
entity_id: timer.main_light_mb
- alias: master_bedroom_timer_off
id: master_bedroom_timer_off
initial_state: true
triggers:
- trigger: state
entity_id: light.round_led_mb
to: 'off'
from: 'on'
actions:
- action: timer.cancel
entity_id: timer.main_light_mb
- alias: master_bedroom_timer_on
id: master_bedroom_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: light.round_led_mb
to: 'on'
from: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_mb
- action: timer.start
entity_id: timer.main_light_mb
- alias: master_bedroom_led_strip_bookshelf_control
id: master_bedroom_led_strip_bookshelf_control
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
conditions:
- condition: template
value_template: '{{ states(''light.esp32_strip_1s_bookshelf_mb_rgb'') in [''on'',''off'']
}}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' or trigger.event.data.click_type
== ''button_4_single'' }}'
sequence:
- action: light.toggle
entity_id: light.esp32_strip_1s_bookshelf_mb_rgb
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' or trigger.event.data.click_type
== ''button_4_double'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_strip_1s_bookshelf_mb_rgb
brightness: 255
rgb_color:
- 255
- 159
- 70
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' or trigger.event.data.click_type
== ''button_4_hold'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_strip_1s_bookshelf_mb_rgb
brightness: 15
rgb_color:
- 250
- 95
- 85
- alias: master_bedroom_led_strip_wadrobe_control
id: master_bedroom_led_strip_wadrobe_control
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77cc5f_action
conditions:
- condition: template
value_template: '{{ states(''light.esp32_strip_1s_wadrobe_mb_rgb'') in [''on'',''off'']
}}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' or trigger.event.data.click_type
== ''button_2_single'' }}'
sequence:
- action: light.toggle
entity_id: light.esp32_strip_1s_wadrobe_mb_rgb
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' or trigger.event.data.click_type
== ''button_2_double'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_strip_1s_wadrobe_mb_rgb
brightness: 255
rgb_color:
- 255
- 159
- 70
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' or trigger.event.data.click_type
== ''button_2_hold'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_strip_1s_wadrobe_mb_rgb
brightness: 15
rgb_color:
- 250
- 95
- 85
- alias: master_bedroom_main_light_off_with_occupancy
id: master_bedroom_main_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.presence_mb
to: 'off'
for:
minutes: 15
conditions:
- condition: state
entity_id: group.lights_mb
state: 'on'
actions:
- action: light.turn_off
entity_id: light.round_led_mb_ambilight, light.0x54ef441000c88fa8_light, light.esp32_strip_1s_wadrobe_mb_rgb,
light.esp32_strip_1s_bookshelf_mb_rgb
data:
transition: 15
- action: light.turn_off
entity_id: light.round_led_mb
data:
transition: 15
- alias: master_bedroom_main_power_turned_off
id: master_bedroom_main_power_turned_off
initial_state: true
triggers:
- trigger: state
entity_id: switch.0x00158d0002467773_outlet
to: 'off'
from: 'on'
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Вторая розетка отключена! Запущен UPS (1050)
- alias: master_bedroom_main_plug_pulled_out
id: master_bedroom_main_plug_pulled_out
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.0x00158d0002467773_power
below: 10
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Нагрузка во второй розетке упала! Проверь кабель!
- alias: master_bedroom_main_power_overpower
id: master_bedroom_main_power_overpower
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.0x00158d0002467773_power
above: 1700
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Перегрузка второй розетки! Отключите лишние потребители!
- alias: master_bedroom_ups_ob
id: master_bedroom_ups_ob
initial_state: true
triggers:
- trigger: state
entity_id: sensor.ippon_1050_status_data
to: OB
actions:
- parallel:
- action: notify.telegram
data:
message: 🔋 Внимание! Запущен UPS (1050)!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: Запущен UPS (1050)
- alias: master_bedroom_ups_lb
id: master_bedroom_ups_lb
initial_state: true
triggers:
- trigger: state
entity_id: sensor.ippon_1050_status_data
to: LB
actions:
- parallel:
- action: notify.telegram
data:
message: 🚨 Внимание! Заряд батареи (1050) критический! Завершение работы NUC!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: UPS полностью разряжен! Завершаем работу NUC!
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: master_bedroom_ups_ol
id: master_bedroom_ups_ol
initial_state: true
triggers:
- trigger: state
entity_id: sensor.ippon_1050_status_data
to: OL
conditions:
- condition: template
value_template: '{{ trigger.from_state.state not in [''unknown'',''unavailable'',''none'']
}}'
actions:
- action: notify.telegram
data:
message: 🔋 Питание восстановлено! Начинаем заряд батареи(1050)!
- alias: master_bedroom_ups_unknown
id: master_bedroom_ups_unknown
initial_state: true
triggers:
- trigger: state
entity_id: sensor.ippon_1050_status_data
to: unknown
for:
minutes: 5
conditions:
- condition: template
value_template: '{{ trigger.from_state.state not in [''unknown'',''unavailable'',''none'']
}}'
actions:
- action: notify.telegram
data:
message: 🚨 Внимание! Связь с UPS(1050) потеряна!
- alias: master_bedroom_main_power_turned_on
id: master_bedroom_main_power_turned_on
initial_state: true
triggers:
- trigger: state
entity_id: switch.0x00158d0002467773_outlet
to: 'on'
from: 'off'
actions:
- action: notify.telegram
data:
message: 🔌 Электроснабжение восстановлено! Начинаем зарядку UPS(1050)!
- alias: sasha_breather_auto_co2
id: sasha_breather_auto_co2
initial_state: true
triggers:
- trigger: time_pattern
minutes: /3
conditions:
- condition: state
entity_id: switch.system_breather_auto_s
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: switch.system_breather_manual_s
state: 'on'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d00025370d1_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_s_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_s
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: numeric_state
entity_id: sensor.0x00158d0001e6d85a_temperature
above: 20
sequence:
- action: fan.turn_on
entity_id: fan.breather_s
- condition: numeric_state
entity_id: sensor.esp32_node_s_co2
above: input_number.co2_high_limit
- condition: state
entity_id: switch.system_breather_auto_speed_s
state: 'on'
- action: fan.set_percentage
entity_id: fan.breather_s
data:
percentage: '{{states(''sensor.breather_set_speed_s'')|int(0) }}'
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d00025370d1_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_s_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_s
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: switch.system_breather_auto_speed_s
state: 'on'
- condition: numeric_state
entity_id: sensor.breather_set_speed_s
above: 0
sequence:
- action: fan.set_percentage
entity_id: fan.breather_s
data:
percentage: '{{states(''sensor.breather_set_speed_s'')|int(0) }}'
- conditions:
- or:
- and:
- condition: state
entity_id: binary_sensor.0x00158d00025370d1_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_s_co2
below: input_number.co2_low_limit
- condition: state
entity_id: binary_sensor.breather_s
state: 'on'
- and:
- or:
- condition: numeric_state
entity_id: sensor.0x00158d0001e6d85a_temperature
below: 20
- condition: state
entity_id: binary_sensor.0x00158d00025370d1_contact
state: 'on'
- condition: state
entity_id: binary_sensor.breather_s
state: 'on'
sequence:
- action: fan.turn_off
entity_id: fan.breather_s
- alias: sasha_breather_auto_timer
id: sasha_breather_auto_timer
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи вентиляцию
id: to_off_alice
- trigger: event
event_type: yandex_intent
event_data:
text: Включи вентиляцию
id: to_on_alice
- trigger: time
at: '21:00:00'
id: time_trigger_night
- trigger: time
at: 09:00:00
id: time_trigger_day
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_off_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_s''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_s
state: 'on'
then:
- action: fan.turn_off
entity_id: fan.breather_s
- action: switch.turn_on
entity_id: switch.system_breather_auto_s
- conditions:
- condition: trigger
id: to_on_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_s''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_s
state: 'off'
then:
- action: switch.turn_on
entity_id: switch.system_breather_manual_s
- action: fan.turn_on
entity_id: fan.breather_s
- conditions:
- condition: trigger
id: time_trigger_night
sequence:
- action: switch.turn_on
entity_id: switch.system_breather_manual_s
- action: fan.set_percentage
entity_id: fan.breather_s
data:
percentage: 25
- conditions:
- condition: trigger
id: time_trigger_day
sequence:
- action: fan.turn_off
entity_id: fan.breather_s
- alias: sasha_breather_switches_interlock
id: sasha_breather_switches_interlock
triggers:
- trigger: state
entity_id:
- switch.system_breather_auto_s
- switch.system_breather_manual_s
conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''on'' }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: homeassistant.turn_off
target:
entity_id: '{% if trigger.from_state.entity_id == ''switch.system_breather_auto_s''
%} {{ ''switch.system_breather_manual_s'' }} {% else %} {{ ''switch.system_breather_auto_s''
}} {% endif %}'
- alias: sasha_breather_switches_default
id: sasha_breather_switches_default
triggers:
- trigger: template
value_template: '{{ is_state(''switch.system_breather_auto_s'',''off'') and is_state(''switch.system_breather_manual_s'',''off'')
}}'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: switch.turn_on
entity_id: switch.system_breather_auto_s
- alias: sasha_led_white_control
id: sasha_led_white_control
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77d831_action
conditions:
- condition: template
value_template: '{{ states(''light.0x54ef441000d54c6c_light'') in [''on'',''off'']
}}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' or trigger.event.data.click_type
== ''button_1_single''}}'
sequence:
- action: light.toggle
entity_id: light.0x54ef441000d54c6c_light
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' or trigger.event.data.click_type
== ''button_1_double'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000d54c6c_light
data:
brightness: 255
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' or trigger.event.data.click_type
== ''button_1_hold'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000d54c6c_light
data:
brightness: 14
color_temp_kelvin: 3000
- alias: sasha_main_lamp_left_button
id: sasha_main_lamp_left_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00026eb820_action
click_type: button_1_single
conditions:
- condition: template
value_template: '{{ states(''light.square_led_s'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- if:
- condition: state
entity_id: binary_sensor.square_led_s_nightlight
state: 'on'
- condition: state
entity_id: light.square_led_s
state: 'off'
then:
- action: yeelight.set_mode
data:
entity_id: light.square_led_s
mode: normal
- choose:
- conditions:
- condition: state
entity_id: light.square_led_s
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.square_led_s
- conditions:
- condition: state
entity_id: light.square_led_s
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.square_led_s
data:
brightness: 230
color_temp_kelvin: 5000
- alias: sasha_main_lamp_right_button
id: sasha_main_lamp_right_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00026eb820_action
click_type: button_2_single
conditions:
- condition: template
value_template: '{{ states(''light.square_led_s'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- if:
- condition: state
entity_id: binary_sensor.square_led_s_nightlight
state: 'on'
- condition: state
entity_id: light.square_led_s
state: 'off'
then:
- action: yeelight.set_mode
data:
entity_id: light.square_led_s
mode: normal
- choose:
- conditions:
- condition: state
entity_id: light.square_led_s
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.square_led_s
- conditions:
- condition: state
entity_id: light.square_led_s
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.square_led_s
data:
brightness: 14
color_temp_kelvin: 3000
- alias: sasha_table_lamp_off_night_mode_main_on
id: sasha_table_lamp_off_night_mode_main_on
initial_state: true
triggers:
- trigger: state
entity_id: light.0x54ef441000d54c6c_light
to: null
- trigger: homeassistant
event: start
- trigger: event
event_type: automation_reloaded
conditions:
- condition: template
value_template: '{{state_attr(''light.0x54ef441000d54c6c_light'',''brightness'')|int(0)
< 10}}'
- condition: state
entity_id: light.square_led_s
state: 'on'
- condition: state
entity_id: light.0x54ef441000d54c6c_light
state: 'on'
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
actions:
- action: light.turn_off
entity_id: light.0x54ef441000d54c6c_light
- alias: sasha_night_auto_off_30m
id: sasha_night_auto_off_30m
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.motion_s
from: 'on'
to: 'off'
for:
minutes: 30
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
actions:
- action: light.turn_off
entity_id: light.0x54ef441000d54c6c_light
data:
transition: 5
- alias: sasha_square_led_restart
id: sasha_square_led_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.square_led_s
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_square_led_s_restart_key
state: 'on'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.shelly_1_led_s'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.square_led_s
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.shelly_1_led_s
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.shelly_1_led_s
- action: notify.telegram
data:
message: 🚨 Square LED S restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.square_led_s
state: unavailable
- action: notify.telegram
data:
message: 🚨 Square LED S restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_square_led_s_restart_key
- alias: sasha_square_led_restart_key_toggle
id: sasha_square_led_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.square_led_s
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_square_led_s_restart_key
- alias: sasha_main_lamp_switch_on_if_off
id: sasha_main_lamp_switch_on_if_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00026eb820_action
conditions:
- condition: state
entity_id: switch.shelly_1_led_s
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.shelly_1_led_s
- alias: sasha_timer_restart
id: sasha_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d000224f89f_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0003140824_motion
conditions:
- condition: state
entity_id: light.square_led_s
state: 'on'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.sasha_timer_restart'',
''last_triggered''),0)|int(0)) > 15 }}'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_s
- action: timer.start
entity_id: timer.main_light_s
- alias: sasha_timer_off
id: sasha_timer_off
initial_state: true
triggers:
- trigger: state
entity_id: light.square_led_s
to: 'off'
from: 'on'
actions:
- action: timer.cancel
entity_id: timer.main_light_s
- alias: sasha_timer_on
id: sasha_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: light.square_led_s
to: 'on'
from: 'off'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_s
- action: timer.start
entity_id: timer.main_light_s
- alias: sasha_auto_light_off
id: sasha_auto_light_off
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_s
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
actions:
- action: light.turn_off
entity_id: light.square_led_s
data:
transition: 5
- alias: sasha_led_strip_control
id: sasha_led_strip_control
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c77d831_action
conditions:
- condition: template
value_template: '{{ states(''light.esp32_node_s_led'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' or trigger.event.data.click_type
== ''button_2_single'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_node_s_led
effect: '{{ (["Random", "Rainbow", "Color Wipe", "Scan", "Twinkle", "Random
Twinkle"] | random) }}'
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' or trigger.event.data.click_type
== ''button_2_double'' }}'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_node_s_led
effect: Color Wipe
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' or trigger.event.data.click_type
== ''button_2_hold'' }}'
sequence:
- action: light.turn_off
entity_id: light.esp32_node_s_led
data:
transition: 5
- alias: sasha_light_off_with_occupancy
id: sasha_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.presence_s
to: 'off'
for:
minutes: 15
conditions:
- condition: state
entity_id: group.lights_s
state: 'on'
actions:
- action: light.turn_off
entity_id: light.square_led_s, light.esp32_node_s_led, light.0x54ef441000d54c6c_light,
light.0x54ef4410000ea59b_light, light.light_bar_s, light.light_bar_s_ambilight
data:
transition: 15
- alias: sasha_main_light_control_with_alice
id: sasha_main_light_control_with_alice
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи свет в Сашиной комнате
id: to_off_alice
- trigger: event
event_type: yandex_intent
event_data:
text: Включи свет в Сашиной комнате
id: to_on_alice
conditions:
- condition: template
value_template: '{{ states(''light.square_led_s'') in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_off_alice
sequence:
- action: light.turn_off
entity_id: light.square_led_s
- conditions:
- condition: trigger
id: to_on_alice
sequence:
- action: light.turn_on
entity_id: light.square_led_s
data:
brightness: 230
color_temp_kelvin: 5000
- alias: sasha_light_bar_restart
id: sasha_light_bar_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.light_bar_s
state: unavailable
for:
minutes: 2
- condition: state
entity_id: switch.system_light_bar_s_restart_key
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.sp111_socket_1_relay'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.light_bar_s
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.sp111_socket_1_relay
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.sp111_socket_1_relay
- action: notify.telegram
data:
message: 🚨 Light Bar S restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.light_bar_s
state: unavailable
- action: notify.telegram
data:
message: 🚨 Light Bar S restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_light_bar_s_restart_key
- alias: sasha_light_bar_s_restart_key_toggle
id: sasha_light_bar_s_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.light_bar_s
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_light_bar_s_restart_key
- alias: storage_auto_light_on
id: storage_auto_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001aea602_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0003f27ce2_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.582d34609552_motion
conditions:
- condition: state
entity_id: timer.main_light_delay_st
state: idle
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: group.lights_st
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
data:
entity_id: '{%if is_state(''binary_sensor.tod_day'',''on'') and is_state(''switch.system_dark_mode'',''off'')
%}light.0x54ef441000680083_channel_2,light.round_led_st {%elif is_state(''binary_sensor.tod_day'',''off'')
or is_state(''switch.system_dark_mode'',''on'') %}light.round_led_st {%endif%}'
- alias: storage_light_on
id: storage_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0002a1b0c8_contact
from: 'off'
to: 'on'
for:
seconds: 1
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_2_single
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: group.lights_st
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
data:
entity_id: '{%if is_state(''binary_sensor.tod_day'',''on'') and is_state(''switch.system_dark_mode'',''off'')
%}light.0x54ef441000680083_channel_2,light.round_led_st {%elif is_state(''binary_sensor.tod_day'',''off'')
or is_state(''switch.system_dark_mode'',''on'') %}light.round_led_st {%endif%}'
- alias: storage_main_light_full_on
id: storage_main_light_full_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_2_double
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
entity_id: light.0x54ef441000680083_channel_2, light.round_led_st
- alias: storage_light_off
id: storage_light_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_st
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_2_single
- trigger: state
entity_id: binary_sensor.0x00158d0002a1b0c8_contact
from: 'on'
to: 'off'
for:
seconds: 1
- trigger: state
entity_id: binary_sensor.dced838ea54e_occupancy
from: 'on'
to: 'off'
conditions:
- condition: state
entity_id: group.lights_st
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_off
entity_id: light.0x54ef441000680083_channel_2,light.round_led_st
- action: timer.cancel
entity_id: timer.main_light_st
- alias: storage_timer_start
id: storage_timer_start
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: template
value_template: '{{ is_state(''light.0x54ef441000680083_channel_2'',''on'') or
is_state(''light.round_led_st'',''on'')}}'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_st
- action: timer.start
entity_id: timer.main_light_st
- alias: storage_timer_restart
id: storage_timer_restart
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001aea602_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0003f27ce2_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.54ef44c65722_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.582d34609552_motion
conditions:
- condition: state
entity_id: group.lights_st
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_st
- action: timer.start
entity_id: timer.main_light_st
- alias: storage_timer_off
id: storage_timer_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.0x54ef441000680083_channel_2, light.round_led_st
to: 'off'
from: 'on'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_st
- action: timer.cancel
entity_id: timer.main_light_delay_st
- action: timer.start
entity_id: timer.main_light_delay_st
- action: light.turn_off
entity_id: light.round_led_st
- alias: storage_night_off
id: storage_night_off
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_1_single
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_off
target:
entity_id:
- light.esp32_node_k_light
- light.mono_strip_1_light
- light.0x54ef441000680083_channel_2
- light.round_led_st
- light.esp32_strip_1s_wadrobe_hb_rgb
- light.esp32_strip_1s_entrance_hb_rgb
- light.mirror_light_b
- alias: storage_light_dark_mode_on
id: storage_light_dark_mode_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_1_double
- trigger: state
entity_id: binary_sensor.lullaby
to: 'on'
conditions:
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: switch.turn_on
entity_id: switch.system_dark_mode
- alias: storage_light_dark_mode_off
id: storage_light_dark_mode_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x04cf8cdf3c79546c_action
click_type: button_1_double
- trigger: state
entity_id: light.0x00158d000223921b_channel_1, light.0x00158d000253f04a_channel_2
from: 'off'
to: 'on'
for:
seconds: 10
conditions:
- condition: state
entity_id: switch.system_dark_mode
state: 'on'
actions:
- action: switch.turn_off
entity_id: switch.system_dark_mode
- alias: storage_light_off_with_occupancy
id: storage_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.presence_st
to: 'off'
for:
minutes: 15
conditions:
- condition: state
entity_id: group.lights_st
state: 'on'
actions:
- action: light.turn_off
entity_id: light.0x54ef441000680083_channel_2,light.round_led_st
- alias: storage_night_light_toggle
id: storage_night_light_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x54ef441000680083_action
click_type: button_1_single
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.toggle
entity_id: light.round_led_st
- alias: storage_round_led_restart
id: storage_round_led_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.round_led_st
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_round_led_st_restart_key
state: 'on'
- condition: template
value_template: '{% set ignore = [''unknown'', ''unavailable'', ''none''] %} {{
states(''switch.sonoff_basic_2_relay'') not in ignore }}
'
actions:
- repeat:
while:
- condition: state
entity_id: light.round_led_st
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.sonoff_basic_2_relay
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.sonoff_basic_2_relay
- action: notify.telegram
data:
message: 🚨 Round LED St restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.round_led_st
state: unavailable
- action: notify.telegram
data:
message: 🚨 Round LED St restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_round_led_st_restart_key
- alias: storage_round_led_restart_key_toggle
id: storage_round_led_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.round_led_st
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_round_led_st_restart_key
- alias: system_breather_control_user
id: system_breather_control_user
initial_state: true
mode: parallel
triggers:
- trigger: state
entity_id: fan.breather_mb
to: 'off'
id: id_state_mb
- trigger: state
entity_id: fan.breather_s
to: 'off'
id: id_state_s
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- choose:
- conditions:
- condition: trigger
id: id_state_mb
sequence:
- action: switch.turn_off
entity_id: switch.system_breather_manual_mb
- conditions:
- condition: trigger
id: id_state_s
sequence:
- action: switch.turn_off
entity_id: switch.system_breather_manual_s
- alias: system_light_control
id: system_light_control
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Включи свет
id: to_on_alice
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_mb''
}}'
- condition: trigger
id: to_on_alice
sequence:
- action: light.turn_on
entity_id: light.round_led_mb
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_s''
}}'
sequence:
- action: light.turn_on
entity_id: light.square_led_s
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_v''
}}'
sequence:
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_k''
}}'
- condition: trigger
id: to_on_alice
sequence:
- action: light.turn_on
entity_id: light.round_led_k
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_hb''
}}'
sequence:
- action: light.turn_on
entity_id: light.0x00158d000223921b_channel_1
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_b''
}}'
sequence:
- action: light.turn_on
entity_id: light.0x00158d0002a36433_channel_2
- conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_k''
}}'
- condition: trigger
id: to_off_alice
sequence:
- action: light.turn_off
entity_id: group.lights_k
- alias: system_presence_dima
id: system_presence_dima
triggers:
- trigger: state
entity_id: person.dima
not_from: home
to: home
for:
seconds: 5
id: to_just_arrived
- trigger: state
entity_id: input_select.dima_status_dropdown
to: Just Arrived
for:
minutes: 3
id: to_home
- trigger: state
entity_id: person.dima
from: home
for:
seconds: 5
id: to_just_left
- trigger: state
entity_id: input_select.dima_status_dropdown
to: Just Left
for:
minutes: 3
id: to_away
- trigger: state
entity_id: input_select.dima_status_dropdown
to: Away
for:
hours: 6
id: to_extended_away
actions:
- action: input_select.select_option
data:
entity_id: input_select.dima_status_dropdown
option: '{{ trigger.id | replace(''to_'', '''', 1) | replace(''_'', '' '') |
title }}'
- alias: system_presence_sandra
id: system_presence_sandra
triggers:
- trigger: state
entity_id: person.sandra
not_from: home
to: home
for:
seconds: 5
id: to_just_arrived
- trigger: state
entity_id: input_select.sandra_status_dropdown
to: Just Arrived
for:
minutes: 3
id: to_home
- trigger: state
entity_id: person.sandra
from: home
for:
seconds: 5
id: to_just_left
- trigger: state
entity_id: input_select.sandra_status_dropdown
to: Just Left
for:
minutes: 3
id: to_away
- trigger: state
entity_id: input_select.sandra_status_dropdown
to: Away
for:
hours: 6
id: to_extended_away
actions:
- action: input_select.select_option
data:
entity_id: input_select.sandra_status_dropdown
option: '{{ trigger.id | replace(''to_'', '''', 1) | replace(''_'', '' '') |
title }}'
- alias: system_presence_vova
id: system_presence_vova
triggers:
- trigger: state
entity_id: person.vova
not_from: home
to: home
for:
seconds: 5
id: to_just_arrived
- trigger: state
entity_id: input_select.vova_status_dropdown
to: Just Arrived
for:
minutes: 3
id: to_home
- trigger: state
entity_id: person.vova
from: home
for:
seconds: 5
id: to_just_left
- trigger: state
entity_id: input_select.vova_status_dropdown
to: Just Left
for:
minutes: 3
id: to_away
- trigger: state
entity_id: input_select.vova_status_dropdown
to: Away
for:
hours: 6
id: to_extended_away
actions:
- action: input_select.select_option
data:
entity_id: input_select.vova_status_dropdown
option: '{{ trigger.id | replace(''to_'', '''', 1) | replace(''_'', '' '') |
title }}'
- alias: system_presence_sasha
id: system_presence_sasha
triggers:
- trigger: state
entity_id: person.sasha
not_from: home
to: home
for:
seconds: 5
id: to_just_arrived
- trigger: state
entity_id: input_select.sasha_status_dropdown
to: Just Arrived
for:
minutes: 3
id: to_home
- trigger: state
entity_id: person.sasha
from: home
for:
seconds: 5
id: to_just_left
- trigger: state
entity_id: input_select.sasha_status_dropdown
to: Just Left
for:
minutes: 3
id: to_away
- trigger: state
entity_id: input_select.sasha_status_dropdown
to: Away
for:
hours: 6
id: to_extended_away
actions:
- action: input_select.select_option
data:
entity_id: input_select.sasha_status_dropdown
option: '{{ trigger.id | replace(''to_'', '''', 1) | replace(''_'', '' '') |
title }}'
- alias: system_presence_vova_at_home
id: system_presence_vova_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.vova
to: home
for:
minutes: 3
actions:
- action: notify.telegram
data:
message: 👱 Вова дома
- alias: system_presence_sandra_at_home
id: system_presence_sandra_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.sandra
to: home
for:
minutes: 3
actions:
- action: notify.telegram
data:
message: 👧 Саша дома
- alias: system_sasha_tracker
id: system_sasha_tracker
initial_state: true
triggers:
- trigger: state
entity_id: input_boolean.sasha_tracker
actions:
- action: device_tracker.see
data:
dev_id: sasha
location_name: '{% if is_state(''input_boolean.sasha_tracker'',''on'')%}home{%else%}not_home{%endif%}'
- alias: system_guest_tracker
id: system_guest_tracker
initial_state: true
triggers:
- trigger: state
entity_id: switch.system_guest_mode
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ = trigger.from_state.state }}\n"
actions:
- action: device_tracker.see
data:
dev_id: guest
location_name: '{% if is_state(''switch.system_guest_mode'',''on'')%}home{%else%}not_home{%endif%}'
- alias: system_sasha_audio_tts
id: system_sasha_audio_tts
initial_state: true
triggers:
- trigger: state
entity_id: input_boolean.sasha_tracker
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
actions:
- action: media_player.volume_set
data:
entity_id:
- media_player.yandex_hb
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_hb
media_content_id: '{% set name1 = [''С+аша, '',''Сан+ёк, '',''Алекс+андр, '',''М+итрич,
'',''Алекс+андр Дм+итриевич, '', ''М+аленький хоз+яин, '', ''З+аяц, '', ''Зайка,
''] | random %} {% set greet2 = [''пок+а'',''до свид+ания'',''до встр+ечи'',''чава-как+ава'',''всег+о
хор+ошего'', ''я б+уду скуч+ать''] | random %} {% set greet1 = [''прив+ет'',''здар+ова'',''здр+авствуй'',''здр+авия
жел+аю'',''сал+ют'','' Ур+а Ур+а Ты верн+улся дом+ой''] | random %} {{name1}}
{% if is_state(''input_boolean.sasha_tracker'',''on'')%}{{greet1}}{%else%}{{greet2}}{%endif%}'
- action: notify.telegram
data:
message: Фотография
data:
photo:
- url: secret entrance_snap
caption: 👶 Санек {%if is_state('input_boolean.sasha_tracker','on')%}дома{%else%}уходит{%endif%}
- alias: system_presence_sergey_at_home
id: system_presence_sergey_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.sergey
to: home
from: not_home
actions:
- action: notify.telegram
data:
message: 👴 Сережа пришел
- alias: system_presence_lena_at_home
id: system_presence_lena_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.elena
to: home
from: not_home
actions:
- action: notify.telegram
data:
message: 👱 Лена пришла
- alias: system_presence_mama_at_home
id: system_presence_mama_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.natasha
to: home
from: not_home
actions:
- action: notify.telegram
data:
message: 👱 Мама пришла
- alias: system_presence_papa_at_home
id: system_presence_papa_at_home
initial_state: true
triggers:
- trigger: state
entity_id: person.vasya
to: home
from: not_home
actions:
- action: notify.telegram
data:
message: 👱 Папа пришел
- alias: toilet_fan_on
id: toilet_fan_on
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b97111_action
click_type: single
conditions:
- condition: state
entity_id: group.lights_t
state: 'on'
- condition: state
entity_id: fan.esp32_node_b_fan_t
state: 'off'
- condition: state
entity_id: switch.esp32_node_b_fan_b_manual_mode
state: 'off'
actions:
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_b
- action: fan.turn_on
entity_id: fan.esp32_node_b_fan_t
- alias: toilet_fan_off
id: toilet_fan_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b97111_action
click_type: single
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.fan_t
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.short_fan_t
conditions:
- condition: state
entity_id: fan.esp32_node_b_fan_t
state: 'on'
actions:
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_t
- action: timer.cancel
entity_id: timer.fan_t
- alias: toilet_fan_timer_on
id: toilet_fan_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: fan.esp32_node_b_fan_t
to: 'on'
actions:
- action: timer.cancel
entity_id: timer.fan_t
- action: timer.start
entity_id: timer.fan_t
- alias: toilet_fan_timer_restart
id: toilet_fan_timer_restart
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e54280_motion
conditions:
- condition: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
state: 'on'
- condition: state
entity_id: fan.esp32_node_b_fan_t
state: 'on'
- condition: template
value_template: '{{(as_timestamp(now()) - as_timestamp(state_attr(''automation.toilet_fan_timer_restart'',
''last_triggered''),0)|int(0)) > 10 }}'
actions:
- action: timer.cancel
entity_id: timer.fan_t
- action: timer.start
entity_id: timer.fan_t
- alias: toilet_fan_auto
id: toilet_fan_auto
initial_state: true
triggers:
- trigger: time_pattern
minutes: /30
conditions:
- condition: state
entity_id: input_boolean.auto_fan_t
state: 'on'
- condition: state
entity_id: switch.esp32_node_b_fan_b_manual_mode
state: 'off'
- condition: state
entity_id: fan.esp32_node_b_fan_t
state: 'off'
- condition: state
entity_id: timer.fan_b
state: idle
- condition: template
value_template: '{{(as_timestamp(now())|int(0) - as_timestamp(states.fan.esp32_node_b_fan_t.last_changed)|int(0)
) > 20*60 }}'
- condition: template
value_template: '{{not (6>=now().hour|int(0) >=0 or is_state(''switch.system_security_mode'',''on'')
or (is_state(''binary_sensor.0x00158d0001ef2ffc_contact'',''on'') and (as_timestamp(now())-as_timestamp(states.binary_sensor[''0x00158d0001ef2ffc_contact''].last_changed)
> 10*60)))}}'
actions:
- action: fan.turn_off
entity_id: fan.esp32_node_b_fan_b
- action: fan.turn_on
entity_id: fan.esp32_node_b_fan_t
- alias: toilet_light_off_auto
id: toilet_light_off_auto
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.main_light_t
conditions:
- condition: state
entity_id: binary_sensor.presence_t
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: group.lights_t
state: 'on'
actions:
- action: light.turn_off
entity_id: light.0x00158d0002a36f7f_channel_1
- action: light.turn_off
entity_id: light.esp32_node_b_light
data:
transition: 5
- alias: toilet_timer_on
id: toilet_timer_on
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.presence_t
from: 'on'
to: 'off'
- trigger: state
entity_id: group.lights_t
to: 'on'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: timer.cancel
entity_id: timer.main_light_t
- action: timer.start
entity_id: timer.main_light_t
- alias: toilet_timer_stop
id: toilet_timer_stop
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.presence_t
from: 'off'
to: 'on'
- trigger: state
entity_id: group.lights_t
to: 'off'
actions:
- action: timer.cancel
entity_id: timer.main_light_t, timer.door_t
- alias: toilet_timer_stop_motion_with_light_presence
id: toilet_timer_stop_motion_with_light_presence
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0001e54280_motion
to: 'on'
conditions:
and:
- condition: state
entity_id: binary_sensor.presence_t
state: 'on'
- condition: state
entity_id: group.lights_t
state: 'on'
- or:
- condition: state
entity_id: timer.main_light_t
state: active
- condition: state
entity_id: timer.door_t
state: active
actions:
- action: timer.cancel
entity_id: timer.main_light_t, timer.door_t
- alias: toilet_auto_light_on
id: toilet_auto_light_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001e54280_motion
- trigger: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
to: 'on'
from: 'off'
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b97111_action
click_type: single
conditions:
- condition: state
entity_id: group.lights_t
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
sequence:
- action: light.turn_on
entity_id: light.0x00158d0002a36f7f_channel_1
- conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.esp32_node_b_light
- alias: toilet_light_toggle
id: toilet_light_toggle
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x54ef4410005054cc_action
click_type: button_2_single
actions:
- choose:
- conditions:
- condition: state
entity_id: group.lights_t
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.0x00158d0002a36f7f_channel_1, light.esp32_node_b_light
- conditions:
- condition: state
entity_id: group.lights_t
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.0x00158d0002a36f7f_channel_1
- alias: toilet_indicator
id: toilet_indicator
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
to: null
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ != trigger.from_state.state\n}}"
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
state: 'on'
sequence:
- action: light.turn_on
data:
entity_id: light.esp32_node_hs_toilet
effect: Color Wipe
brightness: 100
default:
- action: light.turn_off
entity_id: light.esp32_node_hs_toilet
- alias: vova_breather_auto_co2
id: vova_breather_auto_co2
initial_state: true
triggers:
- trigger: time_pattern
minutes: /3
conditions:
- condition: state
entity_id: switch.system_breather_auto_v
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: switch.system_breather_manual_v
state: 'on'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0003fa6cf5_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_v_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_v
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
sequence:
- action: fan.turn_on
entity_id: fan.breather_v
- condition: numeric_state
entity_id: sensor.esp32_node_v_co2
above: input_number.co2_high_limit
- condition: state
entity_id: switch.system_breather_auto_speed_v
state: 'on'
- action: fan.set_percentage
entity_id: fan.breather_v
data:
percentage: '{{states(''sensor.breather_set_speed_v'')|int(0) }}'
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0003fa6cf5_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_v_co2
above: input_number.co2_high_limit
- condition: state
entity_id: binary_sensor.breather_v
state: 'on'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: state
entity_id: switch.system_breather_auto_speed_v
state: 'on'
- condition: numeric_state
entity_id: sensor.breather_set_speed_v
above: 0
sequence:
- action: fan.set_percentage
entity_id: fan.breather_v
data:
percentage: '{{states(''sensor.breather_set_speed_v'')|int(0) }}'
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0003fa6cf5_contact
state: 'off'
- condition: numeric_state
entity_id: sensor.esp32_node_v_co2
below: input_number.co2_low_limit
- condition: state
entity_id: binary_sensor.breather_v
state: 'on'
sequence:
- action: fan.turn_off
entity_id: fan.breather_v
- conditions:
- condition: state
entity_id: binary_sensor.0x00158d0003fa6cf5_contact
state: 'on'
- condition: state
entity_id: binary_sensor.breather_v
state: 'on'
sequence:
- action: fan.turn_off
entity_id: fan.breather_v
- alias: vova_breather_auto_timer
id: vova_breather_auto_timer
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.digma_ir_v_breather_remote_used
to: 'on'
id: ir_used_remote
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи вентиляцию
id: to_off_alice
- trigger: event
event_type: yandex_intent
event_data:
text: Включи вентиляцию
id: to_on_alice
- trigger: time
at: '21:00:00'
id: time_trigger_night
- trigger: time
at: 09:00:00
id: time_trigger_day
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_off_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_v''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_v
state: 'on'
then:
- action: fan.turn_off
entity_id: fan.breather_v
- action: switch.turn_on
entity_id: switch.system_breather_auto_v
- conditions:
- condition: trigger
id: to_on_alice
sequence:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_v''
}}'
- if:
- condition: state
entity_id: binary_sensor.breather_v
state: 'off'
then:
- action: switch.turn_on
entity_id: switch.system_breather_manual_v
- action: fan.turn_on
entity_id: fan.breather_v
- conditions:
- condition: trigger
id: time_trigger_night
sequence:
- action: switch.turn_on
entity_id: switch.system_breather_manual_v
- action: fan.set_percentage
entity_id: fan.breather_v
data:
percentage: 50
- action: fan.set_preset_mode
data:
entity_id: fan.purifier2s
preset_mode: Silent
- conditions:
- condition: trigger
id: time_trigger_day
sequence:
- action: fan.turn_off
entity_id: fan.breather_v
- action: timer.cancel
entity_id: timer.breather_v
- action: switch.turn_on
entity_id: switch.system_breather_auto_v
- action: fan.set_preset_mode
data:
entity_id: fan.purifier2s
preset_mode: Silent
- alias: vova_breather_plug_toggle
id: vova_breather_plug_toggle
initial_state: true
max_exceeded: silent
mode: queued
max: 10
triggers:
- trigger: state
entity_id: switch.0x00158d000344998e_plug
to: 'off'
for:
seconds: 30
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.0x00158d000344998e_plug
- alias: vova_breather_switches_interlock
id: vova_breather_switches_interlock
triggers:
- trigger: state
entity_id:
- switch.system_hourly_mode_breather_v
- switch.system_breather_auto_v
- switch.system_breather_manual_v
conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''on'' }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: homeassistant.turn_off
target:
entity_id: '{% if trigger.from_state.entity_id == ''switch.system_hourly_mode_breather_v''
%} {{ ''switch.system_breather_auto_v'', ''switch.system_breather_manual_v''
}} {% elif trigger.from_state.entity_id == ''switch.system_breather_auto_v''
%} {{ ''switch.system_hourly_mode_breather_v'', ''switch.system_breather_manual_v''
}} {% else %} {{ ''switch.system_hourly_mode_breather_v'', ''switch.system_breather_auto_v''
}} {% endif %}'
- alias: vova_breather_switches_default
id: vova_breather_switches_default
triggers:
- trigger: template
value_template: '{{ is_state(''switch.system_hourly_mode_breather_v'',''off'')
and is_state(''switch.system_breather_auto_v'',''off'') and is_state(''switch.system_breather_manual_v'',''off'')
}}'
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: switch.turn_on
entity_id: switch.system_breather_auto_v
- alias: vova_main_lamp_left_button
id: vova_main_lamp_left_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001712d55_action
click_type: button_1_single
conditions:
- condition: template
value_template: '{{ states(''light.square_led_v'') in [''on'',''off''] and states(''light.square_led_v_nightlight'')
in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.square_led_v_nightlight
state: 'on'
- condition: state
entity_id: group.lights_main_v
state: 'off'
sequence:
- action: yeelight.set_mode
data:
entity_id: light.square_led_v
mode: normal
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: state
entity_id: binary_sensor.square_led_v_nightlight
state: 'off'
- condition: state
entity_id: group.lights_main_v
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: state
entity_id: group.lights_main_v
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.square_led_v, light.square_led_v_nightlight
- alias: vova_main_lamp_right_button
id: vova_main_lamp_right_button
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001712d55_action
click_type: button_2_single
conditions:
- condition: template
value_template: '{{ states(''light.square_led_v'') in [''on'',''off''] and states(''light.square_led_v_nightlight'')
in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.square_led_v_nightlight
state: 'on'
- condition: state
entity_id: group.lights_main_v
state: 'off'
sequence:
- action: yeelight.set_mode
data:
entity_id: light.square_led_v
mode: normal
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 14
color_temp_kelvin: 3000
- conditions:
- condition: state
entity_id: binary_sensor.square_led_v_nightlight
state: 'off'
- condition: state
entity_id: group.lights_main_v
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 14
color_temp_kelvin: 3000
- conditions:
- condition: state
entity_id: group.lights_main_v
state: 'on'
sequence:
- action: light.turn_off
entity_id: light.square_led_v, light.square_led_v_nightlight
- alias: vova_square_led_restart
id: vova_square_led_restart
initial_state: true
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.square_led_v
state: unavailable
for:
minutes: 2
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_square_led_v_restart_key
state: 'on'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ states('switch.shelly_1pm_led_v')\
\ not in ignore }} \n"
actions:
- repeat:
while:
- condition: state
entity_id: light.square_led_v
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.shelly_1pm_led_v
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.shelly_1pm_led_v
- action: notify.telegram
data:
message: 🚨 Square LED V restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.square_led_v
state: unavailable
- action: notify.telegram
data:
message: 🚨 Square LED V restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_square_led_v_restart_key
- alias: vova_square_led_restart_key_toggle
id: vova_square_led_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.square_led_v
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_square_led_v_restart_key
- alias: vova_main_lamp_switch_on_if_off
id: vova_main_lamp_switch_on_if_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001712d55_action
click_type: button_1_single
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001712d55_action
click_type: button_2_single
conditions:
- condition: state
entity_id: switch.shelly_1pm_led_v
state: 'off'
actions:
- action: switch.turn_on
entity_id: switch.shelly_1pm_led_v
- alias: vova_main_lamp_off_bed_strips_on
id: vova_main_lamp_off_bed_strips_on
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: group.lights_main_v
to: 'off'
conditions:
- condition: state
entity_id: binary_sensor.light_outside_mi
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: light.turn_on
entity_id: light.d1mini_bed_leds_strip_dima, light.d1mini_bed_leds_strip_sandra
data:
brightness: 26
- alias: vova_led_strip_bed_control_on
id: vova_led_strip_bed_control_on
mode: parallel
max_exceeded: silent
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d00053faae1_motion
id: on_dima
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d00044c7971_motion
id: on_sandra
conditions:
- condition: state
entity_id: binary_sensor.bed_led_enable
state: 'on'
actions:
- choose:
- conditions:
- condition: trigger
id: on_sandra
- condition: state
entity_id: light.d1mini_bed_leds_strip_sandra
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.d1mini_bed_leds_strip_sandra
data:
brightness: '{%- if is_state(''binary_sensor.tod_day'',''off'') -%} 50 {%-
else -%} 100 {% endif %}
'
rgb_color:
- 255
- 255
- 255
transition: 2
- conditions:
- condition: trigger
id: on_dima
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima
state: 'off'
sequence:
- action: light.turn_on
entity_id: light.d1mini_bed_leds_strip_dima
data:
brightness: '{%- if is_state(''binary_sensor.tod_day'',''off'') -%} 100
{%- else -%} 153 {% endif %}
'
rgb_color:
- 255
- 255
- 255
transition: 2
- conditions:
- condition: trigger
id: on_sandra
- condition: state
entity_id: light.d1mini_bed_leds_strip_sandra
state: 'on'
sequence:
- action: timer.cancel
entity_id: timer.led_strip_bed_sandra_v
- action: timer.start
entity_id: timer.led_strip_bed_sandra_v
- conditions:
- condition: trigger
id: on_dima
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima
state: 'on'
sequence:
- action: timer.cancel
entity_id: timer.led_strip_bed_dima_v
- action: timer.start
entity_id: timer.led_strip_bed_dima_v
- alias: vova_led_strip_bed_timer_control
id: vova_led_strip_bed_timer_control
mode: parallel
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: light.d1mini_bed_leds_strip_sandra
to: null
id: is_sandra
- trigger: state
entity_id: light.d1mini_bed_leds_strip_dima
to: null
id: is_dima
actions:
- choose:
- conditions:
- condition: trigger
id: is_sandra
sequence:
- action: timer.{{'start' if is_state('light.d1mini_bed_leds_strip_sandra','on')
else 'cancel'}}
entity_id: timer.led_strip_bed_sandra_v
- conditions:
- condition: trigger
id: is_dima
sequence:
- action: timer.{{'start' if is_state('light.d1mini_bed_leds_strip_dima','on')
else 'cancel'}}
entity_id: timer.led_strip_bed_dima_v
- alias: vova_led_strip_bed_control_off
id: vova_led_strip_bed_control_off
mode: parallel
max_exceeded: silent
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_bed_dima_v
id: off_dima
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.led_strip_bed_sandra_v
id: off_sandra
actions:
- choose:
- conditions:
- condition: trigger
id: off_sandra
sequence:
- wait_template: '{{states(''light.d1mini_bed_leds_strip_sandra'') in [''on'',''off'']}}'
- repeat:
sequence:
- action: light.turn_off
entity_id: light.d1mini_bed_leds_strip_sandra
data:
transition: 10
- delay:
seconds: 1
until:
- condition: not
conditions:
- condition: state
entity_id: light.d1mini_bed_leds_strip_sandra
state: 'on'
- conditions:
- condition: trigger
id: off_dima
sequence:
- wait_template: '{{states(''light.d1mini_bed_leds_strip_dima'') in [''on'',''off'']}}'
- repeat:
sequence:
- action: light.turn_off
entity_id: light.d1mini_bed_leds_strip_dima
data:
transition: 10
- delay:
seconds: 1
until:
- condition: not
conditions:
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima
state: 'on'
- alias: vova_led_strip_bed_control_unavailable
id: vova_led_strip_bed_control_unavailable
mode: parallel
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: light.d1mini_bed_leds_strip_dima
from: unavailable
to: 'on'
id: un_dima
- trigger: state
entity_id: light.d1mini_bed_leds_strip_sandra
from: unavailable
to: 'on'
id: un_sandra
actions:
- choose:
- conditions:
- condition: trigger
id: un_sandra
sequence:
- not:
- condition: state
entity_id: timer.led_strip_bed_sandra_v
state: active
- action: timer.cancel
entity_id: timer.led_strip_bed_sandra_v
- action: timer.start
entity_id: timer.led_strip_bed_sandra_v
- conditions:
- condition: trigger
id: un_dima
sequence:
- not:
- condition: state
entity_id: timer.led_strip_bed_sandra_v
state: active
- action: timer.cancel
entity_id: timer.led_strip_bed_dima_v
- action: timer.start
entity_id: timer.led_strip_bed_dima_v
- alias: vova_led_strip_bed_restart
id: vova_led_strip_bed_restart
initial_state: false
triggers:
- trigger: time_pattern
minutes: /1
conditions:
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima, light.d1mini_bed_leds_strip_sandra
state: unavailable
for:
minutes: 1
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: switch.system_led_strip_bed_v_restart_key
state: 'on'
actions:
- repeat:
while:
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima
state: unavailable
- condition: template
value_template: '{{ repeat.index <= 5 }}'
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d0001a248e3_channel_1
- delay:
seconds: 15
- action: switch.turn_on
entity_id: switch.0x00158d0001a248e3_channel_1
- action: notify.telegram
data:
message: 🚨 LED Strip Bed V restart done({{repeat.index}})!
- delay:
seconds: 30
- condition: state
entity_id: light.d1mini_bed_leds_strip_dima
state: unavailable
- action: notify.telegram
data:
message: 🚨 Led Strip Bed V restart unsuccessful!
- action: switch.turn_off
entity_id: switch.system_led_strip_bed_v_restart_key
- alias: vova_led_strip_bed_restart_key_toggle
id: vova_led_strip_bed_restart_key_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: light.d1mini_bed_leds_strip_dima
from: unavailable
actions:
- action: switch.turn_on
entity_id: switch.system_led_strip_bed_v_restart_key
- alias: vova_main_light_off_with_occupancy
id: vova_main_light_off_with_occupancy
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.occupancy_v
to: 'off'
for:
hours: 2
conditions:
- condition: state
entity_id: group.lights_v
state: 'on'
actions:
- action: light.turn_off
entity_id: light.square_led_v, light.square_led_v_nightlight, light.d1mini_bed_leds_strip_dima,
light.d1mini_bed_leds_strip_sandra, light.0x54ef441000d4e7fd_light
data:
transition: 15
- alias: vova_led_color_control
id: vova_led_color_control
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00016bdb4a_action
conditions:
- condition: template
value_template: '{{ states(''light.0x54ef441000d4e7fd_light'') in [''on'',''off'']
}}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''single'' }}'
sequence:
- action: light.toggle
entity_id: light.0x54ef441000d4e7fd_light
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''double'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000d4e7fd_light
data:
brightness: 230
color_temp_kelvin: 5000
- conditions:
- condition: template
value_template: '{{ trigger.event.data.click_type == ''hold'' }}'
sequence:
- action: light.turn_on
entity_id: light.0x54ef441000d4e7fd_light
data:
brightness: 14
color_temp_kelvin: 3000
- alias: vova_main_light_control_with_alice
id: vova_main_light_control_with_alice
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Выключи свет в Вовиной комнате
id: to_off_alice
- trigger: event
event_type: yandex_intent
event_data:
text: Включи свет в Вовиной комнате
id: to_on_alice
conditions:
- condition: template
value_template: '{{ states(''light.square_led_v'') in [''on'',''off''] and states(''light.square_led_v_nightlight'')
in [''on'',''off''] }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_off_alice
sequence:
- action: light.turn_off
entity_id: light.square_led_v
- conditions:
- condition: trigger
id: to_on_alice
sequence:
- action: light.turn_on
entity_id: light.square_led_v
data:
brightness: 230
color_temp_kelvin: 5000
- alias: system_printer_toner_level
id: system_printer_toner_level
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id:
- sensor.hp_178nw_black
- sensor.hp_178nw_cyan
- sensor.hp_178nw_magenta
- sensor.hp_178nw_yellow
below: 30
actions:
- action: notify.telegram
data:
message: 🖨 Внимание! Необходимо заказать картриджи. B {{states('sensor.hp_178nw_black')|int(0)}}%,
C {{states('sensor.hp_178nw_cyan')|int(0)}}%, M {{states('sensor.hp_178nw_magenta')|int(0)}}%,
Y {{states('sensor.hp_178nw_yellow')|int(0)}}%
- alias: system_printer_offline
id: system_printer_offline
initial_state: true
triggers:
- trigger: state
entity_id: sensor.hp_color_laser_mfp_178nw
to: unavailable
for:
minutes: 5
actions:
- action: notify.telegram
data:
message: ⚠ Принтер не в сети! Проверьте питание!
- alias: bathroom_miscale_weight_person
id: bathroom_miscale_weight_person
triggers:
- trigger: state
entity_id: binary_sensor.weight_changed
from: 'off'
to: 'on'
actions:
- variables:
who_could_weigh: "{%- macro weight_person() -%} \n {%- for item in states.person\
\ if\n (item.state == 'home' and 'input_number.weight_' + item.name | lower\
\ in\n states.input_number | selectattr('entity_id', 'search', '^input_number.weight_')\n\
\ | map(attribute='entity_id') | list ) -%} \n {%- set x = states('input_number.weight_'\
\ + item.name | lower) | float(0) | round(1) -%} \n {%- set y = (x *\
\ 3 / 100) -%} \n {%- if (x > 0) and ((x - y) < (states('sensor.8cd0b2a04f02_weight')\
\ | float(0) | round(1)) < (x + y)) -%} \n {{ item.name | lower }},\
\ \n {%- endif -%} \n {%- endfor -%}\n{%- endmacro -%} {{ weight_person().split(',')\
\ | select(\"ne\", \"\") | sort | unique | list }}"
- if:
- condition: template
value_template: '{{ who_could_weigh | count == 1 }} '
then:
- action: input_number.set_value
data:
entity_id: '{{ ''input_number.weight_'' + who_could_weigh | first }} '
value: '{{ states(''sensor.8cd0b2a04f02_weight'') | float(0) | round(1) }}'
- alias: security_everybody_out_1min
id: security_everybody_out_1min
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.family_home
to: 'off'
for:
minutes: 1
actions:
- action: notify.mobile_app_iphone_16_pro_dima
data:
message: Включение режима охраны через 1 минуту!
title: Никого нет дома!
data:
actions:
- action: guestmode
title: Гостевой режим
authenticationRequired: false
activationMode: background
icon: sfsymbols:person.circle.fill
- alias: security_everybody_out_reply_from_app
id: security_everybody_out_reply_from_app
initial_state: true
triggers:
- trigger: event
event_type: mobile_app_notification_action
event_data:
service: guestmode
actions:
- action: switch.turn_on
entity_id: switch.system_guest_mode
- alias: security_wrapper
id: security_wrapper
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.family_home
to: 'off'
for:
minutes: 2
id: to_on
- trigger: state
entity_id: binary_sensor.family_home
to: 'on'
for:
seconds: 15
id: to_off
conditions:
- condition: state
entity_id: switch.system_guest_mode
state: 'off'
actions:
- choose:
- conditions:
- condition: trigger
id: to_on
sequence:
- action: switch.turn_on
entity_id: switch.system_security_mode
- conditions:
- condition: trigger
id: to_off
sequence:
- action: switch.turn_off
entity_id: switch.system_security_mode, switch.system_guest_mode
- delay:
seconds: 3
- action: notify.telegram
data:
message: 👮 Режим охраны {{ iif(is_state('switch.system_security_mode','off'),
'выключен!', 'включен!', '')}}
- alias: security_state_change
id: security_state_change
initial_state: true
triggers:
- trigger: state
entity_id: switch.system_security_mode
to: null
for:
seconds: 15
actions:
- choose:
- conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'on'
sequence:
- action: notify.telegram
data:
message: 🏢 Никого нет дома, выключаем освещение!
- action: script.turn_on
entity_id: script.away_mode_on
- action: notify.telegram
data:
message: 🔔 Освещение выключено!
- conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
sequence:
- action: input_boolean.turn_off
data:
entity_id: switch.system_security_mode
- action: script.turn_on
entity_id: script.away_mode_off
- alias: security_sensors_state_change
id: security_sensors_state_change
initial_state: true
mode: queued
max: 25
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d00027129ae_contact
- binary_sensor.0x00158d0001ef2ffc_contact
- binary_sensor.0x00158d0002a14c5e_contact
- binary_sensor.0x00158d0002529b9c_contact
- binary_sensor.0x00158d00025315e9_contact
- binary_sensor.0x00158d0001e5d6be_contact
- binary_sensor.582d344031f7_contact
- binary_sensor.0x00158d0002531749_contact
- binary_sensor.0x00158d00025371f6_contact
- binary_sensor.0x00158d000200ad58_contact
- binary_sensor.0x00158d0003fa6cf5_contact
- binary_sensor.0x00158d00025370d1_contact
to: null
- trigger: state
entity_id:
- binary_sensor.0x00158d0001ae9f61_motion
- binary_sensor.0x00158d0001aea602_motion
- binary_sensor.0x00158d0003f27ce2_motion
- binary_sensor.0x00158d0001e05856_motion
- binary_sensor.0x00158d0001e53cda_motion
- binary_sensor.0x00158d0001e54280_motion
- binary_sensor.0x00158d000224f89f_motion
- binary_sensor.0x00158d000236bb94_motion
- binary_sensor.0x00158d000236bc6d_motion
- binary_sensor.0x00158d0002b4729d_motion
- binary_sensor.0x00158d0002b482e9_motion
- binary_sensor.0x00158d0002b48381_motion
- binary_sensor.0x00158d0003140824_motion
- binary_sensor.0x00158d0001d5995e_motion
- binary_sensor.0x00158d00044c7971_motion
- binary_sensor.0x00158d00053faae1_motion
- binary_sensor.g5_flex_entrance_motion
to: 'on'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'on'
- condition: state
entity_id: timer.security_delay
state: idle
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- action: notify.telegram
data:
message: 👮 Сработал датчик {{trigger.to_state.attributes.friendly_name}}!
- alias: security_alarm_delay
id: security_alarm_delay
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.582d344031f7_contact
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'on'
actions:
- action: timer.cancel
entity_id: timer.security_delay
- action: timer.start
entity_id: timer.security_delay
- alias: security_main_door_vibration
id: security_main_door_vibration
initial_state: true
triggers:
- trigger: state
entity_id: sensor.0x00158d0002b5fbc1_action
to: vibration
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'on'
actions:
- action: notify.telegram
data:
message: 🚪 Внимание! Главная дверь - Вибрация!
- alias: security_sensors_state_change_night
id: security_sensors_state_change_night
initial_state: true
mode: queued
max: 25
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d00025371f6_contact
- binary_sensor.0x00158d000200ad58_contact
- binary_sensor.0x00158d0003fa6cf5_contact
- binary_sensor.0x00158d00025370d1_contact
- binary_sensor.582d344031f7_contact
- binary_sensor.0x00158d0001e5d6be_contact
- binary_sensor.0x00158d0002531749_contact
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: notify.telegram
data:
message: '{{"\U0001f46e"}} {%-if trigger.to_state.attributes.device_class==''window''
and trigger.to_state.state==''on''%}Открыто окно {{trigger.to_state.attributes.friendly_name}}
{%-elif trigger.to_state.attributes.device_class==''window'' and trigger.to_state.state==''off''%}Окно
закрыто {{trigger.to_state.attributes.friendly_name}} {%-elif trigger.to_state.attributes.device_class==''door''
and trigger.to_state.state==''on''%}Дверь открыта {{trigger.to_state.attributes.friendly_name}}
{%-elif trigger.to_state.attributes.device_class==''door'' and trigger.to_state.state==''off''%}Дверь
закрыта {{trigger.to_state.attributes.friendly_name}} {%-else%}NA{%endif%}'
- alias: system_error_counter
id: system_error_counter
initial_state: true
mode: parallel
max: 25
max_exceeded: silent
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: ERROR
conditions:
- condition: template
value_template: '{{ not ''system_error_counter'' in (trigger.event.data.message|string)
}}'
- condition: template
value_template: '{{ not ''a0d7b954_ide'' in (trigger.event.data.message|string)
}}'
actions:
- action: counter.increment
entity_id: counter.error_counter
- alias: system_warning_counter
id: system_warning_counter
mode: parallel
max: 25
max_exceeded: silent
initial_state: true
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: WARNING
conditions:
- condition: template
value_template: '{{ not ''system_warning_counter'' in (trigger.event.data.message|string)
}}'
- condition: template
value_template: '{{ not ''a0d7b954_ide'' in (trigger.event.data.message|string)
}}'
actions:
- action: counter.increment
entity_id: counter.warning_counter
- alias: system_triggered_automations_counter
id: system_triggered_automations_counter
mode: parallel
max: 25
max_exceeded: silent
initial_state: true
triggers:
- trigger: event
event_type: automation_triggered
conditions:
- condition: template
value_template: '{{ not ''system_triggered_automations_counter'' in (trigger.event.data.name|string)
}}'
- condition: template
value_template: '{{ not ''system_esphome_ble_advert'' in (trigger.event.data.name|string)
}}'
actions:
- action: counter.increment
entity_id: counter.triggered_automations
- alias: system_executed_scripts
id: system_executed_scripts
mode: parallel
max: 25
max_exceeded: silent
triggers:
- trigger: event
event_type: script_started
actions:
- action: counter.increment
entity_id: counter.executed_scripts
- alias: system_start
id: system_start_message
initial_state: true
triggers:
- trigger: homeassistant
event: start
actions:
- action: notify.telegram
data:
message: 😃 Сервер({{state_attr('update.home_assistant_core_update','installed_version')}})
запущен за {{states('sensor.start_time')|int(0)}}сек {{states('sensor.errors_during_boot')|int(0)
| format(morph='ошибка', as_text=false) }}, {{states('sensor.warnings_during_boot')|int(0)|
format(morph='предупреждение', as_text=false) }}
- action: script.turn_on
entity_id: script.system_start
- action: counter.increment
entity_id: counter.restart_counter
- delay:
seconds: 10
- action: homeassistant.reload_config_entry
data:
entry_id: 88ea33f726cb0d5ca6d8d320267c468c
- alias: system_stop
id: system_stop_message
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: homeassistant
event: shutdown
actions:
- action: switch.turn_off
entity_id: switch.system_main_lead
- action: notify.telegram
data:
message: 😡 Сервер({{state_attr('update.home_assistant_core_update','installed_version')}})
остановлен после {{states('sensor.ha_uptime_text').replace('d','д').replace('h','ч').replace('m','м')}}
работы
- alias: system_start_stop_flag_set
id: system_start_stop_flag_set
initial_state: true
triggers:
- trigger: homeassistant
event: start
id: homeassistant_start
- trigger: homeassistant
event: shutdown
actions:
- action: "{% if trigger.id == 'homeassistant_start' -%}\n input_boolean.turn_off\n\
{% else -%}\n input_boolean.turn_on\n{% endif %}\n"
data:
entity_id: input_boolean.ha_shutdown
- action: "{% if trigger.id == 'homeassistant_start' -%}\n automation.turn_on\n\
{% else -%}\n automation.turn_off\n{% endif %}\n"
data:
entity_id:
- automation.system_gw3_state
- automation.system_zb_devices_status
- automation.system_esp_devices_status
- automation.system_xiaomi_gw3_error
- alias: system_github_star
id: system_github_star
initial_state: true
triggers:
- trigger: state
entity_id: sensor.to4ko_myconfig_stars
to: null
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none','0'] %} {{\
\ trigger.from_state.state not in ignore and\n trigger.to_state.state not in\
\ ignore and\n trigger.to_state.state = trigger.from_state.state }}\n"
actions:
- action: notify.telegram
data:
message: '⭐ GitHub Star -> {{ trigger.to_state.state }} '
- alias: system_new_device_tracker_found
id: system_new_device_tracker_found
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: event
event_type: device_tracker_new_device
actions:
- action: notify.telegram
data:
message: '✴ Новое устройство: {{ trigger.event.data.host_name if trigger.event.data.host_name
is defined else ''NA'' }} - ({{ trigger.event.data.entity_id if trigger.event.data.entity_id
is defined else ''NA'' }})'
- alias: system_entity_change
id: system_entity_change
initial_state: true
mode: queued
max: 20
max_exceeded: silent
triggers:
- trigger: event
event_type: entity_registry_updated
conditions:
- condition: template
value_template: '{{ ''mi_11'' not in trigger.event.data.entity_id }}'
- condition: template
value_template: '{{ ''pova_5'' not in trigger.event.data.entity_id }}'
- condition: template
value_template: '{{ ''lower'' not in trigger.event.data.action }}'
- condition: template
value_template: '{{ ''update'' not in trigger.event.data.action }}'
actions:
- action: telegram_bot.send_message
data:
message: '❇ Entity - {{ trigger.event.data.action | capitalize }}: {{ trigger.event.data.old_entity_id+''->''
if trigger.event.data.old_entity_id is defined }}{{ trigger.event.data.entity_id
if trigger.event.data.entity_id is defined else ''NA'' }}'
target: secret tel_chat_id
timeout: 180
- alias: system_device_entity_deletion
id: system_device_entity_deletion
initial_state: true
mode: queued
max: 20
max_exceeded: silent
triggers:
- trigger: event
event_type: device_registry_updated
actions:
- action: python_script.exec
data:
device_id: '{{ trigger.event.data.device_id }}'
source: "registry = hass.data['device_registry']\ndevice = registry.async_get(data['device_id'])\n\
if device and device.name_by_user == 'delete':\n registry.async_remove_device(data['device_id'])\n"
- alias: system_new_day_telegram
id: system_new_day_telegram
initial_state: true
triggers:
- trigger: time
at: 00:00:01
actions:
- action: notify.telegram
data:
message: 🌅 Начался новый день За прошедшие сутки перезагрузок - {{states('counter.restart_counter')|int(0)
}}, ошибок - {{states('counter.error_counter')|int(0) }}, предупреждений -
{{states('counter.warning_counter')|int(0)}}, ошибок входа - {{states('counter.badlogin_counter')|int(0)}}, cработало
автоматизаций - {{states('counter.triggered_automations')|int(0)}}, ошибок
автоматизаций - {{states('counter.automation_error_counter')|int(0)}}, запущенно
скриптов - {{states('counter.executed_scripts')|int(0)}}. Входная дверь открывалась
- {{states('counter.main_door_hb')|int(0)}}раз(а). Чайник включали - {{states('counter.kettle_k')|int(0)}}раз(а)
- action: counter.reset
entity_id:
- counter.warning_counter
- counter.error_counter
- counter.restart_counter
- counter.badlogin_counter
- counter.main_door_hb
- counter.automation_error_counter
- counter.kettle_k
- counter.triggered_automations
- counter.executed_scripts
- counter.toilet_tank
- action: switch.turn_off
entity_id: switch.system_dark_mode
- action: tts.clear_cache
- action: input_select.select_next
entity_id: input_select.dishwasher
- action: automation.turn_on
entity_id: automation.vova_tv_control
- alias: system_weather_to_telegram
id: system_weather_to_telegram
initial_state: true
triggers:
- trigger: time
at: 07:00:00
- trigger: time
at: '21:00:00'
actions:
- action: script.turn_on
entity_id: script.briefing_telegram
- alias: system_login_failure
id: system_login_failure
initial_state: true
triggers:
- trigger: persistent_notification
update_type:
- added
- updated
notification_id: http-login
id: http-login
- trigger: persistent_notification
update_type:
- added
- updated
notification_id: ip-ban
id: ip-ban
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: counter.increment
entity_id: counter.badlogin_counter
- parallel:
- action: telegram_bot.send_message
data:
target: secret tel_chat_id
title: "{%- if trigger.id == 'http-login' %}\n {{- '\\U0001F6AB' -}}\n\
{% else %}\n {{- '\\U000026D4' -}}\n{% endif %}"
message: "{% set ipadress = trigger.notification.message | replace('\\n',\
\ ' ') | regex_replace('.*\\((?=\\d+\\.\\d+\\.\\d+\\.\\d+)') | regex_replace('\\\
).*')\n | replace('Too many login attempts from ', '') %}\n\n{% if trigger.id\
\ == 'http-login' -%}\n Неудачная попытка входа в систему с адреса {{\
\ ipadress }}\n{%- else -%}\n Заблокирован IP адрес {{ ipadress }} после\
\ 5 попыток входа\n{%- endif %}\n"
disable_web_page_preview: true
- action: persistent_notification.dismiss
data:
notification_id: '{{ trigger.id }}'
- alias: system_blocked_ip
id: system_blocked_ip
initial_state: true
triggers:
- trigger: state
entity_id: persistent_notification.ip_ban
to: null
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: notify.telegram
data:
message: '{% set ipadress = trigger.to_state.attributes.message.split(''from
'')[1] | regex_replace(''\s+.*'') %} {{"\U000026d4"}} Заблокирован IP: {{
ipadress }}
'
- action: persistent_notification.dismiss
data:
notification_id: ip_ban
- alias: system_groups_rebuild
id: system_groups_rebuild
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: time_pattern
hours: /1
- trigger: homeassistant
event: start
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: group.set
data:
object_id: updates_monitor
entities: '{%-for state in states.update | selectattr(''attributes.device_class'',
''defined'') | selectattr(''attributes.device_class'', ''eq'',''firmware'')
%} {{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: gw3_zigbee_entities
entities: '{%-for state in states.sensor if state.entity_id.endswith("_zigbee")%}
{{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: gw3_ble_entities
entities: '{%-for state in states.sensor if state.entity_id.endswith("_ble")%}
{{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: gw3_mesh_entities
entities: '{%-for state in states.sensor if state.entity_id.endswith("_mesh")%}
{{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: gw3_zigbee_battery_low
entities: '{%-for state in states.binary_sensor if state.entity_id.endswith("_battery_low")%}
{{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: esp_devices_uptime
entities: '{%-for state in states.sensor if state.entity_id.endswith("_uptime_s")%}
{{ state.entity_id}}{%- if not loop.last -%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: batteries
entities: '{%-for state in states.sensor if (state.entity_id.endswith("_battery")
and ''esp32'' not in state.entity_id)%} {{ state.entity_id}}{%- if not loop.last
-%}, {%- endif -%} {%-endfor%}'
- action: group.set
data:
object_id: lights_all
entities: '{%- for state in states.group if ("lights_" in state.entity_id) %}
{{- expand(state.entity_id)|map(attribute=''entity_id'')|list|join('','')
}}{%- if not loop.last -%}, {%- endif -%} {%- endfor %}'
- alias: system_battery_level_check
id: system_battery_level_check
initial_state: true
triggers:
- trigger: time
at: '20:30:00'
actions:
- action: notify.telegram
data:
message: "{%- set datanames = namespace(low_batt=[]) -%} {%- set threshold_zb\
\ = states('input_number.battery_low_level_zb')|int(0) -%} {%- set threshold_bt\
\ = states('input_number.battery_low_level_bt')|int(0) -%} {%- set domains\
\ = ['sensor'] %} {%- for domain in domains -%} {%- for item in states[domain]\
\ if((\"_battery\" in item.entity_id and ((\"0x\" in item.entity_id and item.state|int(0)\
\ <= threshold_zb) or (\"0x\" not in item.entity_id and item.state|int(0)\
\ <= threshold_bt)) and item.entity_id in integration_entities('xiaomi_gateway3')))-%}\n\
\ {%- set datanames.low_batt = datanames.low_batt + [item.name.replace('\
\ Battery','') +' '+item.state+'%'] -%}\n{%- endfor %} {%- endfor %} {%- set\
\ num_low_bat = datanames.low_batt | length %} {%- set low_bat = datanames.low_batt\
\ | join(', ') %} {%- if num_low_bat > 0 %} {{\"\\U0001f6a8\"}} Низкий заряд\
\ батарей ({{ num_low_bat}}шт): {{low_bat}} {%- else %} {{\"\\U0001f50b\"\
}} Батарей с низким уровнем заряда не найдено {%- endif %}"
- alias: system_database_purge
id: system_database_purge
initial_state: true
triggers:
- trigger: time
at: 02:00:00
actions:
- action: recorder.purge
data:
keep_days: 15
repack: true
- action: notify.telegram
data:
message: 💫 Очистка базы
- alias: system_transmission_completed_torrent
id: system_transmission_completed_torrent
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: transmission_downloaded_torrent
actions:
- action: notify.telegram
data:
message: 💯 Загрузка завершена {{trigger.event.data.name}}
- alias: system_config_error_notification
id: system_config_error_notification
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- persistent_notification.homeassistant_check_config
- persistent_notification.invalid_config
to: notifying
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: notify.telegram
data:
message: ❌ Перезапуск отменён. Конфигурация содержит ошибки {{ trigger.to_state.attributes.message
}}
- action: persistent_notification.dismiss
data:
notification_id: "{% if 'could not be set up' in trigger.to_state.attributes.message\
\ | lower %}\n invalid_config\n{% else %}\n homeassistant_check_config\n\
{% endif %}\n"
- alias: system_automation_error
id: system_automation_error
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: ERROR
conditions:
- condition: template
value_template: "{{ \n trigger.event.data.message | regex_search('Error while\
\ executing automation') or\n trigger.event.data.message | regex_search('Error\
\ executing script')\n}}"
- condition: template
value_template: '{{ trigger.event.data.name is not search(this.entity_id, ignorecase=True)
}}'
actions:
- action: notify.telegram
data:
message: '{{ ''\U0000274C'' }} Ошибка выполнения автоматизации: {{ trigger.event.data.message
| e }}
'
- action: counter.increment
data:
entity_id: counter.automation_error_counter
- alias: system_error_per_hour
id: system_error_per_hour
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id: sensor.error_counter_hourly
above: 100
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_error_per_hour'',
''last_triggered''), 0)|int(0) ,0) > 15 }}'
- condition: template
value_template: '{{ (states(''sensor.error_counter_hourly'')|int(0) % 50) == 0
}}'
actions:
- action: notify.telegram
data:
message: ⚠ Внимание Количество ошибок в час выросло до {{states('sensor.error_counter_hourly')|int(0)}}
- alias: system_warning_per_hour
id: system_warning_per_hour
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id: sensor.warning_counter_hourly
above: 100
conditions:
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.system_warning_per_hour'',
''last_triggered''), 0)|int(0) ,0) > 15 }}'
- condition: template
value_template: '{{ (states(''sensor.warning_counter_hourly'')|int(0) % 50) ==
0 }}'
actions:
- action: notify.telegram
data:
message: ⚠ Внимание Количество предупреждений в час выросло до {{states('sensor.warning_counter_hourly')|int(0)}}
- alias: system_critical_error_notify
id: system_critical_error_notify
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: FATAL
- trigger: event
event_type: system_log_event
event_data:
level: CRITICAL
actions:
- action: notify.telegram
data:
message: '🔴 Критическая ошибка системы: {{ trigger.event.data.message | e}}'
- alias: system_silent_mode_toggle
id: system_silent_mode_toggle
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id: switch.system_silent_mode
from: 'on'
to: 'off'
- trigger: state
entity_id: switch.system_silent_mode
from: 'off'
to: 'on'
actions:
- action: switch.turn_{{states('switch.system_silent_mode')}}
entity_id: switch.esp32_domofon_mute, switch.sonoff_mini_1_mute
- action: input_number.set_value
data:
entity_id: input_number.main_volume
value: '{% if is_state(''switch.system_silent_mode'',''on'') %}0{%else%}0.4{%endif%}'
- action: number.set_value
data:
entity_id: number.up_chime_volume
value: '{% if is_state(''switch.system_silent_mode'',''on'') %}0{%else%}80{%endif%}'
- action: notify.telegram
data:
message: "{% if is_state('switch.system_silent_mode','on') %}\n {{'\\U0001f515'}}\
\ Режим тишины включен\n{%else%}\n {{'\\U0001f514'}} Режим тишины выключен\n\
{%endif%}\n"
- alias: system_gw3_state
id: system_gw3_state
initial_state: true
mode: queued
max: 5
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.54ef444329cd_gateway
- binary_sensor.54ef44437eb6_gateway
- binary_sensor.54ef44433076_gateway
- binary_sensor.54ef44439a55_gateway
- binary_sensor.54ef443f1fac_gateway
- binary_sensor.54ef44439a55_gateway
- binary_sensor.54ef4443a353_gateway
to: 'off'
- trigger: state
entity_id:
- binary_sensor.54ef444329cd_gateway
- binary_sensor.54ef44437eb6_gateway
- binary_sensor.54ef44433076_gateway
- binary_sensor.54ef44439a55_gateway
- binary_sensor.54ef443f1fac_gateway
- binary_sensor.54ef44439a55_gateway
- binary_sensor.54ef4443a353_gateway
from: 'off'
conditions:
- condition: template
value_template: '{{ trigger.to_state.state = trigger.from_state.state }}'
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- action: notify.telegram
data:
message: '⚙ {{trigger.to_state.attributes.friendly_name}}: {% if trigger.from_state.state
in [''on'',''off'',''unknown'',''unavailable''] %}{{trigger.from_state.state}}{%else%}online{%endif%}
-> {% if trigger.to_state.state in [''on'',''off'',''unknown'',''unavailable'']
%}{{trigger.to_state.state}}{%else%}online{%endif%}'
- alias: system_watchdog
id: system_watchdog
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000323c87c_contact
to: null
for:
seconds: 2
actions:
- action: notify.telegram
data:
message: '{% if is_state(''binary_sensor.0x00158d000323c87c_contact'',''off'')
%} {{''\U0001F7E2''}} Watchdog: API Connected {%else%} {{''\U0001F534''}}
Watchdog: API Disconnected {%endif%}
'
- alias: system_dark_mode
id: system_dark_mode
initial_state: true
triggers:
- trigger: state
entity_id: switch.system_dark_mode
actions:
- action: notify.telegram
data:
message: "{% if is_state('switch.system_dark_mode','on') %}\n {{'\\U0001f318'}}\
\ Режим темноты включен\n{%else%}\n {{'\\U00002600'}} Режим темноты выключен\n\
{%endif%}\n"
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- action: switch.turn_off
entity_id: switch.system_silent_mode
- alias: system_hot_water_pipe
id: system_hot_water_pipe
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.esp32_node_b_hot_pipe
below: 40
for:
minutes: 5
- trigger: numeric_state
entity_id: sensor.esp32_node_b_hot_pipe
above: 40
for:
minutes: 5
conditions:
- condition: state
entity_id: input_boolean.hot_water
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: sensor.esp32_node_b_hot_pipe
state: unavailable
actions:
- action: notify.telegram
data:
message: 🌡 Внимание Горячая вода {% if states('sensor.esp32_node_b_hot_pipe')|float(0)
> 40 %}включена{%else%}выключена{%endif%}
- alias: system_cold_water_pipe
id: system_cold_water_pipe
initial_state: false
triggers:
- trigger: numeric_state
entity_id: sensor.esp32_node_b_cold_pipe
above: sensor.0x00158d0001e58754_temperature
for:
minutes: 5
actions:
- action: notify.telegram
data:
message: 🌡 Внимание Температура трубы холодной воды выше {{states('sensor.esp32_node_b_cold_pipe')|int(0)}}°C
- alias: system_central_heating
id: system_central_heating
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.central_heating
to: 'off'
for:
minutes: 30
- trigger: state
entity_id: binary_sensor.central_heating
to: 'on'
for:
minutes: 30
actions:
- action: input_boolean.turn_{{states('binary_sensor.central_heating')}}
entity_id: input_boolean.central_heating
- action: notify.telegram
data:
message: 🌡 Внимание Отопление {% if is_state('binary_sensor.central_heating','on')
%}включено{%else%}выключено{%endif%}
- alias: system_heating_pipes_warning
id: system_heating_pipes_warning
initial_state: true
triggers:
- trigger: numeric_state
entity_id:
- sensor.esp32_node_v_heating_pipe
- sensor.esp32_node_mb_heating_pipe
below: 30
for:
minutes: 5
conditions:
- condition: state
entity_id: input_boolean.central_heating
state: 'on'
actions:
- action: notify.telegram
data:
message: 🌡 Внимание Температура трубы {{trigger.to_state.attributes.friendly_name}}
ниже 30°C
- alias: system_zb_devices_status
id: system_zb_devices_status
initial_state: true
mode: queued
max: 100
max_exceeded: silent
triggers:
- trigger: event
event_type: state_changed
conditions:
- condition: state
entity_id: input_boolean.ha_shutdown
state: 'off'
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
- condition: template
value_template: '{{ trigger.event.data.entity_id in expand(''group.zigbee_devices'')
| map(attribute=''entity_id'') | list }}'
- condition: template
value_template: '{{ trigger.event.data.new_state.state = trigger.event.data.old_state.state
}}'
- condition: template
value_template: '{{ trigger.event.data.new_state.state in [''unavailable''] or
trigger.event.data.old_state.state in [''unavailable''] }}'
actions:
- if:
- condition: template
value_template: '{{ states(''input_boolean.ha_shutdown'') == ''off'' }}'
then:
- action: notify.telegram
data:
message: '{% if trigger.event.data.new_state.state in [''unavailable''] %}{{''\U0001F4A5''}}
{% elif trigger.event.data.old_state.state in [''unavailable''] %}{{''\U00002705''}}
{% else %}{{''\U00002049''}} {% endif %} ZB: {{iif(device_attr(trigger.event.data.entity_id,
''name_by_user'') = none, device_attr(trigger.event.data.entity_id, ''name_by_user''),
device_attr(trigger.event.data.entity_id, ''name''), device_attr(trigger.event.data.entity_id,
''name''))}}: {{trigger.event.data.old_state.state}} -> {{trigger.event.data.new_state.state}}
'
- alias: system_zb_devices_status_normal
id: system_zb_devices_status_normal
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id: sensor.zigbee_devices_unavailable
below: 1
for:
seconds: 5
actions:
- action: notify.telegram
data:
message: '✅ ZB: Все устройства онлайн'
- alias: system_esp_devices_status
id: system_esp_devices_status
initial_state: true
mode: queued
max: 15
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.esp32_strip_1s_bookshelf_mb_status
- binary_sensor.digma_ir_k_status
- binary_sensor.digma_ir_mb_status
- binary_sensor.d1mini_light_l_status
- binary_sensor.digma_strip_hb_status
- binary_sensor.digma_ir_s_status
- binary_sensor.digma_ir_v_status
- binary_sensor.esp32_node_v_status
- binary_sensor.esp32_node_k_status
- binary_sensor.esp32_node_hs_status
- binary_sensor.esp32_node_mb_status
- binary_sensor.esp8266_oven_temp_k_status
- binary_sensor.esp32_pzem_hb_status
- binary_sensor.esp8266_hood_k_status
- binary_sensor.esp32_strip_1s_wadrobe_mb_status
- binary_sensor.sonoff_mini_1_status
- binary_sensor.sonoff_mini_r4_kiosk_charger_status
- binary_sensor.mono_strip_1_status
- binary_sensor.sonoff_mini_4_status
- binary_sensor.sonoff_pow_r2_1_status
- binary_sensor.esp32_node_b_status
- binary_sensor.esp32_node_b_valve_status
- binary_sensor.sonoff_pow_r2_2_status
- binary_sensor.esp32_node_s_status
- binary_sensor.esp32_node_s_ha_connect_status
- binary_sensor.esp32_domofon_status
- binary_sensor.esp32_poe_ble_s_status
- binary_sensor.d1mini_distance_sensor_status
- binary_sensor.esp32_poe_ble_hs_status
- binary_sensor.esp32_poe_ble_mb_status
- binary_sensor.sonoff_pow_r2_3_status
- binary_sensor.d1mini_bed_leds_status
- binary_sensor.d1mini_air_freshener_status
- binary_sensor.sp111_socket_1_status
- binary_sensor.sonoff_basic_4_status
- binary_sensor.esp32_strip_1s_entrance_hb_status
- binary_sensor.esp32_strip_1s_wadrobe_hb_status
from: 'on'
to: 'off'
for:
minutes: 2
actions:
- action: notify.telegram
data:
message: '🔴 ESP: {{iif(device_attr(trigger.entity_id, ''name_by_user'') = none,
device_attr(trigger.entity_id, ''name_by_user''), device_attr(trigger.entity_id,
''name''), device_attr(trigger.entity_id, ''name''))}}: {{trigger.from_state.state}}
-> {{trigger.to_state.state}}'
- alias: system_esp_devices_status_to_on
id: system_esp_devices_status_to_on
initial_state: true
mode: queued
max: 15
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.esp32_strip_1s_bookshelf_mb_status
- binary_sensor.digma_ir_k_status
- binary_sensor.digma_ir_mb_status
- binary_sensor.d1mini_light_l_status
- binary_sensor.digma_strip_hb_status
- binary_sensor.digma_ir_s_status
- binary_sensor.digma_ir_v_status
- binary_sensor.esp32_node_v_status
- binary_sensor.esp32_node_k_status
- binary_sensor.esp32_node_hs_status
- binary_sensor.esp32_node_mb_status
- binary_sensor.esp8266_oven_temp_k_status
- binary_sensor.esp32_pzem_hb_status
- binary_sensor.esp8266_hood_k_status
- binary_sensor.esp32_strip_1s_wadrobe_mb_status
- binary_sensor.sonoff_mini_1_status
- binary_sensor.sonoff_mini_r4_kiosk_charger_status
- binary_sensor.mono_strip_1_status
- binary_sensor.sonoff_mini_4_status
- binary_sensor.sonoff_pow_r2_1_status
- binary_sensor.esp32_node_b_status
- binary_sensor.esp32_node_b_valve_status
- binary_sensor.sonoff_pow_r2_2_status
- binary_sensor.esp32_node_s_status
- binary_sensor.esp32_node_s_ha_connect_status
- binary_sensor.esp32_domofon_status
- binary_sensor.esp32_poe_ble_s_status
- binary_sensor.d1mini_distance_sensor_status
- binary_sensor.esp32_poe_ble_hs_status
- binary_sensor.esp32_poe_ble_mb_status
- binary_sensor.sonoff_pow_r2_3_status
- binary_sensor.d1mini_bed_leds_status
- binary_sensor.d1mini_air_freshener_status
- binary_sensor.sp111_socket_1_status
- binary_sensor.sonoff_basic_4_status
- binary_sensor.esp32_strip_1s_entrance_hb_status
- binary_sensor.esp32_strip_1s_wadrobe_hb_status
from: 'off'
to: 'on'
for:
seconds: 5
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
actions:
- action: notify.telegram
data:
message: '🟢 ESP: {{iif(device_attr(trigger.entity_id, ''name_by_user'') = none,
device_attr(trigger.entity_id, ''name_by_user''), device_attr(trigger.entity_id,
''name''), device_attr(trigger.entity_id, ''name''))}}: {{trigger.from_state.state}}
-> {{trigger.to_state.state}}'
- alias: system_xiaomi_gw3_error
id: system_xiaomi_gw3_error
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: ERROR
conditions:
- condition: template
value_template: '{{ "xiaomi_gateway3" in (trigger.event.data.message|string) or
"xiaomi_gateway3" in (trigger.event.data.message|string) }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: notify.telegram
data:
message: ⛔ GW3 Ошибка обнаружена в логе
- alias: system_fully_kiosk_connection
id: system_fully_kiosk_connection
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: switch.kiosk_screen
to: unavailable
id: to_unavail
for:
minutes: 5
- trigger: state
entity_id: switch.kiosk_screen
from: unavailable
id: from_unavail
for:
minutes: 1
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{{(as_timestamp(now())|int(0) - as_timestamp(state_attr(''automation.system_fully_browser_restart'',
''last_triggered''),0)|int(0)) > 5*60 }}'
actions:
- choose:
- conditions:
- condition: trigger
id: to_unavail
sequence:
- action: notify.telegram
data:
message: '⛔ Fully: связь потеряна'
- conditions:
- condition: trigger
id: from_unavail
sequence:
- action: notify.telegram
data:
message: '✅ Fully: связь восстановлена'
- alias: system_already_running_log
id: system_already_running_log
initial_state: true
max: 10
max_exceeded: silent
mode: queued
triggers:
- trigger: event
event_type: system_log_event
event_data:
level: WARNING
conditions:
- condition: template
value_template: '{{ "Already running" in (trigger.event.data.message|string) }}'
actions:
- action: notify.telegram
data:
message: ⛔ Warning {{ trigger.event.data.message | join | e }}
- alias: system_automation_reload
id: system_automation_reload
initial_state: true
triggers:
- trigger: event
event_type: automation_reloaded
actions:
- action: notify.telegram
data:
message: 💬 Автоматизации перезагружены
- alias: system_scripts_reload
id: system_scripts_reload
initial_state: true
triggers:
- trigger: event
event_type: call_service
event_data:
domain: script
service: reload
actions:
- action: notify.telegram
data:
message: 💬 Скрипты перезагружены
- alias: system_devices_stats
id: system_devices_stats
initial_state: true
triggers:
- trigger: time
at: '23:59:55'
actions:
- action: input_number.set_value
data:
entity_id: input_number.breather_v_run_time
value: '{{ (states(''input_number.breather_v_run_time'') | float(0) + states(''sensor.breather_v_run_time_today'')
| float(0)) | round(2, ''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.breather_s_run_time
value: '{{ (states(''input_number.breather_s_run_time'') | float(0) + states(''sensor.breather_s_run_time_today'')
| float(0)) | round(2, ''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.breather_mb_run_time
value: '{{ (states(''input_number.breather_mb_run_time'') | float(0) + states(''sensor.breather_mb_run_time_today'')
| float(0)) | round(2, ''common'') }}'
- alias: system_ac_power_status
id: system_ac_power_status
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0003262acc_contact
to: 'on'
from: 'off'
for:
seconds: 3
- trigger: state
entity_id: binary_sensor.0x00158d0003262acc_contact
to: 'off'
from: 'on'
for:
seconds: 3
actions:
- action: notify.telegram
data:
message: '{% if is_state(''binary_sensor.0x00158d0003262acc_contact'',''on'')
%}{{''\U00002705''}} Электроснабжение восстановлено {% else %}{{''\U0000274c''}}
Внимание Электроснабжение прекращено {%endif%}
'
- alias: system_esp_reboot
id: system_esp_reboot
initial_state: true
mode: queued
max: 15
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- sensor.esp32_strip_1s_bookshelf_mb_uptime_s
- sensor.digma_ir_k_uptime_s
- sensor.digma_ir_mb_uptime_s
- sensor.d1mini_light_l_uptime_s
- sensor.digma_strip_hb_uptime_s
- sensor.digma_ir_s_uptime_s
- sensor.digma_ir_v_uptime_s
- sensor.esp32_node_v_uptime_s
- sensor.esp32_node_k_uptime_s
- sensor.esp32_node_hs_uptime_s
- sensor.esp32_node_mb_uptime_s
- sensor.esp8266_oven_temp_k_uptime_s
- sensor.esp32_pzem_hb_uptime_s
- sensor.esp8266_hood_k_uptime_s
- sensor.esp32_strip_1s_wadrobe_mb_uptime_s
- sensor.sonoff_mini_1_uptime_s
- sensor.sonoff_mini_r4_kiosk_charger_uptime_s
- sensor.mono_strip_1_uptime_s
- sensor.sonoff_mini_4_uptime_s
- sensor.sonoff_pow_r2_1_uptime_s
- sensor.esp32_node_b_uptime_s
- sensor.sonoff_pow_r2_2_uptime_s
- sensor.esp32_node_s_uptime_s
- sensor.esp32_domofon_uptime_s
- sensor.esp32_poe_ble_s_uptime_s
- sensor.d1mini_distance_sensor_uptime_s
- sensor.esp32_poe_ble_hs_uptime_s
- sensor.esp32_poe_ble_mb_uptime_s
- sensor.sonoff_pow_r2_3_uptime_s
- sensor.d1mini_bed_leds_uptime_s
- sensor.d1mini_air_freshener_uptime_s
- sensor.sp111_socket_1_uptime_s
- sensor.sonoff_basic_4_uptime_s
from: unavailable
for:
seconds: 10
conditions:
- condition: template
value_template: '{{ 0 <= states(trigger.entity_id)|int(-1) < 30 }}'
actions:
- action: notify.telegram
data:
message: '♻ ESP: {{iif(device_attr(trigger.entity_id, ''name_by_user'') = none,
device_attr(trigger.entity_id, ''name_by_user''), device_attr(trigger.entity_id,
''name''), device_attr(trigger.entity_id, ''name''))}} перезапустился, аптайм
{{states(trigger.entity_id)|int(0)}}с'
- alias: system_briefing_entities_force_update
id: system_briefing_entities_force_update
initial_state: true
triggers:
- trigger: time
at: 06:50:00
id: id_morning
- trigger: time
at: '20:50:00'
id: id_evening
actions:
- action: hassio.addon_restart
data:
addon: a0d7b954_appdaemon
- condition: template
value_template: "{%- set sensors = expand('group.weather_fcst_entities') %} {%-\
\ set act_time = as_timestamp(now()) %} {%- for sensor in sensors %}\n {%-\
\ if as_timestamp(sensor.last_updated) == as_timestamp(sensors | map(attribute='last_updated')\
\ | min ) %}\n {{ (act_time|int(0)-as_timestamp(sensor.last_updated)|int(0))>30*60\
\ }}\n {%- endif %}\n{%- endfor %}"
- action: homeassistant.update_entity
entity_id:
- sensor.pirateweather_summary_0d
- sensor.pirateweather_daytime_high_temperature_0d
- sensor.pirateweather_precip_probability_0d
- sensor.pirateweather_precip_0d
- sensor.pirateweather_summary_1d
- sensor.pirateweather_daytime_high_temperature_1d
- sensor.pirateweather_precip_probability_1d
- sensor.pirateweather_precip_1d
- delay:
seconds: 5
- action: input_number.set_value
data:
entity_id: input_number.temp_volume
value: '{% set ent_id = ''media_player.yandex_st'' %} {% set vol =
state_attr(ent_id,''volume_level'') %} {{ vol }}
'
- action: input_number.set_value
data:
entity_id: input_number.tts_volume
value: 0
- action: media_player.volume_set
data:
entity_id: media_player.yandex_st
volume_level: '{{states("input_number.tts_volume")|float(0)}}'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_st
volume_level: '{{states("input_number.tts_volume")|float(0)}}'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_st
volume_level: '{{states("input_number.tts_volume")|float(0)}}'
- repeat:
while:
- condition: template
value_template: '{{ (as_timestamp(now()) - as_timestamp(state_attr(''sensor.yandex_response'',''time_fired''))
) > 10 }}'
- condition: template
value_template: '{{ repeat.index <= 10 }}'
sequence:
- if:
- condition: trigger
id: id_morning
then:
- action: media_player.play_media
data:
entity_id: media_player.yandex_st
media_content_id: какая сегодня погода
media_content_type: question:tts_reply
extra:
volume_level: 0
else:
- action: media_player.play_media
data:
entity_id: media_player.yandex_st
media_content_id: какая завтра погода
media_content_type: question:tts_reply
extra:
volume_level: 0
- delay:
seconds: 3
- delay:
seconds: 2
- if:
- condition: template
value_template: '{{ (as_timestamp(now()) - as_timestamp(state_attr(''sensor.yandex_response'',''time_fired''))
+ 0 ) > 30 }}'
then:
- action: notify.telegram
data:
message: 🌤 Ошибка получения погоды. Последний апдейт - {{as_timestamp(state_attr('sensor.yandex_response','time_fired')) |
timestamp_custom('%d-%m-%Y %H:%M:%S',true,0)}}
- action: input_boolean.turn_on
target:
entity_id: input_boolean.ya_weather_error
else:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.ya_weather_error
- wait_template: '{% set ent_id = ''sensor.yandex_st'' + ''_alice_state'' %} {{
is_state(ent_id,''idle'') }}
'
timeout:
minutes: 5
- action: input_number.set_value
data:
entity_id: input_number.tts_volume
value: '{{states("input_number.temp_volume")|float(0)}}'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_st
volume_level: '{{states("input_number.tts_volume")|float(0)}}'
- alias: system_hot_water_boolean_change
id: system_hot_water_boolean_change
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.hot_water
to: null
- trigger: homeassistant
event: start
- trigger: event
event_type: automation_reloaded
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{{ states(''binary_sensor.hot_water'') in [''on'',''off''] }}'
actions:
- action: input_boolean.turn_{{states('binary_sensor.hot_water')}}
entity_id: input_boolean.hot_water
- alias: system_cold_water_boolean_change
id: system_cold_water_boolean_change
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.cold_water
to: null
- trigger: homeassistant
event: start
- trigger: event
event_type: automation_reloaded
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: '{{ states(''binary_sensor.cold_water'') in [''on'',''off''] }}'
actions:
- action: input_boolean.turn_{{states('binary_sensor.cold_water')}}
entity_id: input_boolean.cold_water
- alias: system_central_heating_boolean_change
id: system_central_heating_boolean_change
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.central_heating
to: null
- trigger: homeassistant
event: start
- trigger: event
event_type: automation_reloaded
conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.central_heating'',''on'') or is_state(''binary_sensor.central_heating'',''off'')
}}'
actions:
- action: input_boolean.turn_{{states('binary_sensor.central_heating')}}
entity_id: input_boolean.central_heating
- alias: system_light_dark_mode_on_action
id: system_light_dark_mode_on_action
initial_state: true
triggers:
- trigger: state
entity_id: switch.system_dark_mode
from: 'off'
to: 'on'
actions:
- action: light.turn_off
entity_id:
- light.esp32_node_k_light
- light.mono_strip_1_light
- light.0x54ef441000680083_channel_2
- light.round_led_st
- light.esp32_strip_1s_entrance_hb_rgb
- light.esp32_strip_1s_wadrobe_hb_rgb
- alias: system_config_entry_discovery
id: system_config_entry_discovery
mode: single
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: persistent_notification.config_entry_discovery
to: notifying
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: notify.telegram
data:
message: 📟 Найдено новое устройство
- alias: system_gw3_devices_msg_missed
id: system_gw3_devices_msg_missed
initial_state: false
mode: queued
max: 70
triggers:
- trigger: event
event_type: state_changed
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 1
- condition: state
entity_id: input_boolean.ha_shutdown
state: 'off'
- condition: template
value_template: '{{ trigger.event.data.entity_id in expand(''group.gw3_zigbee_entities'')
| map(attribute=''entity_id'') | list }}'
- condition: template
value_template: '{{ state_attr(trigger.event.data.entity_id, ''last_missed'')
|int(0) > 9 }}'
actions:
- action: notify.telegram
data:
message: ⏭ Внимание {{iif(device_attr(trigger.event.data.entity_id, 'name_by_user')
= none, device_attr(trigger.event.data.entity_id, 'name_by_user'), device_attr(trigger.event.data.entity_id,
'name'), device_attr(trigger.event.data.entity_id, 'name'))}} пропустил {{
state_attr(trigger.event.data.entity_id, 'last_missed') | format(morph='пакет',
as_text=false) }}
- alias: system_esphome_ble_advert
id: system_esphome_ble_advert
mode: parallel
max: 500
max_exceeded: silent
initial_state: true
triggers:
- trigger: event
event_type: esphome.on_ble_advertise
actions:
- action: ble_monitor.parse_data
data:
packet: '{{ trigger.event.data.packet }}'
gateway_id: '{{ trigger.event.data.gateway_id }}'
- alias: system_music_restrictions
id: system_music_restrictions
mode: single
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
entity_id: media_player.yandex_s
to: playing
id: by_state
- trigger: time
at: '23:00:00'
id: by_time
conditions:
- condition: state
entity_id: switch.system_music_allowed
state: 'off'
- condition: template
value_template: '{{states(''sensor.time'').split('':'')[0]|int >= 23 or states(''sensor.time'').split('':'')[0]|int
< 7}}'
actions:
- if:
- condition: trigger
id: by_time
then:
- action: media_player.turn_off
entity_id: media_player.yandex_s
- action: media_player.turn_off
entity_id: media_player.yandex_v
- delay:
seconds: 3
- action: media_player.turn_off
entity_id: media_player.yandex_s
- action: media_player.turn_off
entity_id: media_player.yandex_v
- if:
- condition: trigger
id: on_state
then:
- action: media_player.turn_off
entity_id: media_player.yandex_s
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_s
media_content_id: Сашенька, ночью надо спать, а не сказки слушать Спокойной
ночи
extra:
volume_level: '0.2'
- alias: system_supervisor_unhealthy
id: system_supervisor_unhealthyn
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.supervisor_is_healthy
to: null
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.supervisor_is_healthy
state: 'on'
sequence:
- action: notify.telegram
data:
message: ✅ Supevisor перешел в состояние Healthy
default:
- action: notify.telegram
data:
message: ❌ Supevisor перешел в состояние Unhealthy
- alias: system_ya_station_mode
id: system_ya_station_mode
mode: queued
max: 10
max_exceeded: silent
initial_state: true
triggers:
- trigger: state
id: non_local
entity_id:
- binary_sensor.yandex_k
- binary_sensor.yandex_s
- binary_sensor.yandex_hb
- binary_sensor.yandex_v
- binary_sensor.yandex_mb
from: 'off'
to: 'on'
- trigger: state
entity_id:
- binary_sensor.yandex_k
- binary_sensor.yandex_s
- binary_sensor.yandex_hb
- binary_sensor.yandex_v
- binary_sensor.yandex_mb
from: 'on'
to: 'off'
actions:
- action: notify.telegram
data:
message: 🔊 Станция {{trigger.to_state.name | e}} {% if trigger.id == 'non_local'
-%} отключила локальный режим управления {%- else -%} перешла в локальный
режим управления {%- endif %}
- alias: system_fully_integration_reload
id: system_fully_integration_reload
initial_state: true
triggers:
- trigger: time_pattern
minutes: /10
conditions:
- condition: state
entity_id: sensor.kiosk_battery
state:
- unknown
- unavailable
for:
minutes: 5
actions:
- action: homeassistant.reload_config_entry
data:
entry_id: 2eb872806bf50b75953836ae0584662b
- alias: system_fully_tablet_charge_on
id: system_fully_tablet_charge_on
initial_state: true
triggers:
- trigger: time_pattern
minutes: /15
conditions:
- condition: numeric_state
entity_id: sensor.kiosk_battery
below: 20
actions:
- action: notify.telegram
data:
message: '🔌 Fully: Принудительное включение зарядки'
- action: switch.turn_on
entity_id: switch.sonoff_mini_r4_kiosk_charger_relay
- alias: system_fully_browser_restart
id: system_fully_browser_restart
initial_state: true
triggers:
- trigger: time_pattern
hours: /2
id: auto
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.28d1273bc2f4_action
click_type: single
id: manual
actions:
- action: button.press
entity_id: button.kiosk_restart_browser
- action: timer.start
entity_id: timer.kiosk_restart_manual
- alias: system_repair_event_notify
id: system_repair_event_notify
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: event
event_type: repairs_issue_registry_updated
event_data:
service: create
actions:
- action: notify.telegram
data:
message: '🐛 Проблема в {{ trigger.event.data.domain | e }}, детали: {{
trigger.event.data.issue_id | e }}'
- alias: system_repair_sensor_update
id: system_repair_sensor_update
mode: restart
triggers:
- trigger: event
event_type: repairs_issue_registry_updated
event_data:
service: create
- trigger: homeassistant
event: start
actions:
- action: homeassistant.update_entity
data:
entity_id: sensor.repairs_state
- alias: system_day_night_switch
id: system_day_night_switch
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.tod_day
to: 'on'
conditions:
- condition: state
entity_id: switch.system_security_mode
state: 'off'
actions:
- action: switch.turn_off
entity_id: switch.system_silent_mode
- alias: system_doorbell_volume
id: system_doorbell_volume
initial_state: true
triggers:
- trigger: time_pattern
hours: /1
- trigger: homeassistant
event: start
actions:
- action: number.set_value
data:
entity_id: number.up_chime_volume
value: '{{iif(is_state(''switch.system_silent_mode'',''on''),0,80) }}'
- alias: system_ds621_set_fan_speed
id: system_ds621_set_fan_speed
initial_state: true
triggers:
- trigger: state
entity_id: input_select.ds1621_fan_speed_select
to: null
actions:
- action: mqtt.publish
data:
payload: '{{ states(''input_select.ds1621_fan_speed_select'') | lower }}'
topic: 1621/fan_speed_set
retain: true
- alias: system_nodes_net_speed_change
id: system_nodes_net_speed_change
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- sensor.ms01a_enp3s0f0np0_speed
- sensor.ms01a_enp3s0f1np1_speed
- sensor.ms01a_enp88s0_speed
- sensor.ms01a_enp90s0_speed
- sensor.ms01a_enp1s0f0_speed
- sensor.ms01a_enp1s0f1_speed
- sensor.ms01a_enp1s0f2_speed
- sensor.ms01a_enp1s0f3_speed
- sensor.ms01b_enp3s0f0np0_speed
- sensor.ms01b_enp3s0f1np1_speed
- sensor.ms01b_enp88s0_speed
- sensor.ms01b_enp90s0_speed
- sensor.ms01b_enp1s0f0_speed
- sensor.ms01b_enp1s0f1_speed
- sensor.ms01b_enp1s0f2_speed
- sensor.ms01b_enp1s0f3_speed
to: null
actions:
- variables:
old_value: '{%if trigger.from_state.state|float(0) < 1000 %} {{trigger.from_state.state}}
Mb/s {%elif trigger.from_state.state|float(0) >= 1000 %} {{trigger.from_state.state|int(0)
/ 1000 }} Gb/s {%endif%}'
new_value: '{%if trigger.to_state.state|float(0) < 1000 %} {{trigger.to_state.state}}
Mb/s {%elif trigger.to_state.state|float(0) >= 1000 %} {{trigger.to_state.state|int(0)
/ 1000 }} Gb/s {%endif%}'
- action: notify.telegram
data:
message: '🚦 {{trigger.to_state.name}}: {{old_value}} -> {{new_value}}'
- alias: system_primary_ip_change
id: system_primary_ip_change
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: state
entity_id: sensor.udm_last_active_ip
to: null
actions:
- action: notify.telegram
data:
message: '🚦 {{trigger.to_state.name}}: {{trigger.from_state.state}} -> {{trigger.to_state.state}}'
- alias: system_plex_status_change
id: system_plex_status_change
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: state
entity_id: sensor.plex_12
to: unavalable
id: id_to
- trigger: state
entity_id: sensor.plex_12
from: unavalable
id: id_from
actions:
- choose:
- conditions:
- condition: trigger
id: id_to
sequence:
- action: notify.telegram
data:
message: 🔴 Plex went offline
- conditions:
- condition: trigger
id: id_from
sequence:
- action: notify.telegram
data:
message: 🟢 Plex back online
- alias: system_retart_gateway
id: system_retart_gateway
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id: sensor.gateway3a_hb_free_memory
below: 10000
for:
hours: 1
actions:
- action: select.select_option
data:
option: reboot
target:
entity_id: select.54ef443f1fac_command
- action: notify.telegram
data:
message: 🔴 Gateway HB restart
- alias: system_googlevideo_unavalable
id: system_googlevideo_unavalable
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.googlevideo_com
to: 'off'
for:
minutes: 1
id: to_off
- trigger: state
entity_id: binary_sensor.googlevideo_com
to: 'on'
for:
minutes: 1
id: to_on
actions:
- choose:
- conditions:
- condition: trigger
id: to_off
sequence:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.googlevideo_error
- action: notify.telegram
data:
message: 🔴 Googlevideo connection lost
- conditions:
- condition: trigger
id: to_on
- condition: state
entity_id: input_boolean.googlevideo_error
state: 'on'
sequence:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.googlevideo_error
- action: notify.telegram
data:
message: 🟢 Googlevideo connection restored
- alias: system_1621_go2rtc_streamcount
id: system_1621_go2rtc_streamcount
initial_state: true
mode: queued
max: 50
max_exceeded: silent
triggers:
- trigger: state
entity_id: sensor.1621_go2rtc_active_streams
to: null
for:
seconds: 30
conditions:
- condition: state
entity_id: sensor.1621_go2rtc_active_streams
state: '0'
actions:
- action: button.press
entity_id: button.kiosk_load_start_url
- alias: system_health_cpu_temp
id: system_health_cpu_temp
initial_state: true
mode: queued
max: 5
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id: sensor.ms01a_cpu_temp, sensor.ms01b_cpu_temp, sensor.pbs100_cpu_temp
above: 95
for:
minutes: 5
id: temp_95
- trigger: numeric_state
entity_id: sensor.ms01a_cpu_temp, sensor.ms01b_cpu_temp, sensor.pbs100_cpu_temp
above: 80
for:
minutes: 5
id: temp_80
actions:
- choose:
- conditions:
- condition: trigger
id: temp_95
sequence:
- parallel:
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: '{{ trigger.to_state.attributes.friendly_name }} >90°'
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- action: notify.telegram
data:
message: 🔥 Внимание! {{ trigger.to_state.attributes.friendly_name }} >90°
- conditions:
- condition: trigger
id: temp_80
sequence:
- parallel:
- action: notify.telegram
data:
message: 🔥 Внимание! {{ trigger.to_state.attributes.friendly_name }} >80°
- alias: system_health_ssd_temp_70
id: system_health_ssd_temp_70
initial_state: true
mode: queued
max: 5
max_exceeded: silent
triggers:
- trigger: numeric_state
entity_id:
- sensor.ms01a_nvme0_temp
- sensor.ms01a_nvme1_temp
- sensor.ms01b_nvme0_temp
- sensor.ms01b_nvme1_temp
- sensor.pbs100_nvme0_temp
- sensor.pbs100_sda_temp
above: 70
for:
minutes: 3
actions:
- action: notify.telegram
data:
message: 🌡 Внимание! {{ trigger.to_state.attributes.friendly_name }} >70°!
- alias: system_health_synology_disks_status
id: system_health_synology_disks_status
initial_state: true
mode: queued
max: 15
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- sensor.ds1621plus_drive_1_status
- sensor.ds1621plus_drive_2_status
- sensor.ds1621plus_drive_3_status
- sensor.ds1621plus_drive_5_status
- sensor.ds1621plus_drive_6_status
- sensor.ds1621plus_m_2_drive_1_status
- sensor.ds1621plus_m_2_drive_2_status
- sensor.ds1621plus_drive_1_status_smart
- sensor.ds1621plus_drive_2_status_smart
- sensor.ds1621plus_drive_3_status_smart
- sensor.ds1621plus_drive_5_status_smart
- sensor.ds1621plus_drive_6_status_smart
- sensor.ds1621plus_m_2_drive_1_status_smart
- sensor.ds1621plus_m_2_drive_2_status_smart
- sensor.ds920plus_drive_1_status
- sensor.ds920plus_drive_2_status
- sensor.ds920plus_drive_3_status
- sensor.ds920plus_drive_4_status
- sensor.ds920plus_cache_device_1_status
- sensor.ds920plus_cache_device_2_status
- sensor.ds920plus_drive_1_status_smart
- sensor.ds920plus_drive_2_status_smart
- sensor.ds920plus_drive_3_status_smart
- sensor.ds920plus_drive_4_status_smart
- sensor.ds920plus_cache_device_1_status_smart
- sensor.ds920plus_cache_device_2_status_smart
to: null
for:
minutes: 1
conditions:
- condition: template
value_template: '{{ trigger.to_state.state != trigger.from_state.state and trigger.to_state.state
not in [''unavailable''] and trigger.from_state.state not in [''unavailable'']
}}'
actions:
- action: notify.telegram
data:
message: '🧰 Внимание! {{ trigger.to_state.name }}: {{ trigger.from_state.state
}} -> {{ trigger.to_state.state }}!'
- alias: toilet_tank_counter
id: toilet_tank_counter
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0003262a35_contact
from: 'off'
to: 'on'
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ != trigger.from_state.state\n}}\n"
actions:
- action: counter.increment
entity_id: counter.toilet_tank
- alias: toilet_air_freshener_counter
id: toilet_air_freshener_counter
initial_state: true
triggers:
- trigger: state
entity_id: number.d1mini_air_freshener_counter
to: null
conditions:
- condition: template
value_template: '{{ trigger.to_state.state|int(0) > trigger.from_state.state|int(0)
}}'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none'] %} {{ trigger.from_state.state\
\ not in ignore and\n trigger.to_state.state not in ignore and\n trigger.to_state.state\
\ != trigger.from_state.state\n}}\n"
- condition: template
value_template: '{{ (states(''sensor.d1mini_air_freshener_canister_left'')|int(0)
< 10) and (states(''number.d1mini_air_freshener_counter'')|int(0) % 25) == 0
}}'
actions:
- action: notify.telegram
data:
message: 🔋 Необходимо заменить баллон в освежителе - осталось менее {{states('sensor.d1mini_air_freshener_canister_left')|int(0)}}%!
- alias: toilet_air_freshener_spray
id: toilet_air_freshener_spray
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
from: 'off'
to: 'on'
for:
minutes: 2
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: group.lights_t
state: 'on'
- condition: state
entity_id: fan.esp32_node_b_fan_t
state: 'off'
actions:
- if:
- condition: state
entity_id: switch.esp32_node_b_fan_b_manual_mode
state: 'off'
then:
- action: fan.turn_on
entity_id: fan.esp32_node_b_fan_t
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
to: 'off'
for:
seconds: 10
timeout:
minutes: 30
continue_on_timeout: false
- action: timer.cancel
entity_id: timer.fan_t
- action: timer.start
entity_id: timer.short_fan_t
- condition: template
value_template: '{{(as_timestamp(now()) - as_timestamp(states.button.d1mini_air_freshener_spray.last_changed)|int(0))
> 60 }}'
- action: button.press
entity_id: button.d1mini_air_freshener_spray
- alias: toilet_air_freshener_spray_manual
id: toilet_air_freshener_spray_manual
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001b97111_action
click_type: double
actions:
- action: button.press
entity_id: button.d1mini_air_freshener_spray
- alias: toilet_heater_control
id: toilet_heater_control
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.heater_trigger_t
to: null
actions:
- if:
- condition: state
entity_id: binary_sensor.heater_trigger_t
state: 'on'
then:
- action: climate.turn_on
entity_id: climate.sonoff_pow_r2_2_wall_heater
else:
- action: climate.turn_off
entity_id: climate.sonoff_pow_r2_2_wall_heater
- alias: toilet_close_seat_notify
id: toilet_close_seat_notify
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.seat_not_closed
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.toilet_close_seat_notify'',
''last_triggered''),0)|int(0)) > 15 }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- wait_for_trigger:
- trigger: state
entity_id: light.0x00158d0002a36f7f_channel_1
to: 'off'
for:
seconds: 3
- trigger: state
entity_id: light.esp32_node_b_light
to: 'off'
for:
seconds: 3
- trigger: state
entity_id: binary_sensor.0x00158d0001ef2ffc_contact
to: 'on'
for:
seconds: 3
- trigger: state
entity_id: binary_sensor.0x00158d0001ef2ffc_contact
to: 'off'
timeout:
minutes: 20
continue_on_timeout: false
- condition: state
entity_id: binary_sensor.seat_not_closed
state: 'on'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Пож+алуйста закр+ойте кр+ышку унит+аза!
extra:
volume_level: '{{states("input_number.main_volume")|float(0) + 0.1}}'
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.0x00158d000232ddd6_contact
to: 'off'
timeout:
minutes: 5
continue_on_timeout: false
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Больш+ое спас+ибо!
- alias: toilet_donedeal
id: toilet_donedeal
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Я покакала
actions:
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: '{{ trigger.event.data.entity_id }}'
media_content_id: '{{[''С облегчением!'',''Так держать!'',''Красава!'',''Красавелла!'',''Рада
за тебя!'',''Давай еще!'']|random}}'
extra:
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: button.press
entity_id: button.d1mini_air_freshener_spray
- action: fan.turn_on
entity_id: fan.esp32_node_b_fan_t
- delay:
seconds: 5
- action: button.press
entity_id: button.d1mini_air_freshener_spray
- alias: system_update_available_and_installed_notification
id: system_update_available_and_installed_notification
initial_state: false
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: event
event_type: state_changed
conditions:
- '{{ trigger.event.data.entity_id.startswith(''update.'') }}'
- '{{ trigger.event.data.old_state is not none and trigger.event.data.new_state
is not none }}'
- or:
- condition: template
value_template: "{{ \n trigger.event.data.new_state.state == 'on' and\n ((is_state_attr(trigger.event.data.entity_id,\
\ 'device_class', 'firmware')\n and version(trigger.event.data.new_state.attributes.latest_version)\
\ != version(trigger.event.data.old_state.attributes.latest_version))\n or\
\ version(trigger.event.data.new_state.attributes.latest_version) > version(trigger.event.data.old_state.attributes.latest_version))\
\ and\n trigger.event.data.new_state.attributes.latest_version not in not_has_state\
\ and\n trigger.event.data.new_state.attributes.latest_version is not none\n\
}}\n"
- condition: template
value_template: "{{ \n trigger.event.data.old_state.state == 'on' and trigger.event.data.new_state.state\
\ == 'off' and\n ((is_state_attr(trigger.event.data.entity_id, 'device_class',\
\ 'firmware')\n and version(trigger.event.data.new_state.attributes.installed_version)\
\ != version(trigger.event.data.old_state.attributes.installed_version))\n\
\ or version(trigger.event.data.new_state.attributes.installed_version) >\
\ version(trigger.event.data.old_state.attributes.installed_version)) and\n\
\ trigger.event.data.new_state.attributes.installed_version not in not_has_state\
\ and\n trigger.event.data.new_state.attributes.installed_version is not\
\ none\n}}\n"
actions:
- variables:
latest_version: '{{ trigger.event.data.new_state.attributes.latest_version }}'
installed_version: '{{ state_attr(trigger.event.data.entity_id, ''installed_version'')
}}'
old_installed_version: '{{ trigger.event.data.old_state.attributes.installed_version
}}'
friendlyname: '{{- trigger.event.data.new_state.name | replace('' Update'',
'''') -}}'
- if:
- condition: template
value_template: '{{ trigger.event.data.new_state.attributes.installed_version
!= trigger.event.data.old_state.attributes.installed_version }}'
then:
- action: notify.telegram
data:
message: 🎊 {{ friendlyname }} обновлен с {{ old_installed_version }} на {{
latest_version }}
else:
- action: notify.telegram
data:
message: 🛠 {{ friendlyname }} доступна новая версия {{ latest_version }}.
Текущая {{ installed_version }}
- alias: hall_big_main_power_turned_off
id: hall_big_main_power_turned_off
initial_state: true
triggers:
- trigger: state
entity_id: switch.0x00158d000230fc52_outlet
to: 'off'
from: 'on'
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Главная розетка отключена! Запущен UPS (1200)
- alias: hall_big_main_plug_pulled_out
id: hall_big_main_plug_pulled_out
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.0x00158d000230fc52_power
below: 10
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Нагрузка в главной розетке упала! Проверь кабель!
- alias: hall_big_main_power_overpower
id: hall_big_main_power_overpower
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.0x00158d000230fc52_power
above: 1700
actions:
- action: notify.telegram
data:
message: 🔌 Внимание! Перегрузка главной розетки! Отключите лишние потребители!
- alias: hall_big_main_power_turned_on
id: hall_big_main_power_turned_on
initial_state: true
triggers:
- trigger: state
entity_id: switch.0x00158d000230fc52_outlet
to: 'on'
from: 'off'
actions:
- action: notify.telegram
data:
message: 🔌 Электроснабжение восстановлено! Начинаем зарядку UPS(1200)!
- alias: hall_big_ups_states
id: hall_big_ups_states
initial_state: true
triggers:
- trigger: state
entity_id: sensor.ippon_1500_status_data
to: null
conditions:
- condition: template
value_template: '{{ trigger.to_state.state != trigger.from_state.state }}'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''OB DISCHRG'' or trigger.to_state.state
== ''OB'' }}'
sequence:
- parallel:
- action: notify.telegram
data:
message: 🔋 Внимание! Запущен UPS (1200)!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: Запущен UPS (1200)
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''LB'' or trigger.to_state.state
== ''FSD OB DISCHRG LB''}}'
sequence:
- parallel:
- action: notify.telegram
data:
message: 🚨 Внимание! Заряд батареи (1200) критический! Завершение работы
через 10сек!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: UPS полностью разряжен! Завершаем работу через 10сек!
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- delay:
seconds: 10
- action: hassio.host_shutdown
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state == ''OL CHRG'' or trigger.to_state.state
== ''OL''}}'
- condition: template
value_template: '{{ trigger.from_state.state not in [''unknown'',''unavailable'',''none'']
}}'
sequence:
- action: notify.telegram
data:
message: 🔋 Питание восстановлено! Начинаем заряд батареи (1200)!
- conditions:
- condition: template
value_template: '{{ trigger.to_state.state in [''unknown'',''unavailable'']
}}'
- condition: template
value_template: '{{ trigger.from_state.state not in [''unknown'',''unavailable'',''none'']
}}'
sequence:
- action: notify.telegram
data:
message: 🚨 Внимание! Связь с UPS(1200) потеряна!
- conditions:
- condition: template
value_template: '{{ trigger.from_state.state in [''unknown'',''unavailable'']
}}'
- condition: template
value_template: '{{ trigger.to_state.state not in [''unknown'',''unavailable'',''none'']
}}'
sequence:
- action: notify.telegram
data:
message: 🚨 Внимание! Связь с UPS(1200) восстановлена!
- alias: system_water_cold_water_increase_counter
id: system_water_cold_water_increase_counter
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0006d31d78_contact
from: 'on'
to: 'off'
for:
seconds: 5
actions:
- action: input_number.set_value
data:
entity_id: input_number.cold_water_meter
value: '{{ (states(''input_number.cold_water_meter'')|float(0) + 0.01 ) | round(2,
''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.cold_water_meter_month
value: '{{ (states(''input_number.cold_water_meter_month'')|float(0) + 0.01
) | round(2, ''common'') }}'
- action: mqtt.publish
data:
topic: utility/main/cold_water_meter
payload: '{{states(''input_number.cold_water_meter'')|float(0)}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/cold_water_meter_month
payload: '{{states(''input_number.cold_water_meter_month'')|float(0)}}'
retain: true
- alias: system_water_hot_water_increase_counter
id: system_water_hot_water_increase_counter
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d000236fcd5_contact
from: 'on'
to: 'off'
for:
seconds: 5
actions:
- action: input_number.set_value
data:
entity_id: input_number.hot_water_meter
value: '{{ (states(''input_number.hot_water_meter'')|float(0) + 0.01 ) | round(2,
''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.hot_water_meter_month
value: '{{ (states(''input_number.hot_water_meter_month'')|float(0) + 0.01 )
| round(2, ''common'') }}'
- action: mqtt.publish
data:
topic: utility/main/hot_water_meter
payload: '{{states(''input_number.hot_water_meter'')|float(0)}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/hot_water_meter_month
payload: '{{states(''input_number.hot_water_meter_month'')|float(0)}}'
retain: true
- alias: system_power_meter_daily
id: system_power_meter_daily
initial_state: true
triggers:
- trigger: time
at: '23:59:30'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.esp32_pzem_hb_status
state: 'on'
sequence:
- action: input_number.set_value
data:
entity_id: input_number.power_meter_t1
value: '{{ ((states(''input_number.power_meter_t1'')) | float(0) + states(''sensor.esp32_pzem_hb_energy_daily_day'')|float(0)/1
)|round(2, ''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.power_meter_t2
value: '{{ ((states(''input_number.power_meter_t2'')) | float(0) + states(''sensor.esp32_pzem_hb_energy_daily_night'')|float(0)/1
)|round(2, ''common'') }}'
- action: mqtt.publish
data:
topic: utility/main/energy/day
payload: '{{ states(''input_number.power_meter_t1'') }}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/energy/night
payload: '{{ states(''input_number.power_meter_t2'') }}'
retain: true
- action: notify.telegram
data:
message: 🔌 Данные счетчика электричества обновлены! D {{states('sensor.esp32_pzem_hb_energy_daily_day')|int(0)}},
N {{states('sensor.esp32_pzem_hb_energy_daily_night')|int(0)}}
- conditions:
- condition: state
entity_id: binary_sensor.esp32_pzem_hb_status
state: 'off'
sequence:
- action: notify.telegram
data:
message: 🔌 PZEM недоступен! Ожидаем
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.esp32_pzem_hb_status
to: 'on'
timeout:
seconds: 28
continue_on_timeout: false
- action: notify.telegram
data:
message: 🔌 PZEM доступен!
- action: input_number.set_value
data:
entity_id: input_number.power_meter_t1
value: '{{ ((states(''input_number.power_meter_t1'')) | float(0) + states(''sensor.esp32_pzem_hb_energy_daily_day'')|float(0)/1
)|round(2, ''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.power_meter_t2
value: '{{ ((states(''input_number.power_meter_t2'')) | float(0) + states(''sensor.esp32_pzem_hb_energy_daily_night'')|float(0)/1
)|round(2, ''common'') }}'
- action: mqtt.publish
data:
topic: utility/main/energy/day
payload: '{{ states(''input_number.power_meter_t1'') }}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/energy/night
payload: '{{ states(''input_number.power_meter_t2'') }}'
retain: true
- action: notify.telegram
data:
message: 🔌 Данные счетчика электричества обновлены!
- alias: system_new_month_notification
id: system_new_month_notification
initial_state: true
triggers:
- trigger: time
at: 00:00:10
conditions:
- '{{ now().timestamp() | timestamp_custom(''%d'') | int(0) == 21 }}'
actions:
- action: mqtt.publish
data:
topic: utility/main/{{now().year}}/{{now().month}}/hot_water_meter
payload: '{{states(''input_number.hot_water_meter'')|float(0)}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/{{now().year}}/{{now().month}}/cold_water_meter
payload: '{{states(''input_number.cold_water_meter'')|float(0)}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/{{now().year}}/{{now().month}}/power_meter_t1
payload: '{{((states(''input_number.power_meter_t1''))|float(0))}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/{{now().year}}/{{now().month}}/power_meter_t2
payload: '{{((states(''input_number.power_meter_t2''))|float(0))}}'
retain: true
- action: mqtt.publish
data:
topic: utility/main/{{now().year}}/{{now().month}}/timestamp
payload: '{{as_timestamp(now()) | timestamp_custom(''%d-%m-%Y %H:%M:%S'',true,0)}}'
retain: true
- action: notify.telegram
data:
message: '{{ "\U0001f4a6" }} Показания счетчиков: ХВС: {{ states(''input_number.cold_water_meter'')|float(0)
}}м3 ГВС: {{ states(''input_number.hot_water_meter'')|float(0) }}м3
За месяц: ХВС: {{ states(''input_number.cold_water_meter_month'')|float(0)
}}м3 ГВС: {{ states(''input_number.hot_water_meter_month'')|float(0) }}м3
Стоимость: {{ ((states(''sensor.water_cost''))|float(0))}}руб.
'
- action: notify.telegram
data:
message: '{{ "\U0001f50c" }} Показания счетчика: Т1: {{ ((states(''input_number.power_meter_t1''))|float(0))}}
кВт*ч Т2: {{ ((states(''input_number.power_meter_t2''))|float(0))}} кВт*ч
За месяц: Т1: {{ ((states(''sensor.esp32_pzem_hb_energy_monthly_day'')|float(0)))|round(0,
''common'')}} кВт*ч Т2: {{ ((states(''sensor.esp32_pzem_hb_energy_monthly_night'')|float(0)))|round(0,
''common'')}} кВт*ч Стоимость: {{ ((states(''sensor.power_cost''))|float(0))
}} руб.
'
- action: input_number.set_value
data:
entity_id: input_number.power_meter_last_month_t1
value: '{{ states(''input_number.power_meter_t1'')|float(0)}}'
- action: input_number.set_value
data:
entity_id: input_number.power_meter_last_month_t2
value: '{{ states(''input_number.power_meter_t2'')|float(0)}}'
- action: switch.turn_on
entity_id: switch.esp32_pzem_hb_energy_reset_all
- delay:
seconds: 10
- action: switch.turn_on
entity_id: switch.esp32_pzem_hb_energy_reset_uart
- action: input_number.set_value
data:
entity_id: input_number.hot_water_meter_last_month
value: '{{ states(''input_number.hot_water_meter'')|float(0) }}'
- action: input_number.set_value
data:
entity_id: input_number.cold_water_meter_last_month
value: '{{ states(''input_number.cold_water_meter'')|float(0) }}'
- action: input_number.set_value
data:
entity_id:
- input_number.hot_water_meter_month
- input_number.cold_water_meter_month
value: 0
- alias: system_power_15A_current
id: system_power_15A_current
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.esp32_pzem_hb_current
above: 15
below: 20
conditions:
- condition: template
value_template: '{{ (as_timestamp(now())|int(0) - as_timestamp(state_attr(''automation.system_power_15A_current'',
''last_triggered''),0)|int(0)) > 10*60 }}'
actions:
- action: notify.telegram
data:
message: 🚨 Внимание! Общий ток более 15А!
- alias: system_power_20A_current
id: system_power_20A_current
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.esp32_pzem_hb_current
above: 20
below: 30
conditions:
- condition: template
value_template: '{{ (as_timestamp(now())|int(0) - as_timestamp(state_attr(''automation.system_power_20A_current'',
''last_triggered''),0)|int(0)) > 10*60 }}'
actions:
- action: notify.telegram
data:
message: 🚨 Внимание! Общий ток более 20А!
- alias: system_power_30A_current
id: system_power_30A_current
initial_state: true
triggers:
- trigger: numeric_state
entity_id: sensor.esp32_pzem_hb_current
above: 30
below: 40
conditions:
- condition: template
value_template: '{{ (as_timestamp(now())|int(0) - as_timestamp(state_attr(''automation.system_power_30A_current'',
''last_triggered''),0)|int(0)) > 10*60 }}'
actions:
- parallel:
- action: notify.telegram
data:
message: 🚨 Внимание! Общий ток более 30А!
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: Внимание! Общий ток более 30А
- alias: system_high_power_while_not_home
id: system_high_power_while_not_home
initial_state: true
triggers:
- trigger: time_pattern
minutes: /10
conditions:
- condition: template
value_template: '{{ is_state(''switch.system_security_mode'',''on'') }}'
- condition: numeric_state
entity_id: sensor.esp32_pzem_hb_power
above: 1200
actions:
- parallel:
- action: notify.telegram
data:
message: 🚨 Внимание! Охрана Вкл! Высокое потребление электричества {{states('sensor.esp32_pzem_hb_power')|int(0)}}Вт!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: Охрана Вкл! Высокое потребление электричества {{states('sensor.esp32_pzem_hb_power')|int(0)}}Вт!
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: system_water_consumption_not_home
id: system_water_consumption_not_home
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.0x00158d0006d31d78_contact
from: 'on'
to: 'off'
for:
seconds: 5
- trigger: state
entity_id: binary_sensor.0x00158d000236fcd5_contact
from: 'on'
to: 'off'
for:
seconds: 5
conditions:
- condition: template
value_template: '{{ is_state(''switch.system_security_mode'',''on'') }}'
actions:
- parallel:
- action: notify.telegram
data:
message: 🚨 Внимание! Охрана Вкл! Потребление {% if 'Hot' in trigger.to_state.attributes.friendly_name
%}горячей{%else%}холодной{%endif%} воды!
- action: notify.mobile_app_iphone_16_pro_dima
data:
title: Внимание!
message: Охрана Вкл! Потребление {% if 'Hot' in trigger.to_state.attributes.friendly_name
%}горячей{%else%}холодной{%endif%} воды!
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: system_water_sensor_outage
id: system_water_sensor_outage
initial_state: true
triggers:
- trigger: time_pattern
minutes: /30
conditions:
- condition: template
value_template: '{{ as_timestamp(now())- as_timestamp(states.sensor[''0x00158d0006d31d78_zigbee''].last_updated)
> 2*60*60 or as_timestamp(now())- as_timestamp(states.sensor[''0x00158d000236fcd5_zigbee''].last_updated)
> 2*60*60 }}
'
actions:
- action: notify.telegram
data:
message: ❌ Внимание! Нет данных от счетчика {% if as_timestamp(now())- as_timestamp(states.binary_sensor['0x00158d0006d31d78_contact'].last_updated)
> 2*60*60 %}холодной{%else%}горячей{%endif%} воды!
- alias: bathroom_water_valves_test
id: bathroom_water_valves_test
initial_state: true
triggers:
- trigger: time
at: 00:01:00
conditions:
- '{{ now().timestamp() | timestamp_custom(''%d'') | int(0) == 15 }}'
actions:
- action: notify.telegram
data:
message: 🚰 Проверка кранов - закрываем!
- action: button.press
entity_id: button.esp32_node_b_close_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_1
- delay: 00:00:05
- action: notify.telegram
data:
message: 🚰 Проверка кранов - открываем!
- action: button.press
entity_id: button.esp32_node_b_open_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_2
- action: notify.telegram
data:
message: ✅ Проверка кранов завершена!
- alias: vova_tv_control
id: vova_tv_control
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.tv_delay_off
id: timer_tv_off
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.tv_delay_on
id: timer_tv_on
- trigger: time
at: '22:00:00'
id: time_trigger_night
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d00023d3206_action
click_type: single
id: button_single_click
actions:
- choose:
- conditions:
- condition: trigger
id: timer_tv_off
sequence:
- action: media_player.turn_off
entity_id: media_player.tv_v
- action: switch.turn_off
entity_id: switch.0x00158d000290a093_plug
- action: timer.start
entity_id: timer.tv_delay_on
- conditions:
- condition: trigger
id: timer_tv_on
sequence:
- not:
- condition: time
after: '21:00:00'
- action: switch.turn_on
entity_id: switch.0x00158d000290a093_plug
- conditions:
- condition: trigger
id: time_trigger_night
sequence:
- action: switch.turn_off
entity_id: switch.0x00158d000290a093_plug
- conditions:
- condition: trigger
id: button_single_click
sequence:
- action: switch.toggle
entity_id: switch.0x00158d000290a093_plug
- alias: vova_purifier_breather_toggle
id: vova_purifier_breather_toggle
initial_state: true
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: person.sandra
to: home
- trigger: state
entity_id: person.sandra
from: home
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none','0'] %} {{\
\ trigger.from_state.state not in ignore and\n trigger.to_state.state not in\
\ ignore and\n trigger.to_state.state != trigger.from_state.state }}\n"
actions:
- choose:
- conditions:
- condition: state
entity_id: person.sandra
state: home
sequence:
- action: fan.turn_on
entity_id: fan.purifier2s
- action: switch.turn_off
entity_id: switch.system_breather_auto_v
- conditions:
- condition: not
conditions:
- condition: state
entity_id: person.sandra
state: home
sequence:
- action: fan.turn_off
entity_id: fan.purifier2s
- action: switch.turn_off
entity_id: switch.system_hourly_mode_breather_v
- action: switch.turn_on
entity_id: switch.system_breather_auto_v
- alias: vova_purifier_favorite_mode
id: vova_purifier_favorite_mode
initial_state: false
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: fan.purifier2s
for:
minutes: 1
conditions:
- condition: state
entity_id: fan.purifier2s
state: 'on'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: binary_sensor.tod_day
state: 'off'
- condition: not
conditions:
- condition: state
entity_id: fan.purifier2s
attribute: preset_mode
state: Favorite
actions:
- action: fan.set_preset_mode
data:
entity_id: fan.purifier2s
preset_mode: Favorite
- alias: vova_sleep_time
id: vova_sleep_time
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Пора спать
conditions:
- condition: template
value_template: '{{ trigger.event.data.entity_id == ''media_player.yandex_v''
}}'
actions:
- action: switch.turn_off
entity_id: switch.0x00158d000290a093_plug
- action: media_player.turn_off
entity_id: media_player.apple_tv_v
- parallel:
- action: light.turn_off
entity_id: light.square_led_v
data:
transition: 15
- action: light.turn_off
entity_id: light.square_led_v_nightlight
data:
transition: 15
- action: light.turn_off
entity_id: light.0x54ef441000d4e7fd_light
data:
transition: 15
- if:
- condition: not
conditions:
- condition: state
entity_id: media_player.yandex_v
state: playing
then:
- action: media_player.play_media
entity_id: media_player.yandex_v
data:
media_content_id: Включи спят усталые игрушки на повтор
media_content_type: command
- alias: bathroom_washing_machine_washing
id: bathroom_washing_machine_washing
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.washer_b
from: 'off'
to: 'on'
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
- condition: state
entity_id: input_select.washer_state
state:
- Idle
- Drying
actions:
- action: input_number.set_value
data:
entity_id: input_number.washer_start
value: '{{as_timestamp (now())|int(0)}}'
- action: timer.cancel
entity_id: timer.washer_working
- action: timer.start
entity_id: timer.washer_working
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Washing
- action: notify.telegram
data:
message: ⏳ Стирка начата!
- alias: bathroom_washing_machine_sensors_issue
id: bathroom_washing_machine_sensors_issue
initial_state: true
triggers:
platform: state
entity_id: binary_sensor.washer_b
to: 'on'
from: 'off'
for:
seconds: 5
conditions:
- condition: state
entity_id: binary_sensor.a4c138833042_contact
state: 'on'
actions:
- action: input_boolean.turn_on
entity_id: input_boolean.washer_door_issue
- action: notify.telegram
data:
message: ❌ Внимание! Обнаружена ошибка сенсора двери стиральной машины!
- alias: bathroom_washing_machine_pause_hatch_open
id: bathroom_washing_machine_hatch_open
triggers:
- trigger: state
entity_id: binary_sensor.a4c138833042_contact
to: 'on'
conditions:
- condition: state
entity_id: input_select.washer_state
state:
- Washing
- condition: numeric_state
entity_id: sensor.washing_machine_stopwatch
below: 21
actions:
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Pause
- action: input_boolean.turn_off
data:
entity_id: input_boolean.washer_drying
- action: timer.cancel
entity_id: timer.washer_working
- action: notify.telegram
data_template:
message: ⏳ Стирка приостановлена
- alias: bathroom_washing_machine_pause_hatch_close
id: bathroom_washing_machine_hatch_close
triggers:
- trigger: state
entity_id: binary_sensor.a4c138833042_contact
to: 'off'
conditions:
- condition: state
entity_id: input_select.washer_state
state: Pause
actions:
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Washing
- action: timer.cancel
entity_id: timer.washer_working
- action: timer.start
entity_id: timer.washer_working
- action: notify.telegram
data_template:
message: ⏳ Стирка продолжена
- alias: bathroom_washing_machine_drying
id: bathroom_washing_machine_drying
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.washer_b
to: 'off'
from: 'on'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.a4c138833042_contact
state: 'off'
- condition: state
entity_id: input_select.washer_state
state:
- Washing
- Pause
- condition: state
entity_id: input_boolean.washer_door_issue
state: 'off'
sequence:
- action: timer.cancel
entity_id: timer.washing_machine_door, timer.washer_working
- action: timer.start
entity_id: timer.washing_machine_door
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Drying
- action: counter.increment
entity_id: counter.washing_machine_runs
- action: input_number.set_value
data:
entity_id: input_number.washer_b_run_time
value: '{{ (states(''input_number.washer_b_run_time'') | float(0) + (((as_timestamp(now())|
int(0) - states(''input_number.washer_start'')| int(0)) / 60 )| round(0,
''common'') / 60))|round(2, ''common'') }}'
- action: input_number.set_value
data:
entity_id: input_number.washing_gel_usage
value: '{% set a = ((as_timestamp(now())| int(0) - states(''input_number.washer_start'')|
int(0)) / 60 )| round(0, ''common'')|int(0) %} {% set k = (0.02 if 20
< a < 35 else 0.04) | float(0) %} {{ states(''input_number.washing_gel_usage'')|float(0)
+ (0 if a <20 else k)|float(0) }}
'
- action: notify.telegram
data:
message: ⌛ Стирка завершена! Время стирки составило {{((as_timestamp(now())|
int(0) - states('input_number.washer_start')| int(0)) / 60 )| round(0,
'common') }}мин.
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Ст+ирка завершен+а! В+ытащите бель+ё пож+алуста!
- conditions:
- condition: state
entity_id: input_boolean.washer_door_issue
state: 'on'
sequence:
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Drying
- action: timer.cancel
entity_id: timer.washing_machine_door
- action: timer.start
entity_id: timer.washing_machine_door
- alias: bathroom_washing_machine_open_door_after_washing
id: bathroom_washing_machine_open_door_after_washing
initial_state: true
triggers:
- trigger: event
event_type: timer.finished
event_data:
entity_id: timer.washing_machine_door
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
- condition: state
entity_id: input_select.washer_state
state: Drying
- condition: state
entity_id: binary_sensor.a4c138833042_contact
state: 'off'
actions:
- action: notify.telegram
data:
message: '{{''💨''}} Откройте дверцу стиральной машины!'
- action: timer.cancel
entity_id: timer.washing_machine_door
- action: timer.start
entity_id: timer.washing_machine_door
- alias: bathroom_washing_machine_ready_notification
id: bathroom_washing_machine_ready_notification
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b43ad4_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0001ae9f61_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b48381_motion
- trigger: event
event_type: xiaomi_aqara.motion
event_data:
entity_id: binary_sensor.0x00158d0002b4729d_motion
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 5
- condition: state
entity_id: binary_sensor.tod_day
state: 'on'
- condition: state
entity_id: switch.system_dark_mode
state: 'off'
- condition: state
entity_id: input_select.washer_state
state: Drying
- condition: state
entity_id: binary_sensor.a4c138833042_contact
state: 'off'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.bathroom_washing_machine_ready_notification'',
''last_triggered''),0)|int(0)) > 30*60 }}'
- condition: template
value_template: '{{(as_timestamp(now())-as_timestamp(state_attr(''automation.bathroom_washing_machine_drying'',
''last_triggered''),0)|int(0)) > 30*60 }}'
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: media_player.yandex_k
media_content_id: Ст+ирка завершен+а! В+ытащите бель+ё пож+алуста!
- alias: bathroom_washing_machine_open_door_after_washing_stop
id: bathroom_washing_machine_open_door_after_washing_stop
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.a4c138833042_contact
to: 'on'
from: 'off'
conditions:
- condition: numeric_state
entity_id: sensor.ha_uptime
above: 0
- condition: state
entity_id: input_select.washer_state
state: Drying
actions:
- action: notify.telegram
data:
message: '{{''✅''}} Дверца стиральной машинки открыта!'
- action: timer.cancel
entity_id: timer.washing_machine_door, timer.washing_machine_door
- action: input_boolean.turn_off
entity_id: input_boolean.washer_door_issue
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Idle
- alias: bathroom_washing_machine_open_door_issue_flag_reset
id: bathroom_washing_machine_open_door_issue_flag_reset
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.a4c138833042_contact
to:
- 'on'
- 'off'
conditions:
- condition: state
entity_id: input_boolean.washer_door_issue
state: 'on'
actions:
- action: input_boolean.turn_off
entity_id: input_boolean.washer_door_issue
- alias: bathroom_washing_machine_idle_door_open_10m
id: bathroom_washing_machine_idle_door_open_10m
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.a4c138833042_contact
from: 'off'
to: 'on'
for:
minutes: 30
actions:
- action: input_select.select_option
data:
entity_id: input_select.washer_state
option: Idle
- alias: system_water_leak_detected
id: system_water_leak_detected
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d00023297e7_moisture
- binary_sensor.0x00158d00023684c2_moisture
- binary_sensor.0x00158d0002373a67_moisture
- binary_sensor.0x00158d0002349f5b_moisture
- binary_sensor.54ef44c335f4_water_leak
to: 'on'
for:
seconds: 5
actions:
- action: light.turn_on
data:
entity_id: '{% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"
or trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak" %}light.esp32_node_k_led
{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}light.esp32_node_hs_toilet
{%else%}light.esp32_node_hs_bathroom {%endif%}
'
effect: Red_Alarm
brightness: 255
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- parallel:
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: Вним+ание! Вним+ание! Обнар+ужена ут+ечка вод+ы {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}н+а
к+ухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туал+ете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%}! Обнар+ужена ут+ечка вод+ы {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}н+а
к+ухне{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туал+ете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%}! Вод+а перекрыв+ается!'
- action: notify.telegram
data:
message: '{{''\U000026d4''}}Внимание! Обнаружена утечка воды {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}на
кухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туалете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%}! Вода перекрывается!'
- action: notify.mobile_app_iphone_16_pro_dima
data:
message: '{{''\U000026d4''}}Внимание! Обнаружена утечка воды {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}на
кухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туалете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%}! Вода перекрывается!'
data:
push:
sound:
name: default
critical: 1
volume: 1.0
- action: button.press
entity_id: button.esp32_node_b_close_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_1
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Вод+а перекр+ыта! Устран+ите прот+ечку вод+ы
{% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}н+а
к+ухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туал+ете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%}!'''
- action: notify.telegram
data:
message: '{{''\U000026d4''}} Внимание! Вода перекрыта! Устраните протечку воды
{% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}на кухне{%elif
trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под кухонной мебелью{%elif
trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в туалете{%else%}в
ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%} для включения воды!
'
- alias: system_water_leak_resolved
id: system_water_leak_resolved
initial_state: true
mode: queued
max: 10
max_exceeded: silent
triggers:
- trigger: state
entity_id:
- binary_sensor.0x00158d00023297e7_moisture
- binary_sensor.0x00158d00023684c2_moisture
- binary_sensor.0x00158d0002373a67_moisture
- binary_sensor.0x00158d0002349f5b_moisture
- binary_sensor.54ef44c335f4_water_leak
to: 'off'
from: 'on'
for:
seconds: 3
actions:
- action: homeassistant.turn_off
data:
entity_id: "{% if trigger.entity_id==\"binary_sensor.0x00158d00023297e7_moisture\"\
%}light.esp32_node_k_led {%elif trigger.entity_id==\"binary_sensor.0x00158d00023684c2_moisture\"\
%}light.esp32_node_hs_toilet {%else%}light.esp32_node_hs_bathroom {%endif%}\
\ \n"
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Прот+ечка вод+ы {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}н+а
к+ухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туал+ете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%} устранен+а! Спас+ибо!'''
- action: notify.telegram
data:
message: '{{''\U00002705''}} Протечка воды {% if trigger.entity_id=="binary_sensor.0x00158d00023297e7_moisture"%}на
кухне{%elif trigger.entity_id=="binary_sensor.54ef44c335f4_water_leak"%}под
кухонной мебелью{%elif trigger.entity_id=="binary_sensor.0x00158d00023684c2_moisture"%}в
туалете{%else%}в ванне{%if trigger.entity_id=="binary_sensor.0x00158d0002349f5b_moisture"%}
за машинкой{%endif%}{%endif%} устранена!
'
- alias: system_water_leak_turn_water_off
id: system_water_leak_turn_water_off
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef609b_action
click_type: single
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.esp32_node_b_valve_status
state: 'off'
sequence:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Действие не трубуется - краны уже закрыты!'''
- conditions:
- not:
- condition: state
entity_id: binary_sensor.esp32_node_b_valve_status
state: 'off'
sequence:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Зап+ущена процедура выключ+ения вод+ы!'''
- action: notify.telegram
data:
message: Внимание! Запущена процедура принудительного закрытия воды!
- action: button.press
entity_id: button.esp32_node_b_close_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_1
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Внимание! Вода выключена!'''
- action: notify.telegram
data:
message: Внимание! Вода принидительно закрыта!
- alias: system_water_leak_turn_water_on
id: system_water_leak_turn_water_on
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef609b_action
click_type: double
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: group.leak_detected
state: 'off'
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.esp32_node_b_valve_status
state: 'on'
sequence:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Действие не трубуется - краны уже открыты!'''
- conditions:
- not:
- condition: state
entity_id: binary_sensor.esp32_node_b_valve_status
state: 'on'
sequence:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Запущена процедура включ+ения вод+ы!'''
- action: notify.telegram
data:
message: Внимание! Запущена процедура принудительного включения воды!
- action: button.press
entity_id: button.esp32_node_b_open_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_2
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Вода включена!'''
- action: notify.telegram
data:
message: Внимание! Вода принидительно открыта!
- alias: system_water_leak_turn_water_on_leak_detected
id: system_water_leak_turn_water_on_leak_detected
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef609b_action
click_type: double
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
- condition: state
entity_id: group.leak_detected
state: 'on'
actions:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Включ+ение вод+ы невозм+ожно! Прот+ечка н+е
устранен+а! Дл+я принуд+ительного включ+ения вод+ы нажм+ите и удерживайте
кнопку!'''
- action: notify.telegram
data:
message: Внимание! Попытка открыть воду, протечка НЕ устранена!
- alias: system_water_leak_turn_water_on_force
id: system_water_leak_turn_water_on_force
initial_state: true
triggers:
- trigger: event
event_type: xiaomi_aqara.click
event_data:
entity_id: sensor.0x00158d0001ef609b_action
click_type: hold
conditions:
- condition: template
value_template: '{{ is_state_attr(this.entity_id, ''current'',0) }}'
actions:
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! {{ iif(is_state("group.leak_detected", "on"),
"Прот+ечка вод+ы н+е устранен+а! ", "") }}Зап+ущена процедура принуд+ительного
включ+ения вод+ы!'''
- action: notify.telegram
data:
message: Внимание! {{ iif(is_state("group.leak_detected", "on"), "Протечка воды
не устранена! ", "") }}Запущена процедура принудительного включения воды!
- action: button.press
entity_id: button.esp32_node_b_open_valve
- delay: 00:00:25
- action: switch.turn_off
entity_id: switch.esp32_node_b_relay_2
- action: media_player.volume_set
data:
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id:
- media_player.{{states('input_select.main_audio_out')|lower}}
- media_player.yandex_k
media_content_id: '''Вним+ание! Вод+а включен+а! {{ iif(is_state("group.leak_detected",
"on"), "Прот+ечка н+е устранен+а! ", "") }}'''
- action: notify.telegram
data:
message: Внимание! Вода включена! {{ iif(is_state("group.leak_detected", "on"),
"Протечка НЕ устранена!", "") }}
- alias: system_water_valves_action
id: system_water_valves_action
initial_state: true
triggers:
- trigger: state
entity_id: binary_sensor.esp32_node_b_valve_active
to: null
conditions:
- condition: template
value_template: "{% set ignore = ['unknown', 'unavailable', 'none','0'] %} {{\
\ trigger.from_state.state not in ignore and\n trigger.to_state.state not in\
\ ignore and\n trigger.to_state.state != trigger.from_state.state }}\n"
actions:
- action: notify.telegram
data:
message: '{%- set current_state = states(''binary_sensor.esp32_node_b_valve_status'')
%} {%- set current_status = states(''binary_sensor.esp32_node_b_valve_active'')
%} {%- if current_state == ''on'' and current_status == ''on'' %}{{''\U000026d4''}}
Внимание! Закрытие кранов! {%- elif current_state == ''off'' and current_status
== ''off'' %}{{''\U00002705''}} Краны закрыты! {%- elif current_state == ''off''
and current_status == ''on'' %}{{''\U000026d4''}} Внимание! Открытие кранов!
{%- elif current_state == ''on'' and current_status == ''off'' %}{{''\U00002705''}}
Краны открыты! {%- endif %}'
- alias: system_critical_wifi_devices_unavailable
id: system_critical_wifi_devices_unavailable
initial_state: true
mode: queued
max_exceeded: silent
max: 25
triggers:
- trigger: state
entity_id:
- light.square_led_v
- light.square_led_s
- light.round_led_mb
- light.round_led_k
- light.round_led_hs
- switch.shelly_1_led_mb
- switch.shelly_1pm_led_v
- fan.purifier2s
- switch.ms01a_plug_hb
- switch.ms01b_plug_hb
- switch.pbs100_plug_st
- switch.shelly_1_led_s
- light.light_bar_s
to: unavailable
for:
minutes: 1
actions:
- action: notify.telegram
data:
message: '❌ {{trigger.to_state.name|title}}: {{trigger.from_state.state}} ->
{{trigger.to_state.state}}'
- alias: system_critical_wifi_devices_available
id: system_critical_wifi_devices_available
initial_state: true
max_exceeded: silent
max: 25
triggers:
- trigger: state
entity_id:
- light.square_led_v
- light.square_led_s
- light.round_led_mb
- light.round_led_k
- light.round_led_hs
- switch.shelly_1_led_mb
- switch.shelly_1pm_led_v
- fan.purifier2s
- switch.ms01a_plug_hb
- switch.ms01b_plug_hb
- switch.pbs100_plug_st
- switch.shelly_1_led_s
- light.light_bar_s
from: unavailable
conditions:
- condition: template
value_template: '{{(trigger.to_state.last_changed - trigger.from_state.last_changed).total_seconds()
> 60 }}'
actions:
- action: notify.telegram
data:
message: '✅ {{trigger.to_state.name|title}}: {{trigger.from_state.state}} ->
{{trigger.to_state.state}}'
- alias: system_critical_switches_toggle
id: system_critical_switches_toggle
initial_state: true
max_exceeded: silent
mode: queued
max: 10
triggers:
- trigger: state
entity_id:
- switch.0x00158d00023e5812_outlet
- switch.esp32_node_b_relay_5
- switch.shelly_1_led_s
- switch.digma_strip_hb_relay1
- switch.digma_strip_hb_relay2
- switch.digma_strip_hb_relay3
- switch.digma_strip_hb_relay4
- switch.0x00158d00039bd56d_plug
- switch.0x00158d0002a36433_channel_1
- switch.0x00158d0002a36f7f_channel_2
- switch.shelly_1_led_mb
- switch.shelly_1pm_led_v
- switch.0x00158d0001a248e3_channel_2
- switch.0x00158d0001f26071_outlet
to: 'off'
for:
seconds: 30
actions:
- action: switch.turn_on
data:
entity_id: '{{ trigger.entity_id }}'
- action: notify.telegram
data:
message: ✅ Включение - {{trigger.to_state.name|title}}
- alias: system_ya_speakers_volume_set
id: system_ya_speakers_volume_set
initial_state: true
max_exceeded: silent
triggers:
- trigger: state
entity_id: binary_sensor.tod_day
to: 'on'
for:
seconds: 30
- trigger: state
entity_id: switch.system_dark_mode
to: 'off'
for:
seconds: 30
actions:
- repeat:
for_each:
- media_player.yandex_k
- media_player.yandex_hb
- media_player.yandex_v
- media_player.yandex_s
- media_player.yandex_mb
sequence:
- action: media_player.volume_set
data:
entity_id: '{{ repeat.item }}'
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_hb
volume_level: '{{(states("input_number.main_volume")|float(0) + 0.2)|round(2)
}}'
- alias: system_when_daddy_get_back_home
id: system_when_daddy_get_back_home
initial_state: true
triggers:
- trigger: event
event_type: yandex_intent
event_data:
text: Когда папа вернется
actions:
- if:
- condition: state
entity_id: input_boolean.dima_business_trip
state: 'off'
then:
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: '{{ trigger.event.data.entity_id }}'
media_content_id: Папа дома и пока не уезжает в командировку
extra:
volume_level: '{{states("input_number.main_volume")|float(0)}}'
else:
- action: media_player.play_media
data:
media_content_type: '{{ states(''input_select.alice_mode'') }}'
entity_id: '{{ trigger.event.data.entity_id }}'
media_content_id: '{{[''Папа вернется через'',''Папа приедет через'',''Через'',''Папа
вернется из командировки через'']|random}} {{ (states(''input_datetime.dima_return_date'')
| as_datetime | as_local - today_at()).days|format(morph=''день'', as_text=false)
}}'
extra:
volume_level: '{{states("input_number.main_volume")|float(0)}}'
- alias: system_ya_speaker_k_volume_set
id: system_ya_speaker_k_volume_set
initial_state: true
max_exceeded: silent
triggers:
- trigger: time
at: 06:25:00
actions:
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '0.2'
- action: media_player.volume_set
data:
entity_id: media_player.yandex_k
volume_level: '0.2'