Установка Home Assistant + mosquitto + zigbee2mqtt в Docker

13 декабря 2018, 11:52

Вводная

Ранее не писал статьи, делал только для себя гайды/шпаргалки, что бы не забыть. Так что это мой первый опыт. Предупреждаю сразу, внизу будет много Shell команд, настроек и т.п.

Для чего это все нужно? Хотя бы для того, что стоит один раз все настроить и в дальнейшем разворачивать все сервисы парой команд за несколько минут на любом устройстве. Это уже многого стоит - нашего времени! =)

Docker и docker-compose

Обновляем индексы репозиториев и устанавливаем все доступные обновления:

sudo apt-get update
sudo apt-get upgrade -y
Устанавливаем нужные Docker пакеты:
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common 
Добавляем официальный ключ GPG Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Добавляем официальный репозиторий Docker (в моем случае raspberry pi, это armhf):
armhf:
echo "deb [arch=armhf] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
x86_64/amd64:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
arm64:
echo "deb [arch=arm64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
Обновим индексы репозиториев и установим Docker:
sudo apt-get update
sudo apt-get install -y docker-ce
Далее установим python3, пакетный менеджер pip, обновим pip и установим docker-compose:
sudo apt-get install -y python3 python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install docker-compose
Так же вы можете посмотреть подробную инструкцию по установке docker, для вашего устройства и архитектуры на официальной странице документации Docker на сайте https://docs.docker.com/install/.

Установка Portainer

Для удобства использования и управления контейнерами Docker, я рекомендую использовать веб-морду portainer

Что бы установить Portainer, выполним следующую команду в консоли:
sudo docker run --restart always --name portainer -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:1.19.2
Открываем в браузере http://YOU_IP:9000/ и попадаем в нашу установленную админку Portainer

Вводим логин и пароль, и создаем пользователя.

Далее указываем, что Docker у нас установлен локально, и жмем кнопку connect

Portainer. Развертывание при помощи docker-compose

В дальнейшем все действия будем выполнять от нашего пользователя pi (1000:1000), вашем случае может быть другой. Добавим нашего пользователя в группу docker, и авторизовываемся заново:

sudo usermod -a -G docker pi && su pi
Создадим папку /home/pi/smarthome и в нем файл docker-compose.yml и папку portainer для данных сервиса Portainer:
mkdir /home/pi/smarthome
touch /home/pi/smarthome/docker-compose.yml
Добавим в файл docker-compose.yml следующее:
version: '3.3'

services:

  portainer:
    container_name: portainer
    image: portainer/portainer:1.19.2
    restart: always
    ports:
      - 9000:9000
    volumes:
      - ./portainer:/data
      - /var/run/docker.sock:/var/run/docker.sock
Останавливаем и удаляем контейнер portainer, далее перенесем его данные в созданную папку /home/pi/smarthome/portainer и меняем владельца с root на нашего пользователя:
docker stop portainer
docker rm portainer
sudo mv /var/lib/docker/volumes/portainer_data/_data /home/pi/smarthome/
sudo chown -R pi:pi /home/pi/smarthome/
mv /home/pi/smarthome/_data /home/pi/smarthome/portainer
docker volume rm portainer_data
Поднимаем контейнер portainer и запускаем его в фоне при помощи docker-compose:
cd /home/pi/smarthome/ 
docker-compose up -d

Mosquitto

Создадим необходимые для работы брокера папки и файлы:

mkdir /home/pi/smarthome/mosquitto
mkdir /home/pi/smarthome/mosquitto/config
mkdir /home/pi/smarthome/mosquitto/data
mkdir /home/pi/smarthome/mosquitto/log
touch /home/pi/smarthome/mosquitto/config/mosquitto.conf
touch /home/pi/smarthome/mosquitto/config/passwd
Добавляем сервис Mosquitto в docker-compose.yml в конец файла:
  eclipse-mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto:latest
    restart: always
    volumes:
      - ./mosquitto/config:/mosquitto/config
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log
    ports:
      - 1883:1883
    user: '1000:1000'
Создаем контейнер:
cd /home/pi/smarthome/
docker-compose up -d
Создаем mqtt пользователя:
docker exec -it mosquitto mosquitto_passwd -c  /mosquitto/config/passwd user
вводим пароль и подтверждаем его
Файл конфигурации /home/pi/smarthome/mosquitto/config/mosquitto.conf:
persistence true
persistence_location /mosquitto/data
allow_anonymous false
log_dest file /mosquitto/log/mosquitto.log
password_file /mosquitto/config/passwd
Перезапустим наш сервис mosquitto:
docker restart mosquitto
На этом этапе mosquitto установлен и настроен.

zigbee2mqtt

Создадим папку для работы нашего zigbee2mqtt моста:

mkdir /home/pi/smarthome/zigbee2mqtt
Добавляем сервис zigbee2mqtt в docker-compose.yml в конец файла:
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt:arm32v6 # arm32 (raspberry pi)
    #image: koenkk/zigbee2mqtt:latest # x86_64/amd64
    restart: always
    volumes:
      - ./zigbee2mqtt:/app/data
    devices:
      - /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9E292-if00:/dev/ttyACM0
    user: '1000:20'
Заметьте что id пользователя 1000, а id группы 20, это нужно, для того что бы пользователь в контейнере смог использовать группу dialout.

Нам нужно прокинуть наш usb-стик из хоста в контейнер, в моем случае это: 

/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9E292-if00

Где он находиться у вас, узнать можно выполнив команду в консоли:

ls /dev/ttyACM*
У меня несколько устройств в системе, и что бы не заблудиться в них, я указал по уникальному идентификатору устройства:
ls /dev/serial/by-id/usb-*
А так же для использования usb-стика нашим пользователем pi, нужно его добавить в группу dialout. Выполним команду в консоле:
sudo usermod -a -G dialout pi
Запускаем контейнер c zigbee2mqtt:
cd /home/pi/smarthome/ 
docker-compose up -d

Сервис запущен, нужно только настроить подключение к ранее подготовленному mosquitto.

После развертывания нашего контейнера, в папке /home/pi/smarthome/zigbee2mqtt будут находиться конфигурационные файлы zigbee2mqtt.
ls -lia /home/pi/smarthome/zigbee2mqtt
Настроим файл конфигураций /home/pi/smarthome/zigbee2mqtt/configuration.yaml, добавим в него настройки подключение к mqtt брокеру:
# Home Assistant integration (MQTT discovery)
homeassistant: true 

# allow new devices to join
permit_join: true

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://192.168.2.163'
  # MQTT server authentication, uncomment if required:
  user: user   
  password: qwerty     

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/ttyACM0
Заметьте, я указал IP-адрес хоста 192.168.2.163, то есть IP-адрес малины в нашей локальной сети.

Перезапустим контейнер zigbee2mqtt:

docker restart zigbee2mqtt

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

Home Assistant - вариант №1 ("легко")

Официальный образ Home Assistant. Плюс данного способа в том, что все очень просто разворачивает. Выполнил команду, и все скачалось и запустилось. Минус в том, что данный образ жирноват и кушает много места на диске, целых 1ГБ на образе для arm32 и 2.2ГБ для x86_64/amd64!

Найти образ (image) Home Assistant именно для вашего устройства и архитектуры, можно на официальной странице https://hub.docker.com/u/homeassistant.

И так приступим, добавим в наш docker-compose.yml следующие строки для нашего контейнера:
  homeassistant:
    container_name: homeassistant
    image: homeassistant/raspberrypi3-homeassistant # arm32
    #image: homeassistant/home-assistant # x86_64/amd64
    volumes:
      - ./homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: always
    network_mode: host
    user: '1000:1000'
Создадим папку, где будут находиться конфигурационные файлы HA:
mkdir /home/pi/smarthome/homeassistant
mkdir /home/pi/smarthome/homeassistant/config
Соберем контейнер:
cd /home/pi/smarthome/
docker-compose up -d
Готово, создаем учетную запись и добавляем в конфигурационный файл /home/pi/smarthome/homeassistant/config/configuration.yaml настройки подключения mqtt брокера:
#https://www.home-assistant.io/components/mqtt/
mqtt:
  broker: 192.168.2.163
  port: 1883
  username: user                 
  password: qwerty               
  client_id: homeassistant
  birth_message:
    topic: 'hass/status'
    payload: 'online'
    qos: 1
    retain: true
  will_message:
    topic: 'hass/status'
    payload: 'offline'
    qos: 1
    retain: true
 И перезапускаем Home Assistant.

Home Assistant - вариант №2 (оптимизация)

Суть всей оптимизации в том, что мы будем устанавливать только необходимые компоненты которые будем использовать в нашем Home Assistant. Во втором варианте мы будем собирать наш контейнер на основе образа alpine (5MB), фильтровать зависимости Home Assistant, их весьма много, да же я бы сказал очень много. Тем самым размер нашего образа весьма похудеет.

И так приступим, создадим файл Dockerfile, в котором будем описывать сборку нашего образа:
touch /home/pi/smarthome/homeassistant/Dockerfile
Содержимое /home/pi/smarthome/homeassistant/Dockerfile:
FROM alpine:3.8
LABEL maintainer="tweaker3 <tweaker3@ya.ru>"
LABEL Description="Home Assistant"

# Часовой пояс
ARG TIMEZONE=Europe/Moscow
# ID пользваотеля на хост машине, узнать в консоле: echo $(id -u)
ARG UID=1000
# ID группы пользователя на хост машине, узнать в консоле: echo $(id -g)
ARG GID=1000
# Версия Home Assistant (что бы обновить, нужно менять)
ARG VERSION=0.83.3
# Список python пакетов/зависимостей ХА, которые нам необходимы
ARG PLUGINS="frontend|sqlalchemy|xmltodict|netdisco|distro|aiohttp_cors|paho-mqtt"

ADD "https://raw.githubusercontent.com/home-assistant/home-assistant/${VERSION}/requirements_all.txt" /tmp

RUN apk add --no-cache python3 libffi-dev libressl-dev eudev-dev libstdc++ && \
    addgroup -g ${GID} hass && \
    adduser -h /config -D -G hass -s /bin/sh -u ${UID} hass && \
    addgroup hass dialout && \
    pip3 install --upgrade --no-cache-dir pip && \
    apk add --no-cache --virtual=build-dependencies build-base linux-headers python3-dev tzdata && \
    cp "/usr/share/zoneinfo/${TIMEZONE}" /etc/localtime && echo "${TIMEZONE}" > /etc/timezone && \
    sed '/^$/q' /tmp/requirements_all.txt > /tmp/requirements_core.txt && \
    sed '1,/^$/d' /tmp/requirements_all.txt > /tmp/requirements_plugins.txt && \
    egrep -e "${PLUGINS}" /tmp/requirements_plugins.txt | grep -v '#' > /tmp/requirements_plugins_filtered.txt && \
    pip3 install --no-cache-dir -r /tmp/requirements_core.txt && \
    pip3 install --no-cache-dir -r /tmp/requirements_plugins_filtered.txt && \
    pip3 install --no-cache-dir homeassistant=="${VERSION}" && \
    # For telegram 
    pip3 install --no-cache-dir netifaces PySocks && \
    apk del build-dependencies && \
    rm -rf /tmp/* /var/tmp/* /var/cache/apk/*

USER hass
ENTRYPOINT ["hass", "--open-ui", "--config=/config"]
Поправим наш сервис homeassistant в файле docker-compose.yml:
  homeassistant:
    container_name: homeassistant
    build: ./homeassistant
    #image: homeassistant/raspberrypi3-homeassistant # arm32
    #image: homeassistant/home-assistant # x86_64/amd64
    volumes:
      - ./homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: always
    network_mode: host
Удаляем прошлый контейнер и образ, и собираем новый:
cd /home/pi/smarthome/
docker stop homeassistant
docker rm homeassistant
docker rmi homeassistant/raspberrypi3-homeassistant:latest
docker-compose build
docker-compose up -d
Ждем завершение сборки.

Как нам узнать какой пакет нужно устанавливать? Очень просто, например я использую трекинг по nmap. 

Добавляем конфигурации в Home Assistant, перезагружаем его, и идем смотреть логи:

device_tracker:
  - platform: nmap_tracker
    hosts: 192.168.2.190
    home_interval: 10
В логи сыплются ошибки что не найден nmap, открываем ссылку https://raw.githubusercontent.com/home-assistant/home-assistant/0.83.3/requirements_all.txt и ищем там пакет отвечающий за работу nmap:
# homeassistant.components.device_tracker.nmap_tracker
python-nmap==0.6.1
Добавляем имя пакета в наш Dockerfile, а так же укажем nmap в список устанавливаемого софта для образа alpine:
ARG PLUGINS="frontend|sqlalchemy|xmltodict|netdisco|distro|aiohttp_cors|paho-mqtt|python-nmap"

RUN apk add --no-cache python3 libffi-dev libressl-dev eudev-dev libstdc++ nmap && \
Сохраняем Dockerfile, собираем образ и пересоздаем контейнер:
docker-compose build
docker-compose up -d
Я дома =)

Немного Portainer:

Обновление

Для того, что бы обновить наши сервисы до последних версий, нужно выполнить в консоли:

cd /home/pi/smarthome
docker-compose pull
docker-compose build
docker-compose up -d

Итог

Второй вариант, весьма нетривиален, и новичку покажется не прост в настройке, но при помощи его можно не плохо так сократить размер образа HA. Если вам это не нужно, и у вас достаточно места на диске, рекомендую использовать первый вариант развертывания Home Assistant в Docker. 

Структура каталогов и файлов:
-- smarthome
   |-- docker-compose.yml
   |-- homeassistant
   |   |-- config
   |   `-- Dockerfile
   |-- mosquitto
   |   |-- config
   |   |   |-- mosquitto.conf
   |   |   `-- passwd
   |   |-- data
   |   `-- log
   |-- portainer
   `-- zigbee2mqtt
docker-compose.yml
version: '3.3'

services:

  portainer:
    container_name: portainer
    image: portainer/portainer:1.19.2
    restart: always
    ports:
      - 9000:9000
    volumes:
      - ./portainer:/data
      - /var/run/docker.sock:/var/run/docker.sock

  eclipse-mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto:latest
    restart: always
    volumes:
      - ./mosquitto/config:/mosquitto/config
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log
    ports:
      - 1883:1883
    user: '1000:1000'

  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt:arm32v6 # arm32 (raspberry pi)
    #image: koenkk/zigbee2mqtt:latest # x86_64/amd64
    restart: always
    volumes:
      - ./zigbee2mqtt:/app/data
    devices:
      - /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014BDEB9C-if00:/dev/ttyACM0
    user: '1000:20'

  homeassistant:
    container_name: homeassistant
    #build: ./homeassistant
    image: homeassistant/raspberrypi3-homeassistant # arm32
    #image: homeassistant/home-assistant # x86_64/amd64
    volumes:
      - ./homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: always
    network_mode: host
    user: '1000:1000'

Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Алексей Новосельцев (novo)
    Алексей Новосельцев (novo) 9 месяцев назад

    Эээ...вижу работа проделана большая. Вот только мои знания не позволяют понять, в чём отличие установки Home Assistant описанной в статье от простой установки, как в статьях Охотника.

    И что это за Докер такой, может вводной информации не хватает?

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) 9 месяцев назад

      Докер... Ну если простыми словами, это такая штука, которая изолирует ваш ХА, со всеми его конфигами и софтовыми зависимостями в контейнер, который в дальнейшем можно развернуть буквально за секунды, на любой машине, где установлен докер.

      Подробнее в википедии

  2. Виталий Никольский (bigmanekb)

    вот если бы еще было описано как локально установленный ffmpeg использовать внутри докерного НА, это было бы вообще все что нужно для щастья.

    да и так статья ОГОНЬ ! Автору респект ! Разжевал для меня докер. Спасибо !

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) 9 месяцев назад

      Спасибо! Хм.. ffmpeg уже есть в контейнере (вариант №1), и нет необходимости управлять им на хосте.

      • Виталий Никольский (bigmanekb)

        А в том то и дело, что встроенный в НА ffmpeg кривой и тупит. А вот собранный по статье здесь на портале "правильный" вариант, хотелось бы из хоста просунуть в докер контейнер НА. А вот как это сделать правильно ?

    • Александр Жабунин (OXOTH1K)
      Александр Жабунин (OXOTH1K) 9 месяцев назад

      Я вчера завел камеры в докерном ffmpeg, работает лучше чем в венве питоновском. Ни затупок ничего такого не наблюдаю. Но это на десктопе а не на малине.

  3. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 9 месяцев назад

    Отличный материал и великолепный старт ))) Классное начало и ждём продолжения, и удачи в конкурсе ;)

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) отредактировано 9 месяцев назад

      Спасибо! Собственно по докеру, заметил, многие спрашивать стали в чате, так и появился этот гайд =)

  4. (DenisZagitov)
    (DenisZagitov) отредактировано 9 месяцев назад

    Очень надеялся что эта статья наконец поможет мне установить докер, но увы...

    Ставлю на Raspberry Pi Zero W чистый Raspbian Stretch Lite, иду по вашей инструкции и на шаге 

    sudo apt-get install -y docker-ce

    вижу ошибки: https://pastebin.com/wCphp1JX

    Job for docker.service canceled.

    docker.service couldn't start.

    Почему так и что можно сделать?

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) отредактировано 9 месяцев назад

      Судя по логам проблема с фреймворком DKMS, попробуйте перезапустить малину, и выполнить:

      sudo apt-get install -f 

      если не поможет, напишите мне в телеграмм

      UPD:
      Была проблема на raspberry pi zero w. Погуглил проблема массовая.

      Помогает:

      sudo apt-get install docker-ce=18.06.1~ce~3-0~raspbian
      sudo apt-mark hold docker-ce=18.06.1~ce~3-0~raspbian
  5. (DenisZagitov)
    (DenisZagitov) 9 месяцев назад

    Что бы добавить в автозапуск создайте файл:

    sudo nano /etc/systemd/system/docker-compose-app.service

    И внесите в него следующее:

    
    
    [Unit]
    Description=Docker Compose Application Service
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    WorkingDirectory=/home/pi/smarthome
    ExecStart=/usr/local/bin/docker-compose up -d
    ExecStop=/usr/local/bin/docker-compose down
    TimeoutStartSec=0
    
    [Install]
    WantedBy=multi-user.target
    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) 9 месяцев назад

      Так там и так автозапуск имеется. За это отвечает:

      restart: always
  6. Artem Tomshin (tweaker3)
    Artem Tomshin (tweaker3) отредактировано 9 месяцев назад
    Комментарий был удален
  7. (samyil)
    (samyil) отредактировано 8 месяцев назад

    все поставил. вроде работает. при попытке подключить нативные HomeKit устройства выдает ошибку Не удалось вызвать службу configurator/configure.

    2018-12-30 00:32:23 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.1849337712] Error handling message: {'type': 'call_service', 'domain': 'configurator', 'service': 'configure', 'service_data': {'configure_id': '1846182032-4', 'fields': {'code': '377-99-980'}}, 'id': 20},

    Traceback (most recent call last):, await func(hass, connection, msg), 

    File "/usr/local/lib/python3.6/site-packages/homeassistant/components/websocket_api/decorators.py", line 16, in _handle_async_response,

    File "/usr/local/lib/python3.6/site-packages/homeassistant/components/websocket_api/commands.py", line 148, in handle_call_service, connection.context(msg))
    File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1121, in async_call, self._execute_service(handler, service_call)), 

    File "/usr/local/lib/python3.6/site-packages/homeassistant/core.py", line 1143, in _execute_service, await handler.func(service_call)

    File "/usr/local/lib/python3.6/site-packages/homeassistant/components/configurator.py", line 221, in async_handle_service_call, call.data.get(ATTR_FIELDS, {})), 

    File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run, result = self.fn(*self.args, **self.kwargs), pairing_id), 

    File "/usr/local/lib/python3.6/site-packages/homeassistant/components/homekit_controller/__init__.py", line 192, in device_config_callback, 

    File "/usr/local/lib/python3.6/site-packages/homekit/protocol.py", line 94, in perform_pair_setup, resp = connection.getresponse(), 

    File "/usr/local/lib/python3.6/http/client.py", line 1331, in getresponse, response.begin()

    File "/usr/local/lib/python3.6/http/client.py", line 297, in begin, version, status, reason = self._read_status(), 

    File "/usr/local/lib/python3.6/http/client.py", line 258, in _read_status, line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1"), 

    File "/usr/local/lib/python3.6/socket.py", line 586, in readinto, return self._sock.recv_into(b), 

    socket.timeout: timed out

    возникает вопрос как подключиться к консоли НА что б разобраться с ошибкой??

  8. Fernando Santos (f3g3s3)
    Fernando Santos (f3g3s3) 7 месяцев назад

    Thanks!!!

    Good work!!!

    Best regards from Spain!!!

  9. (ikifka)
    (ikifka) 7 месяцев назад

    Добрый вечер.
    А начал с вашей установки , довольно таки доступно для начинающего.
    Столкнулся со следующей проблемой : при отключении RPi от питания (shudown прежде), и подключении снова , датчик темп/влаж/давл от Xiaomi , как будто отваливается. В Home Assistant  видно последнее значение до выключения. После удержания кнопки сопряжения на датчике 3 сек  , он сам подключается назад.
    Как избежать отваливание сенсора ?

    • Artem Tomshin (tweaker3)
      Artem Tomshin (tweaker3) 7 месяцев назад

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

      Если отвал конкретный датчика на постоянку, то нужно копать в сторону сети зигбии, смотреть логи и тд. Может сеть теряется, может еще что то.

      • (ikifka1)
        (ikifka1) отредактировано 7 месяцев назад
        Комментарий был удален
  10. (ikifka1)
    (ikifka1) 7 месяцев назад

    Ждал , значения висят , например температуре, на 19.12С на протяжении часа и не меняется.

    • zigbee2mqtt:info 2019-1-29 17:28:49 Logging to directory: '/app/data/log/2019-01-29.17-28-49', 
    • zigbee2mqtt:debug 2019-1-29 17:28:49 Removing old log directory '/app/data/log/2019-01-26.02-35-28', 
    • zigbee2mqtt:debug 2019-1-29 17:28:51 Using zigbee-shepherd with settings: '{"net":{"panId":6754,"channelList":[11]},"dbPath":"/app/data/database.db","sp":
      • {"baudRate":115200,"rtscts":true}}', 
    • zigbee2mqtt:debug 2019-1-29 17:28:51 Loaded state from file /app/data/state.json, zigbee2mqtt:info 2019-1-29 17:28:51 Starting zigbee2mqtt version 1.0.1 (commit #84593a5),
    • zigbee2mqtt:info 2019-1-29 17:28:51 Starting zigbee-shepherd,
    • zigbee2mqtt:info 2019-1-29 17:28:54 Error while starting zigbee-shepherd, attemping to fix... (takes 60 seconds), 
    • zigbee2mqtt:info 2019-1-29 17:29:54 Starting zigbee-shepherd, 
    • zigbee2mqtt:info 2019-1-29 17:29:56 zigbee-shepherd started, 
    • zigbee2mqtt:info 2019-1-29 17:29:56 Coordinator firmware version: '20181024', 
    • zigbee2mqtt:debug 2019-1-29 17:29:56 zigbee-shepherd info: {"enabled":true,"net":
      • {"state":"Coordinator","channel":11,"panId":"0x1a62","extPanId":"0xdddddddddddddddd","ieeeAddr":"0x00124b0018ed29ca","nwkAddr":0},"firmware":{"transportrev":2,"product":0,"version":"2.6.3","revision":20181024},"startTime":1548782996,"joinTimeLeft":0}, 
    • zigbee2mqtt:info 2019-1-29 17:29:56 Currently 1 devices are joined:, 
    • zigbee2mqtt:info 2019-1-29 17:29:56 0x00158d0002c8ede0 (0x00158d0002c8ede0): WSDCGQ11LM - Xiaomi Aqara temperature, humidity and pressure sensor (EndDevice),
    • zigbee2mqtt:warn 2019-1-29 17:29:56 `permit_join` set to `true` in configuration.yaml., zigbee2mqtt:warn 2019-1-29 17:29:56 Allowing new devices to join., 
    • zigbee2mqtt:warn 2019-1-29 17:29:56 Set `permit_join` to `false` once you joined all devices., 
    • zigbee2mqtt:info 2019-1-29 17:29:56 Zigbee: allowing new devices to join., 
    • zigbee2mqtt:info 2019-1-29 17:29:56 Connecting to MQTT server at mqtt://192.168.1.16:1883, 
    • zigbee2mqtt:info 2019-1-29 17:29:56 zigbee-shepherd ready, 
    • zigbee2mqtt:info 2019-1-29 17:29:57 Connected to MQTT server, 
    • zigbee2mqtt:info 2019-1-29 17:29:57 MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online', 
    • zigbee2mqtt:info 2019-1-29 17:29:57 MQTT publish: topic 'zigbee2mqtt/0x00158d0002c8ede0', payload  
      • '{"temperature":18.79,"linkquality":113,"humidity":64.65,"pressure":993,"battery":99,"voltage":3005}', 
    • zigbee2mqtt:info 2019-1-29 17:29:57 MQTT publish: topic 'homeassistant/sensor/0x00158d0002c8ede0/temperature/config', payload 
      • '{"unit_of_measurement":"°C","device_class":"temperature","value_template":"{{ value_json.temperature }}","json_attributes":["linkquality","battery","voltage"],"state_topic":"zigbee2mqtt/0x00158d0002c8ede0","availability_topic":"zigbee2mqtt/bridge/state","name":"0x00158d0002c8ede0_temperature","unique_id":"0x00158d0002c8ede0_temperature_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002c8ede0","name":"0x00158d0002c8ede0","sw_version":"Zigbee2mqtt 1.0.1","model":"Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)","manufacturer":"Xiaomi"}}', 
    • zigbee2mqtt:info 2019-1-29 17:29:57 MQTT publish: topic 'homeassistant/sensor/0x00158d0002c8ede0/humidity/config', payload 
      • '{"unit_of_measurement":"%","device_class":"humidity","value_template":"{{ value_json.humidity }}","json_attributes":["linkquality","battery","voltage"],"state_topic":"zigbee2mqtt/0x00158d0002c8ede0","availability_topic":"zigbee2mqtt/bridge/state","name":"0x00158d0002c8ede0_humidity","unique_id":"0x00158d0002c8ede0_humidity_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002c8ede0","name":"0x00158d0002c8ede0","sw_version":"Zigbee2mqtt 1.0.1","model":"Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)","manufacturer":"Xiaomi"}}', 
    • zigbee2mqtt:info 2019-1-29 17:29:57 MQTT publish: topic 'homeassistant/sensor/0x00158d0002c8ede0/pressure/config', payload 
      • '{"unit_of_measurement":"hPa","device_class":"pressure","value_template":"{{ value_json.pressure }}","json_attributes":["linkquality","battery","voltage"],"state_topic":"zigbee2mqtt/0x00158d0002c8ede0","availability_topic":"zigbee2mqtt/bridge/state","name":"0x00158d0002c8ede0_pressure","unique_id":"0x00158d0002c8ede0_pressure_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002c8ede0","name":"0x00158d0002c8ede0","sw_version":"Zigbee2mqtt 1.0.1","model":"Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)","manufacturer":"Xiaomi"}}', zigbee2mqtt:debug 2019-1-29 17:29:57 Received MQTT message on 'hass/status' with data 'online', zigbee2mqtt:debug 2019-1-29 17:29:57 Mounted the cieApp (epId {epId}), 
    • zigbee2mqtt:info 2019-1-29 17:30:17 MQTT publish: topic 'zigbee2mqtt/0x00158d0002c8ede0', payload 
      • '{"temperature":18.79,"linkquality":113,"humidity":64.65,"pressure":993,"battery":99,"voltage":3005}',
  11. (Stein)
    (Stein) месяц назад
    Как в контейнере выполнить какую-либо команду? Например на docker -v получаю:

    bash: docker: command not found

    Не могу подключиться по ssh из контейнера получаю:

    No user exists for uid 1000

    из-за этого не могу заставить работать компонент asuswrt

  12. (Brain)
    (Brain) месяц назад

    Подскажите пожалуйста, поставил на ubuntu HA в докере.
    Если я сейчас установлю Portainer, он подхватит и увидит раннее установленный докер ?

  13. (AlexBird55)
    (AlexBird55) 14 дней назад

    Артем, спасибо, отличная статья. У меня возник вот такой вопрос: 

    После сборки мне понадобилась утилита lm_sensors. Если я добавлю ее в список устанавливаемого софта и пересоберу образ homeassistant, останутся все мои настройки, add-ons, lovelace и пр.?

  14. (Prm)
    (Prm) отредактировано 4 дня назад

    Отлично! Спасибо за труд! Устанавливал на комп с Ubuntu 18.04, встретил ряд проблем:

    1. При использовании "image: koenkk/zigbee2mqtt:latest # x86_64/amd64" zigbee2mqtt не работает, ругается. Заменил на "image: koenkk/zigbee2mqtt # x86_64/amd64" - заработало

    При установке homeassistant есть непонятный момент, возможно, кому-то поможет:

    > Готово, создаем учетную запись и добавляем в конфигурационный файл

    Для создания учетной записи необходимо в браузере открыть URL http://localhost:8123. Это необходимо проделать перед добавлением конфигурационного файла.

  15. (RuDen)
    (RuDen) день назад

    Всем привет. Спасибо вам за статью. Помогите пожалуйста разобраться: устанавливаю по второму варианту и все работает, но при обнавлении HA он не хочет запускаться. Обновляю так: в dockerfile прописываю версию 0.99.0 и alpine 3.10, затем в онсоли pull, build и up. Все происходит через ssh на raspberry pi 3 b+, raspbian

К списку статей

Похожие статьи

15 ноября 2018, 09:42
Способы автоматизации механических ворот
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
25 ноября 2018, 18:23
Умное зеркало добавляем модули Airplay и Google Calendar
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
24 августа 2018, 10:15
Краткий экскурс в настройку Home Assistant