updating configuration
This commit is contained in:
@@ -0,0 +1 @@
|
||||
2026.2.3
|
||||
@@ -0,0 +1 @@
|
||||
{"pid": 106582, "version": 1, "ha_version": "2026.2.3", "start_ts": 1773083280.3675456}
|
||||
@@ -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
|
||||
+1072
File diff suppressed because it is too large
Load Diff
+919
@@ -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
|
||||
+68
@@ -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
|
||||
+103
@@ -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') }}"
|
||||
@@ -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 |
@@ -0,0 +1,3 @@
|
||||
|
||||
192.168.1.36:
|
||||
banned_at: '2023-11-26T14:36:40.730001+00:00'
|
||||
@@ -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: Тестовая
|
||||
@@ -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_*
|
||||
@@ -0,0 +1,13 @@
|
||||
yandex_station_intents:
|
||||
intents:
|
||||
Как дела: Все хорошо
|
||||
Коля наказан: Отключаю интернет в детской
|
||||
Включи вентилятор:
|
||||
execute_command: Поставь режим вентиляции на кондиционере в комнате {{ event.room }}
|
||||
Выключи вентилятор:
|
||||
execute_command: Выключи кондиционер в комнате {{ event.room }}
|
||||
|
||||
Не выключай свет в прихожей: # (4)
|
||||
extra_phrases:
|
||||
- Не выключай свет в коридоре
|
||||
say_phrase: "{{ ['Договорились', 'Хорошо', 'Я тебя услышала', 'Оки-доки']|random }}"
|
||||
@@ -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: Наличие отопления
|
||||
@@ -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: Виртуальный контроллер охлаждения Спальня
|
||||
@@ -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
|
||||
@@ -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}
|
||||
@@ -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: Импортировано
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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: "Счетчик Внешний Холодная"
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -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
|
||||
Executable
@@ -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
|
||||
@@ -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
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -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 } }),
|
||||
],
|
||||
};
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 276 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 242 KiB |
Reference in New Issue
Block a user