Home Assistant: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 8: | Строка 8: | ||
=Прежде чем начать= |
=Прежде чем начать= |
||
Для удобства работы (что б меньше возиться c UI) удобно выпустить токен и читать данные через API |
Для удобства работы (что б меньше возиться c UI) удобно выпустить токен и читать данные через API |
||
| + | <BR> |
||
| + | # Профиль (снизу справа) |
||
| + | # Безопасность |
||
| + | # Долгосрочные токены доступа |
||
[[Файл:HA-Create-Token-250926125120.png|400px]] |
[[Файл:HA-Create-Token-250926125120.png|400px]] |
||
| + | |||
| + | Токен выглядит как-то так |
||
| + | <PRE> |
||
| + | eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp <пропущенно-много-букав> sImlhdCI6MTcyMTkwNzUzNywiZXhwIjoyMDM3MjY3NTM3fQ.YDLTNoOFebK4BVHFo-V1q7a84Cs78Z0b3H2e-F5mBpk" |
||
| + | </PRE> |
||
| + | |||
| + | Сразу сохранить, в открытом виде он показывается один раз |
||
=Ссылки= |
=Ссылки= |
||
Версия 11:55, 26 сентября 2025
Home Assistant
Пока это заготовка статьи про домашнюю автоматизацию и реализацию некоторых фич
Прежде чем начать
Для удобства работы (что б меньше возиться c UI) удобно выпустить токен и читать данные через API
- Профиль (снизу справа)
- Безопасность
- Долгосрочные токены доступа
Токен выглядит как-то так
eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp <пропущенно-много-букав> sImlhdCI6MTcyMTkwNzUzNywiZXhwIjoyMDM3MjY3NTM3fQ.YDLTNoOFebK4BVHFo-V1q7a84Cs78Z0b3H2e-F5mBpk"
Сразу сохранить, в открытом виде он показывается один раз
Ссылки
Пока что тут в основном ссылки
- WebOS : https://www.home-assistant.io/integrations/webostv/
- ModKam Реле https://www.youtube.com/watch?v=u3zDXNGVbgo
- (рус) Базовая установка в контейнерах https://habr.com/ru/articles/731110/
- (рус) Тут кой-какие примеры ручного добавления в конфиги - https://sprut.ai/article/home-assistant-statya-3-dobavlyaem-ustroystva (но качество статьи спорное)
- Прошивки
Zigbee2Tasmota
- Тут вроде бы должно быть описание как интегрироваться с ХА ноя ничего не понял https://thehelpfulidiot.com/how-to-use-zigbee2tasmota-with-home-assistant
Прошивки
- Tasmota https://zigbee.blakadder.com/Sonoff_ZBBridge-P.html
- Еще одна инструкция по прошивке бриджа https://dialedin.com.au/blog/sonoff-zbbridge-p-setup
- Ещ инструкция (по-моему самая полная и правильная) https://notenoughtech.com/home-automation/tasmota-on-sonoff-zb-bridge-pro/#flash
Термины и понятия
Когда что использовать
- Срабатывание по условию -> automation (с trigger описывающим условие)
- Если automation сложный, то код можно разбить на несколько скриптов
automation = логика запуска + условия + действия;
automation
Automation — правило “если-то”:
automation:
- alias: Door opened → notify
trigger:
- platform: state
entity_id: binary_sensor.external_door
from: 'off'
to: 'on'
condition: []
action:
- service: notify.chat
data: {message: "Дверь открыта"}
script
Script — именованная последовательность action (шагов).
Не имеет триггера, запускается вручную (кнопкой/сервисы) или из automation.
Скрипт можно так же рассматривть как процедуру (для группировки и переиспользования кода)
script:
send_door_alert:
alias: Send door alert
sequence:
- service: notify.chat
data: {message: "Дверь открыта"}
Вызов из automation:
action: - service: script.send_door_alert
Пример скрипта
Помещать в файл scripts.yaml или любой другой определенный в script: !include scripts.yaml
tv_living_room_wol:
alias: "TV Living Room: Power On (WOL)"
sequence:
- service: wake_on_lan.send_magic_packet
data:
mac: "38:8c:50:00:a3:14"
Что бы запустить скрипт можно добавить кнопку
Настройки панели --> добавить карточку (справа внизу) --> Объект (что бы вписать вкод вручную)
type: button
name: Включить ТВ
icon: mdi:television
tap_action:
action: call-service
service: script.turn_on
target:
entity_id: script.tv_living_room_wol
hold_action:
action: none
double_tap_action:
action: none
show_state: false
trigger
Trigger — часть automation. Это событие, которое запускает automation: смена состояния, время, MQTT-сообщение, вебхук, нажатие кнопки и т.д. Сам по себе trigger вне automation не существует.
Примеры триггеров:
state (изменение состояния сущности) time / time_pattern event / webhook mqtt device (из интеграций) numeric_state (порог)
script = только действия;
trigger = причина старта automation.
Разбор примера автоматизации
- alias: external_door_open_logged
description: "Открытие Внешней Двери (с логированием)"
mode: parallel
trigger:
- platform: state
entity_id: binary_sensor.sonoff_external_door_sensor_contact # твоя сущность
from: 'off'
to: 'on'
variables:
from: "{{ trigger.from_state.state if trigger.from_state is not none else 'none' }}"
to: "{{ trigger.to_state.state if trigger.to_state is not none else 'none' }}"
action:
- choose:
- conditions: [] # сюда твои прежние условия (если были)
sequence:
- service: logbook.log
data:
name: "door_automation"
entity_id: binary_sensor.external_door
message: "TRIGGERED ({{ from }} → {{ to }})"
- service: system_log.write
data:
logger: automation.door
level: info
message: "[door] sending notify ({{ from }} → {{ to }})"
- service: system_log.write
data:
logger: automation.door
level: info
message: "[door] notify SENT"
default:
- service: system_log.write
data:
logger: automation.door
level: info
message: "[door] SKIPPED: conditions not met ({{ from }} → {{ to }})"