Умный дом на Home Assistant без проводов

—

от автора

В этой статье я расскажу про свой опыт использования умного дома без ремонтных работ, прокладки кабеля и т.д. Описания установки и конфигурации в данной статье не будет. Если нужно более подробно описать какую-то интеграцию, то пишите в комментариях, сделаю отдельную статью.

  1. Оборудование и ПО

    В качестве сервера используется VM запущенная на VMWare ESXi с Ubuntu 22 LTS. Внутрь VM прокинуты два адаптера: ZigBee CC2652 и Bluetooth Ugreen на чипе RTL8761BUV

    Сначала я использовал вариант установки Home Assistant Core, потом перешел на docker.

    Используются 6 контейнера: Homeassistant, zigbee2mqtt, mosquitto, influxdb, grafana, nginx. Назначение первых трех контейнеров не вызывает вопросов, а последний контейнер занимается обновлением let’s encrypt сертификатов и проксированием, a influxdb и grafana для долгосрочного хранения данных и визуализации.

  2. Интеграции

    Вот так у меня на текущий момент выглядит страница интеграций в HA

    Вот так у меня на текущий момент выглядит страница интеграций в HA
    • Generic Camera

      Интеграция используется для работы с камерами Hikvision. Раньше еще была Axis — для нее есть отдельная интеграция. Используются как сенсоры определения движения, для просмотра видеопотока и для отправки фото в telegram, при открытии и закрытии входной двери.

      Сенсоры через интеграцию Generic Camera не получить, поэтому они отдельно прописаны в конфигурационном файле HA:
      binary_sensor:   - platform: hikvision     host: cam4.examaple.com     username: hass     password: !secret "hik_pass"   - platform: hikvision     host: cam3.example.com     username: hass     password: !secret "hik_pass"

    • Google assistant

    Используется только для открытия шлагбаумов при въезде в ЖК и на паркинг, чтобы не нужно было брать в руки телефон. Для всего остального используется Алиса.

    • Haier Online (HON)

    Кастомная интеграция установлена через HACS. Используется для управления Мульти-сплит системой с 4 внутренними блоками.

    Доступны сенсоры: температура снаружи, внутри, статус сплита.

    Управление: включение/выключение, установка целевой температуры и программы.

    • LG WebOS Smart TV

    Интеграция с телевизорами LG WebOS.

    Сенсоры: Включен/выключен, громкость, используемый источник (Ivi, Plex, HDMI и т.д.)

    Управление: Включение/выключение, установка громкости, выбор источника.

    Телевизоры подключены через Wi-Fi, для включения на них отправляется magic пакет, в самой интеграции такого функционала нет, поэтому используется автоматизация в HA

    Автоматизация для включения телевизора
    alias: Спальня-телевизор-включение description: Необходимо для работы кнопки включения телевизора или включения через Алису trigger:   - platform: device     device_id: 1d399e9a9f6cf23e13f2c412ec6e639f     domain: webostv     type: webostv.turn_on condition: [] action:   - service: wake_on_lan.send_magic_packet     data:       mac: D4:86:60:26:F0:E2       broadcast_address: 192.168.88.84 mode: single

    • Mikrotik

      Интеграция используется для определения кто в данный момент находится дома.

    • MQTT

    Интеграция с mosquitto, в ней в основном устройства подключенные по протоколу Zigbee через zigbee2mqtt, и есть еще Xiaomi Hub (используется просто как ночник) c установленным OpenWrt for Xiaomi Zigbee.

    Используются производители: CR Smart Home, eWeLink, IKEA, Legrand, Moes, TuYa, UseeLink, Xiaomi.

    Устройства: Теплый пол, приводы штор, электрические розетки, выключатели, приводы на арматуру водоснабжения, реле, датчики протечки, открытия, влажности, температуры, движения, освещенности, беспроводные выключатели, Xiaomi Cube.

    Несколько примеров автоматизаций:

    Включение теплого пола и вытяжки при высокой влажности
    alias: Ванна-вкл-вент-теплпол-влажность-высокая description: Включить теплый пол и вентилятор trigger:   - type: humidity     platform: device     device_id: 3d380f4db9c9a9b9a92ddcb7d6ba4eea     entity_id: sensor.sensor_bathroom_humidity     domain: sensor     above: 55     for:       hours: 0       minutes: 0       seconds: 0       milliseconds: 0 condition: [] action:   - type: turn_on     device_id: fe3b24d58f4848ea314bfee3a2847d31     entity_id: switch.switch_bathroom_left     domain: switch   - service: climate.set_temperature     target:       entity_id: climate.floorheat_bathroom     data:       temperature: 28       hvac_mode: heat   - delay:       hours: 0       minutes: 0       seconds: 5       milliseconds: 0   - device_id: 0d62a807416ae25bdb4a4bfc081d121f     domain: climate     entity_id: climate.floorheat_bathroom     type: set_hvac_mode     hvac_mode: heat mode: single

    Включение ночника при обнаружении движения на одном из датчиков
    alias: Коридор-движение description: "" trigger:   - type: motion     platform: device     device_id: 0cca9328b6eef50c5aad68231b10ae27     entity_id: binary_sensor.motion_corridor_occupancy     domain: binary_sensor   - platform: state     entity_id:       - binary_sensor.cam4_pir_alarm_2     from: "off"     to: "on" condition:   - condition: or     conditions:       - condition: sun         before: sunrise       - condition: sun         after: sunset       - condition: time         before: "07:00:00" action:   - type: turn_on     device_id: d97eb090526f9b0cd75e829fdff60886     entity_id: light.bed_side_lamp     domain: light     brightness_pct: 50     flash: short mode: single

    Отправка фото в телеграм при открытии двери
    alias: Входная-дверь-открыта-Фото-Телега-in description: "" trigger:   - type: opened     platform: device     device_id: 31f8b43b5a647cf4f785a905ef46003e     entity_id: binary_sensor.contact_hallway_contact     domain: binary_sensor condition: [] action:   - service: script.send_photo_telegram     data:       url: http://hass:********@cam4.***.ru/ISAPI/Streaming/channels/101/picture       mess: "{{ now().strftime('%H:%M:%S') }} Входная дверь открыта" mode: parallel max: 3
    alias: send_photo_telegram variables:   mess: null sequence:   - service: telegram_bot.send_photo     data:       url: "{{url}}"       target: "-1001555******"       caption: "{{mess}}" mode: parallel max: 10

    Изменение положения штор на угол поворота Xiaomi Cube
    alias: Cube_rotate_right description: "" trigger:   - platform: mqtt     topic: zigbee2mqtt/0x00158d0004863928     payload: rotate_right     value_template: "{{ value_json.action }}" condition: [] action:   - service: script.cover_change_position     data:       position: >-         {{ [(state_attr("cover.curtain_masterbedroom_right", "current_position") -         (trigger.payload_json.action_angle / 2) | int), 0] | max }} mode: queued max: 2
    alias: cover_change_position variables:   angle: null sequence:   - service: mqtt.publish     data:       topic: zigbee2mqtt/0x00158d00058a0983/set       payload: "{\"position\": {{ position }}}" mode: queued max: 2

    • Bluetooth Low Energy Monitor

      Кастомная интеграция установлена через HACS. Необходима для работы с устройствами BLE. Через нее работают: Умный браслет Mi Band, весы Mi Scale, датчики протечки и зачем-то соседский замок Aqara N200 сообщается мне статус замка и двери. Что интересно канал до датчиков протечки шифруется и для их подключения нужно получить ключ шифрования, а замок передает свои статусы без шифрования.

      Блок с ключами шифрования из configuration.yaml
      ble_monitor:   devices:     - mac: '54:EF:44:E1:AA:15'       encryption_key: '7fb71c4935913c157a0e3e045400c897'     - mac: '54:EF:44:E1:AD:D6'       encryption_key: '172c0615f5dd7a9bc667cef7aa712e80'     - mac: '54:EF:44:E1:A4:09'       encryption_key: 'ed14843e79a7b860c62a3f9ec768eb7e'     - mac: '54:EF:44:E1:A9:12'       encryption_key: 'c60b3ae034f2d5184d9dfe6cf1b23432'

    • ПИК Домофон

    Кастомная интеграция с ПИК Домофоном. Используется для просмотра видеопотока с домофонов (таких 3 штуки) и для открытия дверей, калиток и шлагбаумов. При въеде/выезде с паркинга мне нужно открывать 2 шлагбаума: один для въезда на территорию ЖК, другой на сам паркинг, так как телефон подключается к автомобилю через wireless android auto, то он не всегда под рукой, научить Алису отвечать без запуска приложения на андроиде я не смог, поэтому шлагбаумы открываю через Google Assistant. Устройства ПИК Домофон находятся в домене button, но Google Assistant их не воспринимает, из-за этого пришлось сделать виртуальный выключатель, который выставляется в Google Assistant.

    Виртуальные переключатели для Google Assistant в configuration.yaml
    google_assistant:   project_id: ha--------16047   service_account: !include SERVICE_ACCOUNT.JSON   report_state: true   expose_by_default: false   entity_config:     switch.virtgatein:       name: 'Entrance gate'       expose: true       room: Outside     switch.virtgateout:       name: 'Exit gate'       expose: true       room: Outside     switch.virtgateparking:       name: 'Parking gate'       expose: true       room: Outside     switch.virtgateunderground:       name: 'Underground gate'       expose: true       room: Outside  switch:   - platform: template     switches:       virtgatein:         friendly_name: "Виртуальный включатель шлагбаум въезд"         unique_id: virtgatein         turn_on:           service: switch.turn_on           target:             entity_id: switch.virtgatein         turn_off:           service: switch.turn_off           target:             entity_id: switch.virtgatein       virtgateout:         friendly_name: "Виртуальный включатель шлагбаум выезд"         unique_id: virtgateout         turn_on:           service: switch.turn_on           target:             entity_id: switch.virtgateout         turn_off:           service: switch.turn_off           target:             entity_id: switch.virtgateout       virtgateparking:         friendly_name: "Виртуальный включатель шлагбаум паркинг"         unique_id: virtgateparking         turn_on:           service: switch.turn_on           target:             entity_id: switch.virtgateparking         turn_off:           service: switch.turn_off           target:             entity_id: switch.virtgateparking       virtgateunderground:         friendly_name: "Виртуальный включатель шлагбаум подземелье"         unique_id: virtgateunderground         turn_on:           service: switch.turn_on           target:             entity_id: switch.virtgateunderground         turn_off:           service: switch.turn_off           target:             entity_id: switch.virtgateunderground

    Кроме того, если сказать «Алиса, свет», то Алиса сделает переключение состояния (toggle), а Google Assistant в таком случае всегда включает вне зависимости от статуса, поэтому в автоматизацию еще пришлось добавить автоматическое выключение.

    Автоматизация открытия шлагбаума
    alias: снаружи-шлагбаум-въезд description: "" trigger:   - platform: state     entity_id:       - switch.virtgatein     to: "on"     from: "off" condition: [] action:   - device_id: 6823413313691b06fb039a8884597c62     domain: button     entity_id: button.iot_relay_41772_unlocker     type: press   - service: switch.turn_off     data: {}     target:       entity_id: switch.virtgatein mode: single

    • Plex

      Не придумал для чего использовать, но он есть))

    • Xiaomi Miio

      Используется для управления системами приточной вентиляции.

      Сенсоры: содержание СО2 и PM2.5, температура, скорость вращения вентиляторов, статус, программа.

      Управление: включение/выключение, программа, скорость вращения вентиляторов, подогрев воздуха.

    • Yandex Smart Home + Yandex.Station

      Интеграции используются для управления умным домом через голосового помощника Алиса, для этого в каждой комнате стоят Яндекс Станции и того чтобы отправлять голосовые уведомления через Яндекс Станции. После того как появилась возможность управлять умным домом через помощника необходимость в других средствах управления практически отпала.

    • BedSideLamp

      Когда-то давно мне подарили лампу Yelight BedSideLamp, она прекрасно завелась с этой интеграцией. Включение/выключение, яркость, цвет.

    • InfluxDB

      Для более долгого хранения информации. Для визуализации используется Grafana.

    • Telegram

      Отправка событий умного дома, основное это отправка фото при входе и выходе из квартиры.

  3. Проблемы

    Когда я начинал работу с умным домом я использовал проводной датчик двери подключенный к arduino, которая писала статус в MQTT, в новой квартире решил не возится с проводами и перешел на Zigbee датчики. Сначала это было полное разочарование, задержка отправки события открытия двери и получения выключателем команды на включение занимала до 3 секунд. Проблема решилась неожиданно: у меня используется две точки доступа Mikrotik подключенные через CAPsMAN к роутеру, и когда я добавлял гостевой SSID и разносил 2Ghz по каналам все с Zigbee стало хорошо, задержка не более 0,5 секунды.

    Много читал, что у людей отваливаются датчики Xiaomi по Zigbee, у меня таких проблем нет, раз в полгода бывает надо переджоинить один из большого количества датчиков. По батарейкам за 2 года эксплуатации менял только в датчиках протечки. И вот недавно в одном из датчиков температуры и влажности.

    Выключатели все кроме одного Xiaomi с ними все ок, за 2 года один наиболее нагруженный выключатель в прихожей сломался. Он включается при движении в прихожей и открытии двери. И в кладовку пришлось ставить выключатель TuYa, так как там был круглый подрозетник, он за полгода уже дважды зависал, причем на столько что перестает реагировать даже на нажатие кнопки на самом выключателе, лечится отключение электропитания. Пока не разбирался что с ним.

    Вытяжка на кухне включается при повышении влажности, но при включенной вытяжке влажность сразу падает и я пока не придумал как определять, что вытяжка больше не нужна, пришлось пока отключить автоматизацию, иначе при готовке вытяжка постоянно включается и выключается.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой умный дом вы используете?
45% Home Assistant 18
0% MajorDoMo 0
0% IOBroker 0
7.5% Yandex 3
2.5% Xiaomi 1
0% Google 0
12.5% Другой 5
35% Не использую 14
Проголосовали 40 пользователей. Воздержались 5 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/746346/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *