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

Интеграции

Вот так у меня на текущий момент выглядит страница интеграций в 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
17e4b1e2f7bec428cb43252e16722039.png

Интеграция с 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
4d190176fe4e31d20a8c4c6ac8dc238d.png

Включение ночника при обнаружении движения на одном из датчиков

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
8505240b46c213c048dd8eea333b9779.png

Отправка фото в телеграм при открытии двери

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
beb9c41d02beaf767dfc4e3f2007c3e5.png
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
e3f46280c83da9639cb0ec2cd7a46cbf.png
  • Plex

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

  • Xiaomi Miio

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

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

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

  • Yandex Smart Home + Yandex.Station

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

  • BedSideLamp

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

  • InfluxDB

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

  • Telegram

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

© Habrahabr.ru