updating configuration

This commit is contained in:
Your Name
2026-03-10 07:08:59 +00:00
commit 9498a076ee
238 changed files with 18119 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
2026.2.3
+1
View File
@@ -0,0 +1 @@
{"pid": 106582, "version": 1, "ha_version": "2026.2.3", "start_ts": 1773083280.3675456}
+368
View File
@@ -0,0 +1,368 @@
- id: '1673173451954'
alias: Doorbell to Alice
description: ''
trigger:
- platform: state
entity_id:
- binary_sensor.0x00158d0003a5d05d_lock
- sensor.0x00158d0003a5d05d_action
to: doorbell
condition: []
action:
- service: media_player.play_media
data:
media_content_type: text
media_content_id: Звонок в дверь!
extra:
volume_level: 0.6
target:
device_id:
- b7ae13cff2fb04a56f1611a7bd9fdb5d
- e600d40f953494c41ec919d2148fd570
- 49e5a1a4d554d924f61ecaa8968630bf
- 644968e9ab73b2930d141deb2aaec43f
- 37e299b4ee90a2e39ae7e04328439ff4
- 8883de9fc71bef0b663c61faa4fbefb4
- f6dbda8398f290149bc8cb48a858452c
- service: notify.telegram
data:
message: Звонок в дверь!
mode: single
- id: '1694942205257'
alias: Unavailable entity detection & notification
description: ''
use_blueprint:
path: gmlupatelli/unavailable_entities_notification.yaml
input:
actions:
- service: notify.telegram
data:
message: 'У вас есть недоступные устройства: {{entities}}'
data:
parse_mode: html
exclude:
device_id:
- fd4ed129390c68716ee6b5ca4ee6abe5
- a5ddb672314ab72275816e22b91c1e0a
- id: '1696509659566'
alias: Turn On Mirror When Heater Is On
description: ''
trigger:
- platform: device
type: turned_on
device_id: 156bb319cb4e575d641e681a1775d672
entity_id: c3ec9a6bd6247cdf3771e968416f7a1d
domain: switch
condition: []
action:
- type: turn_on
device_id: a86a73f9c0cded2becbaea4b58a0c3ca
entity_id: ca2d574ba695471945a76eb9fbd14f7c
domain: switch
mode: single
- id: '1700337065799'
alias: Turn_on_AC_heater_evening
description: ''
trigger:
- platform: time
at: '23:00:00'
condition:
- condition: state
entity_id: sensor.tag_danil_iphone
state: mainroom
action:
- service: remote.send_command
target:
device_id: 3493f23712217b8085d5e05870b37fb4
data:
command: power_on
device: ac
mode: single
- id: '1700337256838'
alias: Turn_off_AC_at_morning
description: ''
triggers:
- at: 07:00:00
trigger: time
conditions: []
actions:
- action: climate.set_hvac_mode
metadata: {}
target:
entity_id: climate.ac_bedroom
data:
hvac_mode: 'off'
- action: fan.turn_off
metadata: {}
data: {}
target:
entity_id: fan.ventiliatsionnaia_sistema
mode: single
- id: '1703092205692'
alias: Turn on curtain light when opened
description: ''
trigger:
- platform: device
device_id: 4b8180d9d908e128920565c0bd31e661
domain: cover
entity_id: 03d25d0c4f844c78905fa58906f7a383
type: opened
condition: []
action:
- type: turn_on
device_id: b446ed5b21362d52ea95df7a716274cc
entity_id: 0ff56edad96924c2438d3df1fa7b27f7
domain: switch
mode: single
- id: '1703092227298'
alias: Turn off curtain light when closed
description: ''
trigger:
- platform: device
device_id: 4b8180d9d908e128920565c0bd31e661
domain: cover
entity_id: 03d25d0c4f844c78905fa58906f7a383
type: closed
condition: []
action:
- type: turn_off
device_id: b446ed5b21362d52ea95df7a716274cc
entity_id: 0ff56edad96924c2438d3df1fa7b27f7
domain: switch
mode: single
- id: '1706383112067'
alias: Control Washer+Dishwasher
description: ''
trigger:
- platform: state
entity_id:
- switch.dishwasher
- switch.washer
from: 'on'
to: 'off'
condition: []
action:
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id:
- switch.washer
- switch.dishwasher
mode: single
- id: '1722417271264'
alias: Bath ventilation timer
description: ''
trigger:
- entity_id: fan.ventilation_bath
for:
minutes: 15
platform: state
to: 'on'
condition: []
action:
- data: {}
entity_id: fan.ventilation_bath
service: homeassistant.turn_off
mode: single
- id: '1722417292820'
alias: Shower ventilation timer
description: ''
trigger:
- entity_id: fan.ventilation_shower
for:
minutes: 15
platform: state
to: 'on'
condition: []
action:
- data: {}
entity_id: fan.ventilation_shower
service: homeassistant.turn_off
mode: single
- id: '1728058650984'
alias: Childroom Turn Off Ac in the morning
description: ''
trigger:
- platform: time
at: 07:00:00
condition: []
action:
- repeat:
count: 2
sequence:
- data:
command: power_off_2
device: ac
action: remote.send_command
target:
device_id: d217abb5dd76093411769c4677b6b002
mode: single
- id: '1728058703218'
alias: Childroom Turn On Ac in the evening
description: ''
trigger:
- platform: time
at: '23:00:00'
condition:
- condition: state
entity_id: sensor.tag_danil_iphone
state: mainroom
action:
- data:
command: power_on
device: ac
action: remote.send_command
target:
device_id: d217abb5dd76093411769c4677b6b002
mode: single
- id: '1752861666697'
alias: Громкость по умолчанию Спальня
description: ''
use_blueprint:
path: gist.githubusercontent.com/yandex_station_default_volume.yaml
input:
yandex_station: media_player.yandex_station_m00fhe2003seqr
number_volume: 5
- id: '1752930144657'
alias: Громкость по умолчанию Кухня
description: ''
use_blueprint:
path: gist.githubusercontent.com/yandex_station_default_volume.yaml
input:
yandex_station: media_player.yandex_station_m00r46000m53db
number_volume: 5
- id: '1752930171971'
alias: Громкость по умолчанию Душевая
description: ''
use_blueprint:
path: gist.githubusercontent.com/yandex_station_default_volume.yaml
input:
yandex_station: media_player.yandex_station_ff98f029ab48468d28c557be
number_volume: 5
- id: '1752930196035'
alias: Громкость по умолчанию Детская
description: ''
use_blueprint:
path: gist.githubusercontent.com/yandex_station_default_volume.yaml
input:
yandex_station: media_player.yandex_station_940050344110102101cb
- id: '1752930212912'
alias: Громкость по умолчанию Ванна
description: ''
use_blueprint:
path: gist.githubusercontent.com/yandex_station_default_volume.yaml
input:
yandex_station: media_player.yandex_station_ly00000000000008674600007209d3f5
number_volume: 5
- id: '1753212993227'
alias: Low Battery Notifications & Actions
description: ''
use_blueprint:
path: Blackshome/low-battery-notifications-and-actions.yaml
input:
include_time: time_enabled
time: '10:00:00'
battery_level: 10
exclude_sensors:
entity_id:
- sensor.monsterphone13_battery_level
include_easy_notify: disabled_easy_notify
notify_device: []
include_persistent_notification: disabled_persistent_notification
include_custom_actions: enable_custom_actions
custom_actions:
- action: notify.telegram_monster
data:
message: '<b>Садится батарея в датчиках:</b>
{{all_sensors}}'
data:
parse_mode: html
- id: '1767036452762'
alias: Дверь в гостиную - закрыта
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.door_mainroom_slider_contact
to:
- 'off'
from:
- 'on'
conditions: []
actions:
- action: light.turn_off
metadata: {}
target:
entity_id: light.plug_yolka
data: {}
- action: input_boolean.turn_on
metadata: {}
target:
entity_id: input_boolean.guest_mode
data: {}
mode: single
- id: '1767036484608'
alias: Дверь в гостиную - открыта
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.door_mainroom_slider_contact
to:
- 'on'
from:
- 'off'
conditions: []
actions:
- action: light.turn_on
metadata: {}
target:
entity_id: light.plug_yolka
data: {}
- action: input_boolean.turn_off
metadata: {}
target:
entity_id: input_boolean.guest_mode
data: {}
mode: single
- id: '1768899857603'
alias: Детская - Утром отключаем отопление
description: ''
triggers:
- trigger: time
at: 08:00:00
conditions:
- condition: state
entity_id: input_boolean.radiator_enabled
state:
- 'on'
actions:
- action: climate.set_temperature
metadata: {}
target:
entity_id: climate.radiator_childroom
data:
temperature: 22
mode: single
- id: '1768899913660'
alias: Детская - Вечером включаем отопление
description: ''
triggers:
- trigger: time
at: '22:00:00'
conditions:
- condition: state
entity_id: input_boolean.radiator_enabled
state:
- 'on'
actions:
- action: climate.set_temperature
metadata: {}
target:
entity_id: climate.radiator_childroom
data:
temperature: 24
mode: single
@@ -0,0 +1,919 @@
blueprint:
name: Aqara Magic Cube Zigbee2MQTT MQTT Triggered - 2023-10-20
author: SirGoodenough
description: "This Blueprint uses a Zigbee2MQTT built sensor to sort out the 38(+54)
unique commands available from the Xiaomi Magic Cube Remote. (Some unique commands
are available thru templating only. See the related document.)\nThe split out
of functions gives you the ability to assign local scripts or functions to do
the things you want the remote to do.\nFunctions that are left empty will simply
do nothing.\n\n### \U0001F34E There is a set of 36 event functions that will trigger
on specific actions on specific sides that are listed as **Group 1 actions \U0001F34E**.\n\n###
\U0001F34A There is a set of 6 event functions that will trigger on specific actions
on *ANY* side that are listed as **Group 2 sctions \U0001F34A**.\n\n### \U0001F350
There is a set of 30 event functions that will trigger on cube flips to & froma
specific sides that are listed as **Group 3 sctions \U0001F350**.\n\n### \U0001F369
There are 2 actions (shake and drop) that only occur once and are OK to be combined
with any other group.\n\nPlease be aware that ALL actions except the 2 listed
above, \U0001F369 will trigger an action in **ALL 3 groups at the same time**
every time. Therefore I suggest if you just have a couple of things you want this
remote to do that you choose the *ANY / Group 2 / \U0001F34A* events.\nIf you
want more than a few events, you should select actions in **Group 1 / \U0001F34E
OR Group 3 / \U0001F350**.\nWith careful selection you can use mixed groups, but
you run the risk of a single cube action triggering more than 1 Home Assistant
action and making a mess of things \U0001F371.\n\n#### NOTICE: This cube *can*
be triggered 124 ways, but only 38(+54) of them are unique (with templating).\n#####
This blueprint has been known to freak out when there are spaces or odd characters
in the MQTT Topic. Make sure there are no spaces, ONLY a single word, and ONLY
A thru Z, a thru z, and 0 thru 9 in the topic. (``` / ``` is ok between device
and topic) If there are, you will need to change the name of the cube to remove
those characters.\n### IF YOU SEE --> TemplateError: Must provide a device or
entity ID\nIf you get an error like that, The friendly_name in Z2M likely does
not match the friendly_name on HA. To fix go into the Z2M ```Open web UI``` and
set the friendly_name there. Setting this in just HA or in Z2M without ticking
the update HA box will cause this. See the blueprint documentation page for details.\n\nThere
is sample code to make the template sensor in the help file on GitHib named [Zigbee2MQTT
- Xiaomi Cube Controller MQTT Triggered.md](https://github.com/SirGoodenough/HA_Blueprints/blob/master/Automations/Zigbee2MQTT%20-%20Xiaomi%20Cube%20Controller%20MQTT%20Triggered.md)
& in the [community page related to this](https://community.home-assistant.io/t/zigbee2mqtt-xiaomi-cube-controller/393203).\n\nWithin
this blueprint there is an event handler that will latch the last command that
the blueprint finds and sends that to the event buss. From there a simple Template
sensor can grab it and show you the last action sent. Thie will help when setting
up new functions and to troubleshoot strange behaviours.\n\n> This was forked
from https://community.home-assistant.io/t/z2m-xiaomi-cube-controller/263006 1.2
project authored by luckypoppy and the friends he pulled together to create the
base. I sincerely thank Him (Them) for their work. I felt there needed to be more
documentation for rookie users to properly set this up. I had quite a few questions
and when I saw a few questions in that chat from people struggling, I wanted to
help. I also had a better idea for troubleshooting info.\n\U0001F4E9 There is
not an official version control system for Blueprints. However I have found something
that comes pretty close. It is not perfect, but for **MOST** Blueprints, it does
just fine. I encourage you to check this script out and use it to easily check
if I have updated this blueprint. \U0001F517 [koter84 Blueprint Update Script](https://github.com/koter84/HomeAssistant_Blueprints_Update/)\n\n[Community
link for this blueprint](https://community.home-assistant.io/t/zigbee2mqtt-xiaomi-cube-controller/393203)\n"
source_url: https://raw.githubusercontent.com/SirGoodenough/HA_Blueprints/master/Automations/Zigbee2MQTT-Xiaomi_Cube_Controller_MQTT_Triggered.yaml
domain: automation
homeassistant:
min_version: 2023.8.0
input:
topic:
name: Topic
description: "The main MQTT Topic for your cube. \nDetails on finding the correct
topic can be found here: \n[Find my Cube Topic](https://github.com/SirGoodenough/HA_Blueprints/blob/master/Automations/Zigbee2MQTT%20-%20Xiaomi%20Cube%20Controller%20MQTT%20Triggered.md#-to-make-the-blueprint-work-it-will-need)\n"
default: zigbee2mqtt/?
selector:
text:
multiline: false
additional_conditions:
name: Additional conditions
description: "Extra conditions you may want to add to this automation \n(Example:
Home occupied, TV on, etc)\n"
default: []
selector:
condition: {}
slide_face_0:
name: "Group 1 actions \U0001F34E Slide the cube with face 0 up"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
doubletap_face_0:
name: "Group 1 actions \U0001F34E Double tap the cube with face 0 up"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
flipped90_face_0:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 0"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
flipped180_face_0:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 0"
description: '**NOTE:** This action is trick to master, and should be used sparingly...
Face 0 is the one with the ''Aqara'' LOGO'
default: []
selector:
action: {}
flip_from_any_to_face_0:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 0"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_0:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 0 up"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_ccw_face_0:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 0
up"
description: Face 0 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
slide_face_1:
name: "Group 1 actions \U0001F34E Slide the cube with face 1 up"
default: []
selector:
action: {}
doubletap_face_1:
name: "Group 1 actions \U0001F34E Double tap the cube with face 1 up"
default: []
selector:
action: {}
flipped90_face_1:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 1"
default: []
selector:
action: {}
flipped180_face_1:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 1"
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
default: []
selector:
action: {}
flip_from_any_to_face_1:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 1"
description: Face 1 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_1:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 1 up"
default: []
selector:
action: {}
rotate_ccw_face_1:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 1
up"
default: []
selector:
action: {}
slide_face_2:
name: "Group 1 actions \U0001F34E Slide the cube with face 2 up"
default: []
selector:
action: {}
doubletap_face_2:
name: "Group 1 actions \U0001F34E Double tap the cube with face 2 up"
default: []
selector:
action: {}
flipped90_face_2:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 2"
default: []
selector:
action: {}
flipped180_face_2:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 2"
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
default: []
selector:
action: {}
flip_from_any_to_face_2:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 2"
description: Face 2 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_2:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 2 up"
default: []
selector:
action: {}
rotate_ccw_face_2:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 2
up"
default: []
selector:
action: {}
slide_face_3:
name: "Group 1 actions \U0001F34E Slide the cube with face 3 up"
default: []
selector:
action: {}
doubletap_face_3:
name: "Group 1 actions \U0001F34E Double tap the cube with face 3 up"
default: []
selector:
action: {}
flipped90_face_3:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 3"
default: []
selector:
action: {}
flipped180_face_3:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 3"
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
default: []
selector:
action: {}
flip_from_any_to_face_3:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 3"
description: Face 3 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_3:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 3 up"
default: []
selector:
action: {}
rotate_ccw_face_3:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 3
up"
default: []
selector:
action: {}
slide_face_4:
name: "Group 1 actions \U0001F34E Slide the cube with face 4 up"
default: []
selector:
action: {}
doubletap_face_4:
name: "Group 1 actions \U0001F34E Double tap the cube with face 4 up"
default: []
selector:
action: {}
flipped90_face_4:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 4"
default: []
selector:
action: {}
flipped180_face_4:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 4"
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
default: []
selector:
action: {}
flip_from_any_to_face_4:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 4"
description: Face 4 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_4:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 4 up"
default: []
selector:
action: {}
rotate_ccw_face_4:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 4
up"
default: []
selector:
action: {}
slide_face_5:
name: "Group 1 actions \U0001F34E Slide the cube with face 5 up"
default: []
selector:
action: {}
doubletap_face_5:
name: "Group 1 actions \U0001F34E Double tap the cube with face 5 up"
default: []
selector:
action: {}
flipped90_face_5:
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 5"
default: []
selector:
action: {}
flipped180_face_5:
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 5"
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
default: []
selector:
action: {}
flip_from_any_to_face_5:
name: "Group 1 actions \U0001F34E Flip the cube from any to face 5"
description: Face 5 is the one with the 'Aqara' LOGO
default: []
selector:
action: {}
rotate_cw_face_5:
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 5 up"
default: []
selector:
action: {}
rotate_ccw_face_5:
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 5
up"
default: []
selector:
action: {}
shake:
name: "Shake the cube \U0001F369"
description: 'This trigger only occurs once in the set-up.
It can be combined in any group.'
default: []
selector:
action: {}
fall:
name: "Drop the cube \U0001F369"
description: 'This trigger only occurs once in the set-up.
It can be combined in any group.'
default: []
selector:
action: {}
slide_any:
name: "Group 2 actions \U0001F34A Slide the cube with any side"
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
doubletap_any:
name: "Group 2 actions \U0001F34A Double tap the cube with any side"
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
flipped90_any:
name: "Group 2 actions \U0001F34A Flip the cube 90 degrees to any side"
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
flipped180_any:
name: "Group 2 actions \U0001F34A Flip the cube 180 degrees any side"
description: "NOTE: This action is trick to master, and should be used sparingly...
Side doesn't matter on this one.\n**!!Warning!!** The automations for the
specific side will also trigger. \U0001F34E\U0001F350\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
rotate_cw_any:
name: "Group 2 actions \U0001F34A Rotate cube clockwise with any side"
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
rotate_ccw_any:
name: "Group 2 actions \U0001F34A Rotate cube counter clockwise with any side"
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
0_from_1:
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 1"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
0_from_2:
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 2"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
0_from_3:
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 3"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 0
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
0_from_4:
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 4"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
0_from_5:
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 5"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
1_from_0:
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 0"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
1_from_2:
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 2"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
1_from_3:
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 3"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
1_from_4:
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 4"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 1
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
1_from_5:
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 5"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
2_from_0:
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 0"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
2_from_1:
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 1"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
2_from_3:
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 3"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
2_from_4:
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 4"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
2_from_5:
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 5"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 2
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
3_from_0:
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 0"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 3
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
3_from_1:
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 1"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
3_from_2:
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 2"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
3_from_4:
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 4"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
3_from_5:
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 5"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
4_from_0:
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 0"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
4_from_1:
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 1"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 4
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
4_from_2:
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 2"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
4_from_3:
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 3"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
4_from_5:
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 5"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
5_from_0:
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 0"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
5_from_1:
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 1"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
and the ANY \U0001F34A automations will also trigger. \U0001F34E\U0001F350\nI
suggest using only one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
5_from_2:
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 2"
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 5
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
5_from_3:
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 3"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
5_from_4:
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 4"
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
one of the three groups of triggers, not multiple groups..."
default: []
selector:
action: {}
trigger:
- platform: mqtt
topic: !input topic
variables:
action: '{{ trigger.payload_json.action }}'
angle: '{{ trigger.payload_json.action_angle | float(0.0) }}'
side: '{{ trigger.payload_json.side }}'
op_mode: '{{ trigger.payload_json.operation_mode }}'
topic_var: !input topic
friendly_name: '{{ topic_var.split(''/'')[1] | regex_replace("[^A-Za-z0-9_/./-]",
"") }}'
device_id: '{{ device_id( friendly_name ) }}'
ieee_id_long: '{{(( device_attr( device_id, ''identifiers'') |list)[0][1]) }}'
ieee_id: '{{ieee_id_long.split(''_'')[1] }}'
num_name: last side
num_ha_name: '{{ ''number.'' + friendly_name + ''_last_side'' }}'
num_ha_val: '{{ states(num_ha_name) | default(0) | int(0) }}'
last_side: ' {# The first time it will not be there, so make sure its 0 instead
of undefined. #} {% if not num_ha_val in (''none'', ''null'', ''unavailable'',
'''') %} {{ num_ha_val }} {% else %} 0 {% endif %}'
mdl: Number Helper for Z2M Cube Integration
mf: SirGoodenough
sa: house
sw: '2023-10-20'
hw: https://github.com/SirGoodenough/HA_Blueprints/blob/master/Automations/Zigbee2MQTT
- Xiaomi Cube Controller.yaml
cu: https://community.home-assistant.io/t/zigbee2mqtt-xiaomi-cube-controller/393203
config_topic_2: '{{ ''homeassistant/number/'' + ieee_id + ''/last_side/config''
}}'
topic_2: '{{ ''homeassistant/number/'' + ieee_id + ''/last_side'' }}'
condition:
- condition: template
value_template: '{{ trigger.payload_json is defined and trigger.payload_json.action
is defined and trigger.payload_json.action in (''rotate_right'', ''rotate_left'',
''flip90'', ''flip180'', ''slide'', ''tap'', ''shake'', ''fall'') }}'
- alias: User pick
condition: !input additional_conditions
action:
- alias: Make number helper to store last side
service: mqtt.publish
data:
topic: '{{ config_topic_2 }}'
retain: true
payload: "{ \"name\": \"{{ num_name }}\",\n \"avty_t\": \"homeassistant/status\",\n
\ \"uniq_id\": \"{{ friendly_name + '-' + device_id }}\",\n \"cmd_t\": \"{{
topic_2 }}\",\n \"sta_t\": \"{{ topic_2 }}\",\n \"min\": \"0\",\n \"max\":
\"6\",\n \"step\": \"1\",\n \"mode\": \"box\",\n \"ret\": true,\n \"dev\":
{\n \"name\": \"{{ friendly_name }}\",\n \"mdl\": \"{{ mdl }}\",\n \"mf\":
\"{{ mf }}\",\n \"sa\": \"{{ sa }}\",\n \"sw\": \"{{ sw }}\",\n \"hw\":
\"{{ hw }}\",\n \"cu\": \"{{ cu }}\",\n \"ids\": [\n \"{{ ieee_id
+ '-' + num_name }}\"\n ]\n }\n}\n"
- alias: Fire Last Action event. This is for optional troubleshooting data.
event: cube_last_action
event_data:
action: '{{ action }}'
side: '{{ side }}'
last_side: '{{ last_side }}'
friendly_name: '{{ friendly_name }}'
device_id: '{{ device_id }}'
ieee_id: '{{ ieee_id }}'
angle: '{{ angle }}'
- alias: Store the current_side as the last_side for the next trigger
service: number.set_value
target:
entity_id: '{{ num_ha_name }}'
data:
value: '{{ side }}'
- alias: "Group 2 \U0001F34A and No Group \U0001F369 These are action events for ANY
Side"
choose:
- conditions: '{{ action == "slide" }}'
sequence: !input slide_any
- conditions: '{{ action == "tap" }}'
sequence: !input doubletap_any
- conditions: '{{ action == "rotate_right" }}'
sequence: !input rotate_cw_any
- conditions: '{{ action == "rotate_left" }}'
sequence: !input rotate_ccw_any
- conditions: '{{ action == "shake" }}'
sequence: !input shake
- conditions: '{{ action == "fall" }}'
sequence: !input fall
- conditions: '{{ action == "flip90" }}'
sequence:
- parallel:
- !input flipped90_any
- alias: These are flip to specific side from any side events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input flip_from_any_to_face_0
- conditions: '{{ side == 1 }}'
sequence: !input flip_from_any_to_face_1
- conditions: '{{ side == 2 }}'
sequence: !input flip_from_any_to_face_2
- conditions: '{{ side == 3 }}'
sequence: !input flip_from_any_to_face_3
- conditions: '{{ side == 4 }}'
sequence: !input flip_from_any_to_face_4
- conditions: '{{ side == 5 }}'
sequence: !input flip_from_any_to_face_5
- conditions: '{{ action == "flip180" }}'
sequence:
- parallel:
- !input flipped180_any
- alias: These are flip to specific side from any side events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input flip_from_any_to_face_0
- conditions: '{{ side == 1 }}'
sequence: !input flip_from_any_to_face_1
- conditions: '{{ side == 2 }}'
sequence: !input flip_from_any_to_face_2
- conditions: '{{ side == 3 }}'
sequence: !input flip_from_any_to_face_3
- conditions: '{{ side == 4 }}'
sequence: !input flip_from_any_to_face_4
- conditions: '{{ side == 5 }}'
sequence: !input flip_from_any_to_face_5
- alias: "Group 1 \U0001F34E These are action events based on the action broken down
by side"
choose:
- conditions: '{{ action == "slide" }}'
sequence:
- alias: These are slide events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input slide_face_0
- conditions: '{{ side == 1 }}'
sequence: !input slide_face_1
- conditions: '{{ side == 2 }}'
sequence: !input slide_face_2
- conditions: '{{ side == 3 }}'
sequence: !input slide_face_3
- conditions: '{{ side == 4 }}'
sequence: !input slide_face_4
- conditions: '{{ side == 5 }}'
sequence: !input slide_face_5
- conditions: '{{ action == "tap" }}'
sequence:
- alias: These are doubletap events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input doubletap_face_0
- conditions: '{{ side == 1 }}'
sequence: !input doubletap_face_1
- conditions: '{{ side == 2 }}'
sequence: !input doubletap_face_2
- conditions: '{{ side == 3 }}'
sequence: !input doubletap_face_3
- conditions: '{{ side == 4 }}'
sequence: !input doubletap_face_4
- conditions: '{{ side == 5 }}'
sequence: !input doubletap_face_5
- conditions: '{{ action == "flip90" }}'
sequence:
- alias: These are flipped90 events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input flipped90_face_0
- conditions: '{{ side == 1 }}'
sequence: !input flipped90_face_1
- conditions: '{{ side == 2 }}'
sequence: !input flipped90_face_2
- conditions: '{{ side == 3 }}'
sequence: !input flipped90_face_3
- conditions: '{{ side == 4 }}'
sequence: !input flipped90_face_4
- conditions: '{{ side == 5 }}'
sequence: !input flipped90_face_5
- conditions: '{{ action == "flip180" }}'
sequence:
- alias: These are flipped180 events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input flipped180_face_0
- conditions: '{{ side == 1 }}'
sequence: !input flipped180_face_1
- conditions: '{{ side == 2 }}'
sequence: !input flipped180_face_2
- conditions: '{{ side == 3 }}'
sequence: !input flipped180_face_3
- conditions: '{{ side == 4 }}'
sequence: !input flipped180_face_4
- conditions: '{{ side == 5 }}'
sequence: !input flipped180_face_5
- conditions: '{{ action == "rotate_right" }}'
sequence:
- alias: These are rotate CW events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input rotate_cw_face_0
- conditions: '{{ side == 1 }}'
sequence: !input rotate_cw_face_1
- conditions: '{{ side == 2 }}'
sequence: !input rotate_cw_face_2
- conditions: '{{ side == 3 }}'
sequence: !input rotate_cw_face_3
- conditions: '{{ side == 4 }}'
sequence: !input rotate_cw_face_4
- conditions: '{{ side == 5 }}'
sequence: !input rotate_cw_face_5
- conditions: '{{ action == "rotate_left" }}'
sequence:
- alias: These are rotate CCW events
choose:
- conditions: '{{ side == 0 }}'
sequence: !input rotate_ccw_face_0
- conditions: '{{ side == 1 }}'
sequence: !input rotate_ccw_face_1
- conditions: '{{ side == 2 }}'
sequence: !input rotate_ccw_face_2
- conditions: '{{ side == 3 }}'
sequence: !input rotate_ccw_face_3
- conditions: '{{ side == 4 }}'
sequence: !input rotate_ccw_face_4
- conditions: '{{ side == 5 }}'
sequence: !input rotate_ccw_face_5
- alias: "Group 3 \U0001F350 Side to side jump events"
choose:
- conditions: '{{ side == 0 }}'
sequence:
- alias: To side 0 from any events
choose:
- conditions: '{{ last_side == 1 }}'
sequence: !input 0_from_1
- conditions: '{{ last_side == 2 }}'
sequence: !input 0_from_2
- conditions: '{{ last_side == 3 }}'
sequence: !input 0_from_3
- conditions: '{{ last_side == 4 }}'
sequence: !input 0_from_4
- conditions: '{{ last_side == 5 }}'
sequence: !input 0_from_5
- conditions: '{{ side == 1 }}'
sequence:
- alias: To side 1 from any events
choose:
- conditions: '{{ last_side == 0 }}'
sequence: !input 1_from_0
- conditions: '{{ last_side == 2 }}'
sequence: !input 1_from_2
- conditions: '{{ last_side == 3 }}'
sequence: !input 1_from_3
- conditions: '{{ last_side == 4 }}'
sequence: !input 1_from_4
- conditions: '{{ last_side == 5 }}'
sequence: !input 1_from_5
- conditions: '{{ side == 2 }}'
sequence:
- alias: To side 2 from any events
choose:
- conditions: '{{ last_side == 0 }}'
sequence: !input 2_from_0
- conditions: '{{ last_side == 1 }}'
sequence: !input 2_from_1
- conditions: '{{ last_side == 3 }}'
sequence: !input 2_from_3
- conditions: '{{ last_side == 4 }}'
sequence: !input 2_from_4
- conditions: '{{ last_side == 5 }}'
sequence: !input 2_from_5
- conditions: '{{ side == 3 }}'
sequence:
- alias: To side 3 from any events
choose:
- conditions: '{{ last_side == 0 }}'
sequence: !input 3_from_0
- conditions: '{{ last_side == 1 }}'
sequence: !input 3_from_1
- conditions: '{{ last_side == 2 }}'
sequence: !input 3_from_2
- conditions: '{{ last_side == 4 }}'
sequence: !input 3_from_4
- conditions: '{{ last_side == 5 }}'
sequence: !input 3_from_5
- conditions: '{{ side == 4 }}'
sequence:
- alias: To side 4 from any events
choose:
- conditions: '{{ last_side == 0 }}'
sequence: !input 4_from_0
- conditions: '{{ last_side == 1 }}'
sequence: !input 4_from_1
- conditions: '{{ last_side == 2 }}'
sequence: !input 4_from_2
- conditions: '{{ last_side == 3 }}'
sequence: !input 4_from_3
- conditions: '{{ last_side == 5 }}'
sequence: !input 4_from_5
- conditions: '{{ side == 5 }}'
sequence:
- alias: To side 5 from any events
choose:
- conditions: '{{ last_side == 0 }}'
sequence: !input 5_from_0
- conditions: '{{ last_side == 1 }}'
sequence: !input 5_from_1
- conditions: '{{ last_side == 2 }}'
sequence: !input 5_from_2
- conditions: '{{ last_side == 3 }}'
sequence: !input 5_from_3
- conditions: '{{ last_side == 4 }}'
sequence: !input 5_from_4
- alias: Delay ⏱ for debounce so toggle functions work. Also blueprint is in single
mode.
delay: 00:00:01
mode: single
max_exceeded: silent
@@ -0,0 +1,68 @@
blueprint:
name: Громкость станции по умолчанию
description: Громкость станции по умолчанию
domain: automation
input:
yandex_station:
name: Яндекс станция
selector:
entity:
domain:
- media_player
multiple: false
number_volume:
name: Громкость по умолчанию (от 1 до 10)
selector:
number:
min: 1.0
max: 10.0
step: 1.0
mode: slider
default: 4
source_url: https://gist.githubusercontent.com/kai-zer-ru/b790de73330ac58068e12b61e7c1cd0a/raw/78113275ea0a08c43fb5cca947341991ccb503b2/yandex_station_default_volume.yaml
mode: restart
max_exceeded: silent
variables:
yandex_station: !input yandex_station
number_volume: !input number_volume
number_volume_percent: '{{ number_volume | int / 10 }}'
trigger:
- platform: state
entity_id: !input yandex_station
to: paused
for:
hours: 0
minutes: 5
seconds: 0
- platform: state
entity_id: !input yandex_station
to: standby
for:
hours: 0
minutes: 5
seconds: 0
- platform: state
entity_id: !input yandex_station
to: 'off'
for:
hours: 0
minutes: 5
seconds: 0
conditions:
- condition: not
conditions:
- condition: state
entity_id: !input yandex_station
state: playing
action:
- if:
- condition: template
value_template: '{{ state_attr(yandex_station, "volume_level")|round(1) != number_volume_percent
}}'
then:
- action: media_player.volume_set
metadata: {}
data:
volume_level: '{{ number_volume_percent }}'
target:
entity_id: !input yandex_station
@@ -0,0 +1,103 @@
blueprint:
name: Unavailable entity detection & notification
description: Regularly test all entities' status to check for unavailability.
domain: automation
source_url: https://github.com/gmlupatelli/blueprints_repo/blob/master/unavailable_entities_notification/unavailable_entities_notification.yaml
input:
time:
name: Time to test on
description: Test is run at configured time
default: '10:00:00'
selector:
time: {}
monday_enabled:
name: Monday
description: Run test on Monday
default: true
selector:
boolean: {}
tuesday_enabled:
name: Tuesday
description: Run test on Tuesday
default: true
selector:
boolean: {}
wednesday_enabled:
name: Wednesday
description: Run test on Wednesday
default: true
selector:
boolean: {}
thursday_enabled:
name: Thursday
description: Run test on Thursday
default: true
selector:
boolean: {}
friday_enabled:
name: Friday
description: Run test on Friday
default: true
selector:
boolean: {}
saturday_enabled:
name: Saturday
description: Run test on Saturday
default: true
selector:
boolean: {}
sunday_enabled:
name: Sunday
description: Run test on Sunday
default: true
selector:
boolean: {}
exclude:
name: Excluded Entities
description: Entities (e.g. smartphone) to exclude from detection. Only entities
and devices are supported, areas must be expanded!
default: {}
selector:
target: {}
actions:
name: Actions
description: Notifications or similar to be run. {{entities}} is replaced with
the names of unavailable entities.
selector:
action: {}
variables:
monday_enabled: !input monday_enabled
tuesday_enabled: !input tuesday_enabled
wednesday_enabled: !input wednesday_enabled
thursday_enabled: !input thursday_enabled
friday_enabled: !input friday_enabled
saturday_enabled: !input saturday_enabled
sunday_enabled: !input sunday_enabled
current_day: '{{ now().weekday() | int }}'
exclude: !input exclude
entities: "{% set result = namespace(includedEntities=[], excludedEntities = [])
%}\n{% if exclude.entity_id is defined %} \n {% set result.excludedEntities
= result.excludedEntities + exclude.entity_id %}\n{% endif %}\n{% if exclude.device_id
is defined %}\n {% for device_id in exclude.device_id %}\n {% set result.excludedEntities
= result.excludedEntities + device_entities(device_id) %}\n {% endfor %}\n{%
endif %}\n{% for state in states | selectattr('state', 'eq', 'unavailable') %}\n
\ {% if state.state == 'unavailable' and not state.entity_id in result.excludedEntities
%}\n {% set result.includedEntities = result.includedEntities + [state.name]
%}\n {% endif %}\n{% endfor %}\n{{\"⤵ \\n- \"}}{{result.includedEntities|join('\\n-
')}}"
trigger:
- platform: time
at: !input time
condition:
- condition: template
value_template: "{{ \n (current_day == 0 and monday_enabled) or \n (current_day
== 1 and tuesday_enabled) or \n (current_day == 2 and wednesday_enabled) or\n
\ (current_day == 3 and thursday_enabled) or \n (current_day == 4 and friday_enabled)
or\n (current_day == 5 and saturday_enabled) or\n (current_day == 6 and sunday_enabled)\n}}"
- condition: template
value_template: '{{ entities != "⤵ \n-"}}'
action:
- choose: []
default: !input actions
mode: single
max_exceeded: silent
@@ -0,0 +1,54 @@
blueprint:
name: Motion-activated Light
description: Turn on a light when motion is detected.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
input:
motion_entity:
name: Motion Sensor
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent
trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
action:
- alias: "Turn on the light"
service: light.turn_on
target: !input light_target
- alias: "Wait until there is no motion from device"
wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- alias: "Wait the number of seconds that has been set"
delay: !input no_motion_wait
- alias: "Turn off the light"
service: light.turn_off
target: !input light_target
@@ -0,0 +1,46 @@
blueprint:
name: Zone Notification
description: Send a notification to a device when a person leaves a specific zone.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml
input:
person_entity:
name: Person
selector:
entity:
domain: person
zone_entity:
name: Zone
selector:
entity:
domain: zone
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
integration: mobile_app
trigger:
platform: state
entity_id: !input person_entity
variables:
zone_entity: !input zone_entity
# This is the state of the person when it's in this zone.
zone_state: "{{ states[zone_entity].name }}"
person_entity: !input person_entity
person_name: "{{ states[person_entity].name }}"
condition:
condition: template
# The first case handles leaving the Home zone which has a special state when zoning called 'home'.
# The second case handles leaving all other zones.
value_template: "{{ zone_entity == 'zone.home' and trigger.from_state.state == 'home' and trigger.to_state.state != 'home' or trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}"
action:
- alias: "Notify that a person has left the zone"
domain: mobile_app
type: notify
device_id: !input notify_device
message: "{{ person_name }} has left {{ zone_state }}"
@@ -0,0 +1,84 @@
blueprint:
name: Confirmable Notification
description: >-
A script that sends an actionable notification with a confirmation before
running the specified action.
domain: script
source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml
input:
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
integration: mobile_app
title:
name: "Title"
description: "The title of the button shown in the notification."
default: ""
selector:
text:
message:
name: "Message"
description: "The message body"
selector:
text:
confirm_text:
name: "Confirmation Text"
description: "Text to show on the confirmation button"
default: "Confirm"
selector:
text:
confirm_action:
name: "Confirmation Action"
description: "Action to run when notification is confirmed"
default: []
selector:
action:
dismiss_text:
name: "Dismiss Text"
description: "Text to show on the dismiss button"
default: "Dismiss"
selector:
text:
dismiss_action:
name: "Dismiss Action"
description: "Action to run when notification is dismissed"
default: []
selector:
action:
mode: restart
sequence:
- alias: "Set up variables"
variables:
action_confirm: "{{ 'CONFIRM_' ~ context.id }}"
action_dismiss: "{{ 'DISMISS_' ~ context.id }}"
- alias: "Send notification"
domain: mobile_app
type: notify
device_id: !input notify_device
title: !input title
message: !input message
data:
actions:
- action: "{{ action_confirm }}"
title: !input confirm_text
- action: "{{ action_dismiss }}"
title: !input dismiss_text
- alias: "Awaiting response"
wait_for_trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_confirm }}"
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_dismiss }}"
- choose:
- conditions: "{{ wait.trigger.event.data.action == action_confirm }}"
sequence: !input confirm_action
- conditions: "{{ wait.trigger.event.data.action == action_dismiss }}"
sequence: !input dismiss_action
@@ -0,0 +1,27 @@
blueprint:
name: Invert a binary sensor
description: Creates a binary_sensor which holds the inverted value of a reference binary_sensor
domain: template
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/template/blueprints/inverted_binary_sensor.yaml
input:
reference_entity:
name: Binary sensor to be inverted
description: The binary_sensor which needs to have its value inverted
selector:
entity:
domain: binary_sensor
variables:
reference_entity: !input reference_entity
binary_sensor:
state: >
{% if states(reference_entity) == 'on' %}
off
{% elif states(reference_entity) == 'off' %}
on
{% else %}
{{ states(reference_entity) }}
{% endif %}
# delay_on: not_used in this example
# delay_off: not_used in this example
# auto_off: not_used in this example
availability: "{{ states(reference_entity) not in ('unknown', 'unavailable') }}"
+25
View File
@@ -0,0 +1,25 @@
# Loads default set of integrations. Do not remove.
default_config:
homeassistant:
packages: !include_dir_named packages
external_url: "https://home-fnv.yandex5.ru"
internal_url: "http://192.168.1.6:8123"
http:
use_x_forwarded_for: true
ip_ban_enabled: true
login_attempts_threshold: 15
trusted_proxies:
- 172.19.0.0/24
- 172.18.0.0/24
- 192.168.1.0/24
# Text to speech
tts:
- platform: google_translate
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

+3
View File
@@ -0,0 +1,3 @@
192.168.1.36:
banned_at: '2023-11-26T14:36:40.730001+00:00'
+21
View File
@@ -0,0 +1,21 @@
tag_danil_iphone:
name: tag_danil_iphone
mac:
icon:
picture:
track: true
tag_svetlana_iphone:
name: tag_svetlana_iphone
mac:
icon:
picture:
track: true
tag_mama_iphone:
name: tag_mama_iphone
mac:
icon:
picture:
track: true
@@ -0,0 +1,12 @@
alarm_control_panel:
- platform: manual
name: ha_alarm
code_arm_required: false
delay_time: 5
trigger_time: 5
arming_time: 5
homeassistant:
customize:
alarm_control_panel.ha_alarm:
friendly_name: Охрана
@@ -0,0 +1,6 @@
homeassistant:
customize:
person.danil:
entity_picture: "/local/danil.jpg"
person.svetlana:
entity_picture: "/local/svetlana.jpg"
@@ -0,0 +1,15 @@
---
input_select:
presence_extended:
name: presence_extended
options:
- 'Away'
- 'Home'
- 'Just Arrived'
- 'Just Left'
- 'Holidays'
input_boolean:
guest_mode:
name: Наличие гостей
icon: mdi:alert-octagon
@@ -0,0 +1,17 @@
sensor:
- platform: mqtt_room
device_id: !secret tag_danil_keys
name: tag_danil_keys
state_topic: home/presence
timeout: 15
away_timeout: 60
input_boolean:
tag_danil_keys:
name: Данил (Ключи)
initial: on
homeassistant:
customize:
sensor.tag_danil_keys:
friendly_name: Данил (Ключи)
@@ -0,0 +1,17 @@
sensor:
- platform: mqtt_room
device_id: !secret tag_danil_pocket
name: tag_danil_pocket
state_topic: home/presence
timeout: 15
away_timeout: 60
input_boolean:
tag_danil_pocket:
name: Данил (Кошелек)
initial: on
homeassistant:
customize:
sensor.tag_danil_pocket:
friendly_name: Данил (Кошелек)
@@ -0,0 +1,17 @@
sensor:
- platform: mqtt_room
device_id: !secret tag_mama_keys
name: tag_mama_keys
state_topic: home/presence
timeout: 15
away_timeout: 60
input_boolean:
tag_mama_keys:
name: Мама (Ключи)
initial: on
homeassistant:
customize:
sensor.tag_mama_keys:
friendly_name: Мама (Ключи)
@@ -0,0 +1,17 @@
sensor:
- platform: mqtt_room
device_id: !secret tag_svetlana_keys
name: tag_svetlana_keys
state_topic: home/presence
timeout: 15
away_timeout: 60
input_boolean:
tag_svetlana_keys:
name: Света (Ключи)
initial: on
homeassistant:
customize:
sensor.tag_svetlana_keys:
friendly_name: Света (Ключи)
@@ -0,0 +1,17 @@
sensor:
- platform: mqtt_room
device_id: !secret tag_test
name: tag_test
state_topic: home/presence
timeout: 15
away_timeout: 60
input_boolean:
tag_test:
name: Тестовая
initial: on
homeassistant:
customize:
sensor.tag_test:
friendly_name: Тестовая
+63
View File
@@ -0,0 +1,63 @@
yandex_smart_home:
filter:
include_domains:
- cover
- fan
- vacuum
include_entities:
# радиаторы
- climate.radiator_bedroom
- climate.radiator_bedroom_balcony
- climate.radiator_childroom
- climate.radiator_kitchen
- climate.radiator_mainroom
# кондиционеры
- climate.ac_mainroom
- climate.ac_kitchen
- climate.ac_childroom
- climate.ac_bedroom
# вентиляторы
- fan.ventilation_bath
- fan.ventilation_shower
- fan.ventiliatsionnaia_sistema
# свет
- light.danil_bedside_lamp_rgbww_light
- light.light_balcony_spotlight
- light.light_bath
- light.light_bath_shelf
- light.light_bedroom_mainlight
- light.light_bedroom_nightlight_left
- light.light_bedroom_nightlight_right
- light.light_bedroom_pc_nightlight
- light.light_bedroom_pc_spotlight
- light.light_bedroom_spotlights
- light.light_childroom_bed
- light.light_childroom_main
- light.light_childroom_spotlights
- light.light_hall_long
- light.light_kitchen_bar_lamp
- light.light_kitchen_set
- light.light_kitchen_spotlights
- light.light_kitchen_table_lamp
- light.light_mainroom_pc_spotlight
- light.light_shower_main_spotlights
- light.light_shower_shelf_light
- light.light_shower_shower_spotlights
- light.svetlana_bedside_lamp_rgbww_light
- media_player.bedroom_tv
- media_player.kitchen_tv
- media_player.mainroom_tv
- script.away_mode
- switch.light_bath_mirror
- switch.light_mainroom_mainlamp
- switch.light_mainroom_spotlights
- switch.shower_mirror
- switch.watercontrol_valves
- vacuum.dreame_p2027_6b1e_robot_cleaner
- light.plug_yolka
include_entity_globs:
- sensor.temperature_*_temperature
#exclude_entities:
# - light.highlight
#exclude_entity_globs:
# - sensor.weather_*
+13
View File
@@ -0,0 +1,13 @@
yandex_station_intents:
intents:
Как дела: Все хорошо
Коля наказан: Отключаю интернет в детской
Включи вентилятор:
execute_command: Поставь режим вентиляции на кондиционере в комнате {{ event.room }}
Выключи вентилятор:
execute_command: Выключи кондиционер в комнате {{ event.room }}
Не выключай свет в прихожей: # (4)
extra_phrases:
- Не выключай свет в коридоре
say_phrase: "{{ ['Договорились', 'Хорошо', 'Я тебя услышала', 'Оки-доки']|random }}"
+7
View File
@@ -0,0 +1,7 @@
mqtt:
sensor:
- name: door_lock_mqtt_action
unique_id: door_lock_mqtt_action
state_topic: "z2m-tcp/lock_door"
value_template: "{{ value_json.action }}"
json_attributes_topic: "z2m-tcp/lock_door"
@@ -0,0 +1,62 @@
input_boolean:
presence_control:
name: Контроль присутствия (действия по уходу и приходу)
icon: mdi:account-off
water_leak_control:
name: Контроль протечек
icon: mdi:water-off
water_control:
name: Контроль подачи воды
icon: mdi:water-pump
security_sensors_report:
name: Охрана периметра при отсутствии
icon: mdi:access-point
battery_report:
name: Отчет о состоянии батарей датчиков
icon: mdi:battery-charging-wireless-10
water_counters_report:
name: Отчет о поверке счетчиков
icon: mdi:alert-octagon
balance_report:
name: Отчет о балансе
icon: mdi:alert-octagon
watchdog_report:
name: Отчет watchdog
icon: mdi:lock-alert
aqara_lock_report:
name: Отчет замка
icon: mdi:lock-alert
############################# Автоматизации AppDaemon #############################
kitchenset_light_control:
name: Контроль подсветки гарнитура
bath_light_control:
name: Контроль света в ванной
shower_light_control:
name: Контроль света в душе
locker_light_control:
name: Контроль света шкаф
vent_control:
name: Управление бризером
vent_control_heat:
name: Управление подогревом бризера
bath_mirror_heat:
name: Управление подогревом зеркала ванна
############################# Настройки дома #############################
radiator_enabled:
name: Наличие отопления
+40
View File
@@ -0,0 +1,40 @@
recorder:
db_url: !secret recorder_db_url
purge_keep_days: 365
include:
domains:
- alarm_control_panel
- binary_sensor
- climate
- light
- lock
- sensor
- switch
- vacuum
- person
- counter
exclude:
domains:
- automation
- media_player
entity_globs:
- sensor.tag_*
entities:
- sun.sun
- binary_sensor.belorechenskaya_away
- binary_sensor.cube_158d00011065e3_2
- binary_sensor.living_room_thermostat_fan
- binary_sensor.living_room_thermostat_has_leaf
- binary_sensor.living_room_thermostat_is_locked
- binary_sensor.living_room_thermostat_is_using_emergency_heat
- binary_sensor.living_room_thermostat_online
- sensor.living_room_thermostat_hvac_state
- sensor.living_room_thermostat_operation_mode
- sensor.living_room_thermostat_target
- sensor.living_room_thermostat_temperature
- sensor.memory_free
- sensor.processor_use
- sensor.ssl_certificate_expiry
- sensor.swap_use_percent
- sensor.belorechenskaya_eta
- sensor.disk_use_percent
@@ -0,0 +1,18 @@
# Example configuration.yaml entry
climate:
- platform: dual_smart_thermostat
name: bedroom_climate
target_sensor: sensor.temperature_bedroom_temperature
heater: input_boolean.bedroom_climate_heater_switch
cooler: input_boolean.bedroom_climate_cooler_switch
openings:
- binary_sensor.window1
- binary_sensor.window2
openings_scope: [heat, cool]
precision: 1
input_boolean:
bedroom_climate_heater_switch:
name: Виртуальный контроллер нагрева Спальня
bedroom_climate_cooler_switch:
name: Виртуальный контроллер охлаждения Спальня
+103
View File
@@ -0,0 +1,103 @@
#Используем сенсоры нового образца от 2023
#Документация https://www.home-assistant.io/integrations/template/
#Это пример нового образца шаблонов
#template:
# - sensor:
# ...
# - binary_sensor:
template:
#Кухня: Кофемашина. Статус питания
#Объект: sensor.coffee_machine_power_status
- sensor:
- name: coffee_machine_power_status
unique_id: coffee_machine_power_status
icon: mdi:power
state: >
{% if not states('sensor.coffee_philips_5400_status') in ['Выключено','unknown']%} Включено
{% elif states('sensor.coffee_philips_5400_status') in ['Выключено','unknown'] or is_state('binary_sensor.coffee_philips_5400_power_status', 'off') %}Выключено
{% endif %}
attributes:
Making coffee: >
{% if not states('sensor.coffee_philips_5400_status') in ['Выключено','unknown'] %}
{{ states('sensor.coffee_philips_5400_status') }}
{% elif states('sensor.coffee_philips_5400_status') in ['Выключено','unknown'] or is_state('binary_sensor.coffee_philips_5400_power_status', 'off') %} Выключено
{% endif %}
group:
#Кухня: Кофемашина. Инфо и меню
#Объект: group.kitchen_coffee_machine_info_and_menu
kitchen_coffee_machine_info_and_menu:
name: "Кухня: Кофемашина. Сенсоры"
all: false
entities:
- sensor.coffee_philips_5400_esphome_version #Версия ESPHome
- sensor.coffee_philips_5400_coffee_grounds_container #Контейнер кофейной гущи
- sensor.coffee_philips_5400_coffee_pallet #Поддон
- sensor.coffee_philips_5400_grain_tray #Кофейные зерна в лотке
- sensor.coffee_philips_5400_system_status #Системный статус
- sensor.coffee_philips_5400_making_coffee #Приготовление кофе
- sensor.coffee_machine_power_status #Статус питания
- sensor.coffee_philips_5400_internal_temperature #Температура ESP32
- sensor.coffee_philips_5400_error_code #Системные ошибки
- sensor.coffee_philips_5400_free_mem_size #Размер свободной памяти
- binary_sensor.coffee_philips_5400_power_status #Статус питания
- number.coffee_philips_5400_valve_closed #Отвод воды закрыл носик кофемашины
- number.coffee_philips_5400_valve_open #Отвод воды открыл носик кофемашины
- number.coffee_philips_5400_valve_position #Позиция сервопривода
- switch.coffee_philips_5400_valve_open_closed #Открыть или закрыть носик кофемашины
- switch.coffee_philips_5400_automatic_water_drain #Автоматически открывать или закрывать носик кофемашины
- input_boolean.kitchen_coffee_machine_auto_coffee_making #Авто приготовление кофе
- counter.coffee_machine_making_coffee #Счетчик для авто приготовление кофе
#Кухня: Кофемашина. Кофейные напитки
#Объект: group.kitchen_coffee_machine_coffee_drinks
kitchen_coffee_machine_coffee_drinks:
name: "Кухня: Кофемашина. Кофейные напитки"
all: false
entities:
- select.coffee_philips_5400_drink #Выбор кофейных напиток
- select.coffee_philips_5400_cups #Выбор количество порции
- select.coffee_philips_5400_grind #Крепость, зерно или молотый кофе
- number.coffee_philips_5400_soffee #Объем кофе
- number.coffee_philips_5400_milk #Объем молока
- button.coffee_philips_5400_prepare #Показать рецепт в сенсоре 90
- sensor.coffee_philips_5400_messge2_90 #Пакет рецепта
- sensor.coffee_philips_5400_coffee_drink #Сенсор выбранного кофейного напитка
- button.coffee_philips_5400_build_coffee #Приготовить кофе
#Скрипт нужен для карточки, чтобы при нажатии на кнопку "Питание", кофемашина включилась или выключилась
script:
kitchen_coffee_machine_power:
alias: 'Кухня: Кофемашина. Питание'
sequence:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state("binary_sensor.coffee_philips_5400_power_status","off") }}'
alias: Кофемашина выключена
sequence:
- service: button.press
data: {}
target:
entity_id: button.coffee_philips_5400_power_on
alias: Включить кофемашину
- conditions:
- condition: template
value_template: '{{ is_state("binary_sensor.coffee_philips_5400_power_status","on") }}'
alias: Кофемашина включена
sequence:
- service: button.press
data: {}
target:
entity_id: button.coffee_philips_5400_power_off
alias: Выключить кофемашину
mode: single
icon: mdi:power
@@ -0,0 +1,3 @@
yandex_station:
username: !secret alice_login
password: !secret alice_pwd
+76
View File
@@ -0,0 +1,76 @@
# sensor:
# - platform: template
# sensors:
# dishwasher_remaining:
# friendly_name: "Dishwasher remaining"
# value_template: >
# {% if states('sensor.dishwasher_operation_state') == 'Inactive' %} -
# {% elif states('sensor.dishwasher_operation_state') == 'Finished' %} -
# {% elif states('sensor.dishwasher_remaining_program_time') == 'unavailable' %} -
# {% elif (as_timestamp(states('sensor.dishwasher_remaining_program_time')) - as_timestamp(now())) < 61 %} < 1 min
# {% else %}
# {{ (((as_timestamp(states('sensor.dishwasher_remaining_program_time')) - as_timestamp(now())) / 60) | round(0)) | string + " min" }}
# {% endif %}
# dishwasher_progress:
# friendly_name: "Dishwasher progress"
# value_template: >
# {% if states('sensor.dishwasher_operation_state') == 'Inactive' %} -
# {% elif states('sensor.dishwasher_operation_state') == 'Finished' %} -
# {% elif states('sensor.dishwasher_program_progress') == 'unavailable' %} -
# {% else %}
# {{ states('sensor.dishwasher_program_progress') + "%" }}
# {% endif %}
mqtt:
sensor:
- name: hc_dishwasher_state
unique_id: hc_dishwasher_state
state_topic: "homeconnect/dishwasher/state"
value_template: "{{ value_json.state }}"
json_attributes_topic: "homeconnect/dishwasher/state"
- name: hc_dishwasher_remaining
unique_id: hc_dishwasher_remaining
state_topic: "homeconnect/dishwasher/state"
value_template: "{{ value_json.remaining }}"
json_attributes_topic: "homeconnect/dishwasher/state"
binary_sensor:
- state_topic: "homeconnect/dishwasher/state"
name: hc_dishwasher_door
unique_id: hc_dishwasher_door
device_class: opening
payload_on: "Open"
payload_off: "Closed"
value_template: "{{ value_json.door }}"
json_attributes_topic: "homeconnect/dishwasher/state"
- state_topic: "homeconnect/dishwasher/state"
name: hc_dishwasher_power
unique_id: hc_dishwasher_power
payload_on: true
payload_off: false
value_template: "{{ value_json.power }}"
json_attributes_topic: "homeconnect/dishwasher/state"
template:
binary_sensor:
- name: hc_dishwasher_running
unique_id: hc_dishwasher_running
state: "{{ is_state('sensor.hc_dishwasher_state', 'Run') }}"
counter:
dishwasher_door_open_count:
name: dishwasher_door_open_count
homeassistant:
customize:
sensor.hc_dishwasher_state:
friendly_name: Посудомойка Статус
binary_sensor.hc_dishwasher_door:
friendly_name: Посудомойка Дверца
binary_sensor.hc_dishwasher_remaining:
friendly_name: Посудомойка До конца программы
sensor.hc_dishwasher_running:
friendly_name: Посудомоечная машина
binary_sensor.hc_dishwasher_power:
friendly_name: Посудомойка Питание
# homeconnect/dishwasher/state {"state": "Ready", "door": "Closed", "remaining": "0:15", "power": false, "lowwaterpressure": false, "aquastop": false, "error": false, "remainingseconds": 900}
View File
+35
View File
@@ -0,0 +1,35 @@
template:
- sensor:
- name: heat_total
unit_of_measurement: gKal
default_entity_id: sensor.heat_total
state: '{{ states(''sensor.saures_teploschetchik_fonvizina'') | float + 32.7600 | round(4) }}'
- name: heat_hourly_cost
unit_of_measurement: '₽'
state: "{{ states('sensor.heat_hourly') | float * 3035 | round(2) }}"
- name: heat_daily_cost
unit_of_measurement: '₽'
state: "{{ states('sensor.heat_daily') | float * 3035 | round(2) }}"
- name: heat_monthly_cost
unit_of_measurement: '₽'
state: "{{ states('sensor.heat_monthly') | float * 3035 | round(2) }}"
utility_meter:
heat_hourly:
source: sensor.saures_teploschetchik_fonvizina
cycle: hourly
heat_daily:
source: sensor.saures_teploschetchik_fonvizina
cycle: daily
heat_monthly:
source: sensor.saures_teploschetchik_fonvizina
cycle: monthly
homeassistant:
customize:
sensor.heat_hourly:
friendly_name: Тепло в час
sensor.heat_hourly:
friendly_name: Тепло в день
sensor.heat_hourly:
friendly_name: Тепло в месяц
@@ -0,0 +1,21 @@
telegram_bot:
- platform: polling
api_key: !secret telegram_key
allowed_chat_ids:
- !secret telegram_group_chat
- !secret telegram_monster_chat
- !secret telegram_sveta_chat
notify:
- platform: telegram
name: telegram
chat_id: !secret telegram_group_chat
parse_mode: html
- platform: telegram
name: telegram_monster
chat_id: !secret telegram_monster_chat
parse_mode: html
- platform: telegram
name: telegram_sveta
chat_id: !secret telegram_sveta_chat
parse_mode: html
@@ -0,0 +1,191 @@
# recorder:
# include:
# entities:
# - sensor.power_total
# - sensor.power_active_power
# - sensor.power_monthly_cost_t1
# - sensor.power_monthly_cost_t2
# - sensor.power_monthly_cost_t3
modbus:
name: modbus_power
type: serial
method: rtu
port: /dev/ttyUSB0
baudrate: 9600
stopbits: 1
bytesize: 8
parity: N #N
sensors:
- name: power_total
unit_of_measurement: kWh
slave: 1
address: 10
precision: 2
scale: 0.01
data_type: uint32
- name: power_voltage_a
slave: 1
address: 128
precision: 1
scale: 0.1
unit_of_measurement: 'V'
- name: power_voltage_b
slave: 1
address: 129
precision: 1
scale: 0.1
unit_of_measurement: 'V'
- name: power_voltage_c
slave: 1
address: 130
precision: 1
scale: 0.1
unit_of_measurement: 'V'
- name: power_current_a
slave: 1
address: 131
precision: 2
scale: 0.01
unit_of_measurement: 'A'
- name: power_current_b
slave: 1
address: 132
precision: 2
scale: 0.01
unit_of_measurement: 'A'
- name: power_current_c
slave: 1
address: 133
precision: 2
scale: 0.01
unit_of_measurement: 'A'
- name: power_active_power
slave: 1
address: 134
data_type: int32
precision: 3
scale: 0.001
unit_of_measurement: kW
- name: power_reactive_power
slave: 1
address: 139
data_type: int32
precision: 3
scale: 0.001
unit_of_measurement: 'Kvar'
- name: power_power_factor
slave: 1
address: 149
precision: 3
scale: 0.001
unit_of_measurement: '%'
- name: power_frequency
slave: 1
address: 17
precision: 2
scale: 0.01
unit_of_measurement: 'Hz'
sensor:
- platform: template
sensors:
power_main_total:
unit_of_measurement: 'kWh'
value_template: "{{ states('sensor.power_total') | float - 7072.7 | round(2) }}"
#7072.7 - разница показаний.
power_monthly_cost_t1:
unit_of_measurement: '₽'
value_template: "{{ states('sensor.power_monthly_t1') | float * 8.23 | round(2) }}"
power_monthly_cost_t2:
unit_of_measurement: '₽'
value_template: "{{ states('sensor.power_monthly_t2') | float * 2.62 | round(2) }}"
power_monthly_cost_t3:
unit_of_measurement: '₽'
value_template: "{{ states('sensor.power_monthly_t3') | float * 5.66 | round(2) }}"
power_monthly_cost_total:
unit_of_measurement: '₽'
value_template: "{{ states('sensor.power_monthly_cost_t1') | float + states('sensor.power_monthly_cost_t2') | float + states('sensor.power_monthly_cost_t3') | float | round(2) }}"
utility_meter:
power_hourly:
source: sensor.power_total
cycle: hourly
power_daily:
source: sensor.power_total
cycle: daily
power_monthly:
source: sensor.power_total
cycle: monthly
power_theory:
source: sensor.power_total
cycle: monthly
tariffs:
- t1
- t2
- t3
power_monthly_t1:
source: sensor.power_theory_t1
cycle: monthly
power_monthly_t2:
source: sensor.power_theory_t2
cycle: monthly
power_monthly_t3:
source: sensor.power_theory_t3
cycle: monthly
homeassistant:
customize:
sensor.power_main_total:
friendly_name: Общий счётчик
sensor.power_total:
friendly_name: Потреблено итого
sensor.power_voltage_a:
friendly_name: Напряжение A
sensor.power_voltage_b:
friendly_name: Напряжение B
sensor.power_voltage_c:
friendly_name: Напряжение C
sensor.power_current_a:
friendly_name: Ток A
sensor.power_current_b:
friendly_name: Ток B
sensor.power_current_c:
friendly_name: Ток C
sensor.power_frequency:
friendly_name: Частота
sensor.power_active_power:
friendly_name: Активная нагрузка
sensor.power_reactive_power:
friendly_name: Реактивная нагрузка
sensor.power_power_factor:
friendly_name: Коэффициент мощности
sensor.power_export:
friendly_name: Экспортировано
sensor.power_import:
friendly_name: Импортировано
+59
View File
@@ -0,0 +1,59 @@
sensor:
# Old phone - 75f45ca5a0b55b563f827339c91da5be
- platform: mqtt_room
device_id: "irk:f8cfda8942512292fd767127fd5028c1"
name: 'tag_danil_iphone'
state_topic: 'espresense/devices/irk:f8cfda8942512292fd767127fd5028c1'
timeout: 30
away_timeout: 300
- platform: mqtt_room
device_id: "irk:23c0abe5a5167d5f3a9fed8f5811e2cb"
name: 'tag_svetlana_iphone'
state_topic: 'espresense/devices/irk:23c0abe5a5167d5f3a9fed8f5811e2cb'
timeout: 30
away_timeout: 300
- platform: mqtt_room
device_id: "irk:ee497d98b502c47ec3f631336ec37eed"
name: 'tag_mama_iphone'
state_topic: 'espresense/devices/irk:ee497d98b502c47ec3f631336ec37eed'
timeout: 30
away_timeout: 300
homeassistant:
customize:
sensor.tag_danil_iphone:
friendly_name: Данил (телефон)
sensor.tag_svetlana_iphone:
friendly_name: Света (телефон)
sensor.tag_mama_iphone:
friendly_name: Мама (телефон)
automation:
alias: "Presence: Beacons"
description: ""
trigger:
- platform: state
entity_id:
- sensor.tag_danil_iphone
- sensor.tag_svetlana_iphone
- sensor.tag_mama_iphone
enabled: true
condition: []
action:
- service: device_tracker.see
data:
dev_id: "{{ trigger.entity_id.split('.')[1] }}"
location_name: |
{% set locations = ['mainroom', 'kitchen'] %}
{% if trigger.to_state.state in locations %}
home
{% elif trigger.to_state.state not in locations %}
not_home
{% else %}
unknown
{% endif %}
source_type: router
mode: restart
+26
View File
@@ -0,0 +1,26 @@
rest_command:
bedroom_tv_wol:
url: "http://192.168.1.1/wol_action.asp?dstmac=C0:D7:AA:AA:1B:12"
method: get
content_type: "application/json"
username: !secret router_username
password: !secret router_password
automation:
- id: 'bedroomtv_wakeup'
alias: "Wake up bedroom tv on turn_on"
trigger:
- platform: webostv.turn_on
entity_id: media_player.bedroom_tv
action:
- service: cover.set_cover_position
target:
entity_id: cover.curtain_bedroom
data:
position: 38
- service: rest_command.bedroom_tv_wol
- delay: 5
- service: media_player.select_source
data:
entity_id: media_player.bedroom_tv
source: YouTube
+22
View File
@@ -0,0 +1,22 @@
# Either put this here or in your automations.yaml
rest_command:
kitchen_tv_wol:
url: "http://192.168.1.1/wol_action.asp?dstmac=B4:B2:91:C0:A7:FD"
method: get
content_type: "application/json"
username: !secret router_username
password: !secret router_password
automation:
- id: 'kitchentv_wakeup'
alias: "Wake up kitchen tv on turn_on"
trigger:
- platform: webostv.turn_on
entity_id: media_player.kitchen_tv
action:
- service: rest_command.kitchen_tv_wol
- delay: 10
- service: media_player.select_source
data:
entity_id: media_player.kitchen_tv
source: Wink
@@ -0,0 +1,23 @@
# Either put this here or in your automations.yaml
rest_command:
mainroom_tv_wol:
url: "http://192.168.1.1/wol_action.asp?dstmac=AC:5A:F0:99:65:11"
method: get
content_type: "application/json"
username: !secret router_username
password: !secret router_password
automation:
- id: 'mainroomtv_wakeup'
alias: "Wake up mainroom tv on turn_on"
trigger:
- platform: webostv.turn_on
entity_id: media_player.mainroom_tv
action:
- service: rest_command.mainroom_tv_wol
- delay: 5
- service: media_player.select_source
data:
entity_id: media_player.mainroom_tv
source: Wink
+65
View File
@@ -0,0 +1,65 @@
#################################################
# WATER #
#################################################
mqtt:
sensor:
- unique_id: counter_cold
state_topic: 'home/watercontrol/counter2_1'
name: 'counter_cold'
value_template: '{{ (value | float ) }}'
unit_of_measurement: 'm³'
device_class: water
state_class: total_increasing
- unique_id: counter_hot
state_topic: 'home/watercontrol/counter2_2'
name: 'counter_hot'
value_template: '{{ (value | float ) }}'
unit_of_measurement: 'm³'
device_class: water
state_class: total_increasing
- unique_id: uptime_watercontrol
state_topic: 'home/watercontrol/$uptime'
name: 'uptime_watercontrol'
value_template: '{{ value | int }}'
switch:
- unique_id: water_valve
name: water_valve
state_topic: "home/watercontrol/valves"
command_topic: "home/watercontrol/valves/set"
payload_on: true
payload_off: false
optimistic: false
retain: false
template:
sensor:
- name: counter_hot_outer
device_class: water
state_class: total_increasing
unit_of_measurement: 'm³'
state: "{{ states('sensor.counter_hot') | float + 88.97 | round(2) }}"
- name: counter_cold_outer
device_class: water
state_class: total_increasing
unit_of_measurement: 'm³'
state: "{{ states('sensor.counter_cold') | float + 144.7 | round(2) }}"
binary_sensor:
- name: dryer_running
state: "{{ not is_state('sensor.sushilnaia_mash_machine_state', 'stop') }}"
- name: washer_running
state: "{{ not is_state('sensor.stiralnaia_mashina_machine_state', 'stop') }}"
homeassistant:
customize:
switch.water_valve:
friendly_name: Подача воды
binary_sensor.dryer_running:
friendly_name: "Сушильная машина"
binary_sensor.washer_running:
friendly_name: "Стиральная машина"
sensor.counter_hot_outer:
friendly_name: "Счетчик Внешний Горячая"
sensor.counter_cold_outer:
friendly_name: "Счетчик Внешний Холодная"
+1
View File
@@ -0,0 +1 @@
[]
+71
View File
@@ -0,0 +1,71 @@
new_script:
alias: Сценарий Я Ушёл
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: switch.watercontrol_valves
- service: climate.set_preset_mode
data:
preset_mode: away
target:
area_id:
- gostinaia
- kukhnia
- spalnia
- detskaia
- service: media_player.turn_off
data: {}
target:
device_id:
- 368a8521d684580dd39b88502808b3bc
- 07a253973c89fdb7e7b66174bf5a1275
- b60210b82dc048bffc5a59f683de2f0a
- service: cover.close_cover
data: {}
target:
area_id:
- gostinaia
- kukhnia
- spalnia
mode: single
icon: mdi:shield-lock
'1675839976060':
alias: Вскипяти чайник
sequence:
- service: input_select.set_options
data:
options: Boil Water
target:
entity_id: select.chunmi_a1_35e9_cook_mode
mode: single
'1676313705945':
alias: Сценарий Я Дома
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.watercontrol_valves
- service: climate.set_preset_mode
data:
preset_mode: manual
target:
area_id:
- gostinaia
- kukhnia
- spalnia
- detskaia
- if:
- condition: sun
before: sunset
after: sunrise
then:
- service: cover.open_cover
data: {}
target:
area_id:
- gostinaia
- kukhnia
- spalnia
mode: single
icon: mdi:shield-lock
View File
+167
View File
@@ -0,0 +1,167 @@
###################################
# MAIN SETTINGS #
###################################
ha_password: xxxxxxxxx
timezone: Europe/London
base_url: xxxxxxxxx
base_host: xxxxxxxxx
base_localname: xxxxxxxxx
ha_internal_ip: xxxxxxxxx
modbus_host: modbus.host
modbus_port: 9977
modbus_admin_pass: xxxxxxxxx
yandex_tts_key: xxxxxxxxx
###################################
# RECORDER SETTINGS #
###################################
mysql_url: xxxxxxxxx
###################################
# ESPHOME SETTINGS #
###################################
wifi_24_name: xxxxxxxxx
wifi_24_pass: xxxxxxxxx
esphome_pass: xxxxxxxxx
esphome_captive_pass: xxxxxxxxx
###################################
# APPLETV SETTINGS #
###################################
atv4_ip: xxxxxxxxx
atv4_login: xxxxxxxxx
atv4_credentials: xxxxxxxxx
###################################
# PROXY SETTINGS #
###################################
#proxy_url: xxxxxxxxx
proxy_url: xxxxxxxxx
###################################
# MQTT SETTINGS #
###################################
mqtt_ip: xxxxxxxxx
mqtt_user: xxxxxxxxx
mqtt_password: xxxxxxxxx
mqtt_clientid: xxxxxxxxx
###################################
# XIAOMI AND AQARA SETTINGS #
###################################
aqara1_mac: xxxxxxxxxxxx
aqara1_key: xxxxxxxxxxxxxxxx
mirobot_ip: xxxxxxxxx
mirobot_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
purifier_ip: xxxxxxxxx
purifier_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
breaser_ip: xxxxxxxxx
breaser_token: xxxxxxxxx
xiaomi_remote_host: xxxxxxxxx
xiaomi_remote_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
###################################
# NEST #
###################################
nest_client_id: xxxxxxxxx
nest_client_secret: xxxxxxxxx
###################################
# NOTIFICATION SETTINGS #
###################################
telegram_key: xxxxxxxxx
telegram_group_chat: 0
telegram_monster_chat: 0
telegram_sveta_chat: xxxxxxxxx
telegram_card_chat: xxxxxxxxx
###################################
# TAGS #
###################################
tag_danil_pocket: xxxxxxxxx
tag_danil_keys: xxxxxxxxx
tag_svetlana_keys: xxxxxxxxx
tag_mama_keys: xxxxxxxxx
tag_test: xxxxxxxxx
###################################
# ZONES #
###################################
home_latitude: 1.0
home_longitude: 1.0
home_coords: xxxxxxxxx
work_latitude: 1.0
work_longitude: 1.0
work_coords: xxxxxxxxx
###################################
# SYNOLOGY SETTINGS #
###################################
syno_url: xxxxxxxxx
syno_ip: xxxxxxxxx
syno_user: xxxxxxxxx
syno_pass: xxxxxxxxx
rtsp_entrance: xxxxxxxxx
# ----------------------------------------------------------- #
###################################
# APPDAEMON SETTINGS #
###################################
ha_url: xxxxxxxxx
ha_token: xxxxxxxxx
###################################
# NARODMON SETTINGS #
###################################
narodmon_key: xxxxxxxxx
###################################
# MOS.RU SETTINGS #
###################################
mosru_login: xxxxxxxxx
mosru_pwd: xxxxxxxxx
mosru_token: xxxxxxxxx
mosru_session: xxxxxxxxx
#mosru_flat_id: xxxxxxxxx
mosru_flat_id: xxxxxxxxx
mosru_paycode: xxxxxxxxx
mosru_belorechenskaya_flat_id: xxxxxxxxx
mosru_belorechenskaya_paycode: xxxxxxxxx
###################################
# Amazon Alexa #
###################################
amazon_mail: xxxxxxxxx
amazon_pass: xxxxxxxxx
alexa_client_id: xxxxxxxxx
alexa_client_secret: xxxxxxxxx
###################################
# Yandex Alice #
###################################
alice_login: xxxxxxxxx
alice_pwd: xxxxxxxxx
###################################
# Tuya #
###################################
tuya_username: xxxxxxxxx
tuya_password: xxxxxxxxx
###################################
# iCloud #
###################################
icloud_mail: xxxxxxxxx
icloud_password: xxxxxxxxx
###################################
# InfluxDb #
###################################
influxdb_token: xxxxxxxxx
+23
View File
@@ -0,0 +1,23 @@
title: Home
views:
type: entities
entities:
- entity: switch.dishwasher_power
type: 'custom:multiple-entity-row'
name: Dishwasher
show_state: false
state_color: true
secondary_info:
entity: sensor.dishwasher_operation_state
name: 'Status:'
icon: 'mdi:dishwasher'
entities:
- entity: sensor.dishwasher_progress
name: Progress
- entity: sensor.dishwasher_remaining
name: Remaining
- entity: binary_sensor.dishwasher_door
name: false
icon: true
state_color: true
- entity: switch.water_valve
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,24 @@
import nodeResolve from "@rollup/plugin-node-resolve";
import json from "@rollup/plugin-json";
import typescript from "rollup-plugin-typescript2";
import terser from "@rollup/plugin-terser";
import babel from "@rollup/plugin-babel";
const dev = process.env.ROLLUP_WATCH;
export default {
input: "src/main.ts",
output: {
file: "auto-entities.js",
format: "es",
},
plugins: [
nodeResolve(),
json(),
typescript(),
babel({
exclude: "node_modules/**",
}),
!dev && terser({ format: { comments: false } }),
],
};
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB