Дорогі покупці, магазин працює, склад та ціни актуальні. Всі замовлення обробляються та надсилаються протягом 1-3 днів.
Популярні Статті
Умный дом Xiaomi ZigBee на Raspberry Pi + Home Assistant
В этой статье пойдет речь о датчиках, розетках, выключателях Xiaomi Aqara/Mijia. Я расскажу к ...»
Home Assistant + база SQL MariaDB оптимизация
Все чаще у многих пользователей Home Assistant возникает вопрос о выросшем файле базы данных. П ...»
Открытая система управления “умным домом” MajorDoMo - Часть 1
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и ко ...»

Умный дом Xiaomi ZigBee на Raspberry Pi + Home Assistant


В этой статье пойдет речь о датчиках, розетках, выключателях Xiaomi Aqara/Mijia. Я расскажу как подключить ZigBee устройства без родного шлюза Xiaomi и избавиться от облачного сервиса. Все устройства не требуют перепрошивки и доработки и будут работать из коробки. Так же, можно подключать большинство устройств с протоколом ZigBee.

Список всех поддерживаемых устройств
 
Почему Home Assistant?
 
Ранее в статье о Мажордомо рассматривалась универсальная платформа для построения умного дома, для настройки требовались достаточные знания и опыт в программировании.
Сейчас хочу представить вам альтернативу с более простой, на мой взгляд, настройкой, даже для начинающего.
Рассматривалось  несколько оффлайн Open source платформ Domoticz, OpenHUB и Home Assistant. Все были установлены и опробованы. Несомненным лидером оказался OpenHUB, это идеальная среда для построения систем автоматизации. Но для моей задачи, он показался слишком избыточным.
Выбор пал на Home Assistant. Очень продуманная система, с отличным дизайном. Простой синтаксис yaml, после одного дня изучения любой скрипт пишется за считанные минуты, для автоматизаций можно использовать встроенный менеджер или использовать NodeRed к примеру. Хороший форум, множество примеров. Огромное количество поддерживаемых устройств и плагинов, но об этом позже.
 
Задача
 
Контролировать все окна, входные двери, замки, гараж, присутствие.
Датчики движения, температуры, влажности, качества воздуха в каждой комнате, коридорах, туалетах, кухня.
Управление вентиляцией и освещением.
Управление аудио-видео техникой IR, голосовые оповещения.
Все датчики беспроводные, все выключатели беспроводные, все датчики на окнах, дверях беспроводные ZigBee.
 
Оборудование
 
- Сервер Raspberry PI 3 модель B
- ZigBee Sniffer CC2531
 
Xiaomi Aqara / Mijia


 
- Temperature Humidity Sensor
- Door Window Sensor
- Human Body Sensor & Lux
- Smart Socket Mi power plug
- Vibration Sensor
- Wireless Switch

Настройка
 
Установка Home Assistant простая, достаточно записать образ на карту памяти вставить карту в Raspberry PI и перейти по локальному адресу, установка и настройка не сложная, есть множество статей и видео на эту тему.
Должен быть установлен и настроен MQTT брокер, я пользуюсь Mosquitto MQTT Server bundled with Hivemq's web client.
 

 
Теперь необходимо прошить USB ZigBee Sniffer CC2531, который будем использовать в качестве шлюза конвертера ZigBee в MQTT. 
Есть несколько способов прошивки, я использую программатор CC-Dubugger и загрузочный кабель.
Подключаем программатор через кабель к снифферу как на картинке, сниффер подключаем в порт компьютера для питания.



Скачиваем с официального сайта программу SmartRF от Texas Instruments, flash-programmer-1.12.8, устанавливаем и запускаем.

Скачиваем прошивку для шлюза - загрузить прошивку zigbee2mqtt



Нажимаем на три точки напротив Flash image указываем путь к файлу прошивки и нажимаем Perform actions.
Данная прошивка представляет шлюз для конвертирования протокола ZigBee в протокол MQTT который универсален и используется всеми платформами для умного дома.
После чего подключаем ZigBee Sniffer в порт Raspberry PI.
Теперь необходимо узнать на каком порту у нас находится сам сниффер, для этого в панели Hass.io переходим в закладку System и нажимаем на кнопку Hardware.



В моем случае серийный порт сниффера находится по адресу /dev/ttyACM0.

После чего необходимо установить плагин Zigbee2mqtt. Переходим на вкладку Hass.io на закладку ADD-ON STORE и добавляем новый репозиторий - https://github.com/danielwelch/hassio-zigbee2mqtt
 
 
Устанавливаем аддон Zigbee2mqtt.
Переходим на закладку Dashboard, плагин Zigbee2mqtt.
 

В поле Config вписываем следующую конфигурацию, указываем адрес вашего сервера имя и пароль от mqtt сервера, порт сниффера (выделено красным).
Конфигурация уже будет прописана, достаточно указать свои данные.
 
{
  "data_path": "/share/zigbee2mqtt",
  "devices": "devices.yaml",
  "groups": "groups.yaml",
  "homeassistant": true,
  "permit_join": false,
  "mqtt": {
    "base_topic": "zigbee2mqtt",
    "server": "mqtt://192.168.1.7:1883",
    "user": "имя",
    "password": "пароль"
  },
  "serial": {
    "port": "/dev/ttyACM0"
  },
  "advanced": {
    "pan_id": 6754,
    "channel": 11,
    "network_key": [
      1,
      3,
      5,
      7,
      9,
      11,
      13,
      15,
      0,
      2,
      4,
      6,
      8,
      10,
      12,
      13
    ],
    "availability_blacklist": []
  },
  "ban": [],
  "whitelist": [],
  "queue": {},
  "socat": {
    "enabled": false,
    "master": "pty,raw,echo=0,link=/dev/ttyZ2M,mode=777",
    "slave": "tcp-listen:8485,keepalive,nodelay,reuseaddr, keepidle=1,keepintvl=1,keepcnt=5",
    "restartdelay": 1,
    "initialdelay": 1,
    "options": "-d -d",
    "log": false
  }
}
 
Сохраняем и делаем рестарт плагина. Проверяем лог плагина, что бы не было ошибок. 
 
Теперь необходимо добавить в конфигурацию configuration.yaml следующий код:
 
discovery:

mqtt:
  broker: 192.168.1.7
  port: 1883
  username: имя
  password: пароль
  discovery: true
  discovery_prefix: homeassistant

sensor:
  - platform: mqtt
    name: Zigbee-Bridge state
    state_topic: "zigbee2mqtt/bridge/state"
    icon: mdi:router-wireless

Для автоматического поиска новых устройств. Заменив на ваши данные (выделено красным). Если у вас уже есть данная конфигурация, то пропускаем.
Далее добавляем:
 
# Zigbee2mqtt
input_boolean:
  zigbee_permit_join:
    name: Allow devices to join
    initial: off
    icon: mdi:cellphone-wireless

timer:
  zigbee_permit_join:
    name: Time remaining
    duration: 600 # Updated this to the number of seconds you wish

В файл automations.yaml добавляем следующий код:
 
#  Zigbee to mqtt
  - id: enable_zigbee_join
    alias: Enable Zigbee joining
    trigger:
      platform: state
      entity_id: input_boolean.zigbee_permit_join
      to: 'on'
    action:
    - service: mqtt.publish
      data:
        topic: zigbee2mqtt/bridge/config/permit_join
        payload: 'true'
    - service: timer.start
      data:
        entity_id: timer.zigbee_permit_join
  - id: disable_zigbee_join
    alias: Disable Zigbee joining
    trigger:
    - entity_id: input_boolean.zigbee_permit_join
      platform: state
      to: 'off'
    action:
    - data:
        payload: 'false'
        topic: zigbee2mqtt/bridge/config/permit_join
      service: mqtt.publish
    - data:
        entity_id: timer.zigbee_permit_join
      service: timer.cancel
  - id: disable_zigbee_join_timer
    alias: Disable Zigbee joining by timer
    trigger:
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.zigbee_permit_join
    action:
    - service: mqtt.publish
      data:
        topic: zigbee2mqtt/bridge/config/permit_join
        payload: 'false'
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.zigbee_permit_join
# end Zigbee to mqtt

На главной странице создаем карточку с таким кодом:
 
entities:
  - entity: input_boolean.zigbee_permit_join
  - entity: timer.zigbee_permit_join
  - entity: sensor.zigbee_bridge_state
show_header_toggle: false
title: Zigbee
type: entities


Перезагружаем Home Assistant.
Теперь для поиска новых устройств ZigBee достаточно нажать на переключатель Allow devices to join. Через 10 мин поиск прекратится.
Теперь все готово для подключения новых устройств!

Подключение устройств

Включаем поиск устройств Allow devices to join. Поочередно на каждом устройстве нажимаем на несколько секунд кнопку спаривания, до загорания индикатора.
На датчике температуры и влажности кнопка находится сверху, через несколько секунд мигание прекратится. И устройство появится в разделе Интеграции и разделе Устройства.



Переходим в MQTT: configuration.yaml



И видим наш датчик.



Нажимаем на него и попадаем в меню настройки датчика
Каждому значению необходимо добавить понятное название



Нажимаем на шестеренку и вводим свое название



Тепер можно вывести данные данного сенсора на главный экран, это проще всего сделать из этого меню


В всплывающем окне будет предложена страница главного экрана если их неколько как у меня, после чего появится окно с пунктами, необходимо нажать ADD TO LOVELACE



Переходим на главный экран и видим наш датчик



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



Мониторинг ZigBee сети

Для удобства контроля всех устройств ZigBee добавим монитор сети.

UPD. В новой версии zigbee2mqtt данный функционал уже встроен и дальнейшие действия не требуются.

Скачиваем плагин zigbee2mqtt-networkmap, окрываем конфигуратор и добавляем его в папку www.

В конфигурацию configuration.yaml добавляем следующий код:
 
sensor:
  - platform: mqtt
    name: Zigbee2mqtt Networkmap
    state_topic: zigbee2mqtt/bridge/networkmap/raw
    value_template: >-
      {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
    json_attributes_topic: zigbee2mqtt/bridge/networkmap/raw

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

 

Далее необходимо переключиться в Текстовый редактор



В начале файла добавить следующий код
 
resources:
  - type: module
    url: /local/zigbee2mqtt-networkmap.js?v=0.6.0



В конец файла добавляем саму карточку Карты сети
 
  - cards:
      - css: |
          :host {
            --zigbee2mqtt-networkmap-node-color: rgba(18, 120, 98, .7);
            --zigbee2mqtt-networkmap-node-fill-color: #dcfaf3;
            --zigbee2mqtt-networkmap-node-pinned-color: rgba(190, 56, 93, .6);
            --zigbee2mqtt-networkmap-link-color: rgba(18, 120, 98, .5);
            --zigbee2mqtt-networkmap-hover-color: #be385d;
            --zigbee2mqtt-networkmap-link-selected-color: rgba(202, 164, 85, .6);
            --zigbee2mqtt-networkmap-label-color: #127862;
            --zigbee2mqtt-networkmap-arrow-color: rgba(18, 120, 98, 0.7);
            --zigbee2mqtt-networkmap-node-coordinator-color: rgba(224, 78, 93, .7);
            --zigbee2mqtt-networkmap-node-router-color: rgba(0, 165, 255, .7);
          }
        entity: sensor.zigbee2mqtt_networkmap
        font_size: 12
        force: 3000
        height: 400
        link_width: 2
        mqtt_base_topic: zigbee2mqtt
        node_size: 16
        type: 'custom:zigbee2mqtt-networkmap'
    panel: true
    path: zigbee-network
    title: Zigbee Network

panel: true - разворачивает карту на весь экран. В результате получаем такую карточку


 
 
  Відгуків: 1
Ваше І’мя:


Ваш відгук: Увага: HTML не підтримується! Використовуйте звичайний текст.

Оцінка: Погано           Добре

Введіть код, вказаний на зображенні:



Останні статті
Відстеження людей з mmWave сенсором LD2450
Датчик Hi-Link LD-2450 дозволяє відстежувати присутність, швидкість руху та координати до трьох ос ...»
27.11.2023 в 12:41    Переглядів: 1548
Голосовий асистент з Home Assistant та ESPHome
Відео версія статті: Голосовий асистент з Home Assistant та ESPHome Як ви можете знати 2023 ...»
24.10.2023 в 15:54    Переглядів: 2495
Таблиця перекладу ємностей та позначень конденсаторів
​​  μF микрофарады nF нанофарады pF пикофарады Co ...»
03.10.2023 в 17:09    Переглядів: 878
Останні відгуки
Голосовий асистент з Home Assistant та ESPHome
Добрий день. Дуже гарна iдея) Колись я скопiюю увесь проэкт, але на данний момент менi потрiбно тiльки iнформування i2s_audio: - i2s_lrclk_pin: 13 i2s_bclk_pin: 14 id: audio_bus me ...»
15.12.2023 в 00:20    Переглядів: 2495
Антон
Замок по отпечатку пальца Wi-Fi для Home Assistant
Благодарю за очень полезный материал, даже не знал что ESPHome уже со сканерами работает. Спасибо, удачи в проектах, пишите еще!!! ...»
16.06.2021 в 13:13    Переглядів: 4801
Анатолий
Умный дом Xiaomi ZigBee на Raspberry Pi + Home Assistant
Отличная статья но есть ошибки, а именно отсутствует в основном конфиге sensor: - platform: mqtt name: Bridge state state_topic: "zigbee2mqtt/bridge/state" icon: mdi:rout ...»
10.02.2020 в 20:25    Переглядів: 24913
Kolyk