Статья

Перевозим Умный Дом с малины на NAS

В какой-то момент я задумался о том, что хочу от своего умного дома и видеонаблюдения в обозримом будущем и начал изучать варианты. Самым простым на первый взгляд казалось взять более мощный чем RPI 3B одноплатник типа Rock64/Rock64 Pro/Le Potato и т.д. на ARM или LattePanda на X86 или вообще собрать на базе Intel NUC плюс под видеонаблюдение взять NVR. Не понравилось мне во всем этом отсутствие единообразия в формате все в одном. В какой-то момент пришла идея поизучать НАСы на этот предмет, и вот уже я скурпулезно вычитываю все характеристики, опыт пользования и, в итоге,  выбираю между 2мя моделями NAS 2х конкурирующих брендов QNAP и Synology... в общем взял Synology DS918 , т.к. он идеально отвечает моим требованиям на ближайшие 5-8 лет. Но статья не о выборе и моих требованиях, поэтому далее продолжим по теме.

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

Мой конфиг до NAS

Железо:

Софт:

  • Raspbian Stretch Desktop Lite
  • Home Assistant (в venv; основа УД) Configurator
  • HomeBridge (камеры в Дом Television для LG WebOS)
  • Phoscon (ГУЙ для Deconz)
  • NodeRed (пока просто прокинут бридж и интеграция с HA)

Такого конфига мне хватило на 7 месяцев, пока малина не начала практически задыхаться и любого шага влево/вправо.

Мой конфиг сейчас

ЖЕЛЕЗО:

Synology DS918 SSD SATA 250GB (Под УД)SSD USB 120GB (Под бекапы УД)
HDD SATA 1TB (валялся бесхозный, пошел на торренты и видеонаблюдение)USB концентратор для стиковDeconz ConBeeUZB1

СОФТ:

Docker (в нем теперь живет УД и видео)Home Assistant (основа УД)  ConfiguratorHomeBridge (камеры в Дом Television для LG WebOS)Phoscon (ГУЙ для Deconz)NodeRed (пока просто прокинут бридж и интеграция с HA)Motion Eye

Подготавливаемся к переезду

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

1. Бекапим

  • Подключаемся в малине по sftp любым привычным клиентом (я юзаю FileZilla), доступы теже, что и от SSH;

1.1 Home Assistant

  • Идем в папку с конфигами HA;

/home/homeassistant/.homeassistant/ #у меня эта папка находилась по данному пути

  • Создаем на ПК папку "config" и скачиваем в нее все содержимое;

1.2 HomeBridge

  • Идем в папку с конфигами HB;

/home/.homebridge/ #у меня эта папка находилась по данному пути

  • Создаем на ПК папку "homebridge" и скачиваем в нее файл config.json и дополнительные файлы для плагинов, если у вас такие есть, у меня кроме камер там только Television с папкой и отдельным файлом.
  • sftp нам больше не потребуется, выходим;

1.3 Phoscon (Deconz)

  • Идем в интерфейс (обычно на 80 или 8080 порту), заходим в "Gateway", кликаем на "Backup options" и выбираем "Save", сохраняем себе полученный файлик (название формата "raspbee_gateway_config_2019-03-31.dat")

1.4 Z-Wave (стик UZB1)

  • Если в configuration.yaml в HA у вас прописан network_key:, то не паримся - по нему устройства сами перенесутся, если нет - придется переспаривать устройства скорее всего (точно сказать не могу);

1.5 NodeRed

  • Я не успел начать им пользоваться и изучить его, только завел бридж в HomeKit (Дом) и настроил интеграцию с ХА, не парился и просто забил. Если кто-нибудь напишет в комментариях процесс бекапа NR, будет круто.

На этом с бекапом все (серьезно все =) ), выключаем малину и идем в NAS (Малину необходимо обязательно выключить или хотя бы вырубить ей сеть, иначе не поднимете Homebridge (из-за Avahi); я на то, чтобы это понять угробил часа 3-4 из жизни =)

2. Забираем стики из малины

  • Если у вас был raZberry или RaspBee - в барахолку и/или на авито/юлу.

Поднимаем УД на NAS

1. Подготавливаем NAS к работе

  • Ставим систему DSM, разбиваем диски, настраиваем под себя - тут не буду расписывать, это тема отдельной статьи (для удобства дальнейшей настройки присваиваем НАСу тот же IP, что был у малины).

2. Docker

  • Ставим Docker из "Центра пакетов", он на Synology есть в базовом репозитории "из коробки" и открываем его;
Идем в реестр, подбираем необходимые образы и скачиваем двойным кликом/кнопкой "Загрузить".
Вот, какие образы я скачивал (На текущий момент все кроме NodeRed и Mosquitto (инфы про них по установке не будет, но там все без особых заморочек) уже настроены и работают).

2.1 Home Assistant Z-Wave (UZB1)

  • Идем в "File Station", заходим в папку "docker", создаем папку "homeassistant";
  • Если есть Deconz, идем в папку "config", открываем файл configuration.yaml и меняем значение port компонента deconz на 81;
  • Архивируем папку "config", загружаем в созданную папку "homeassistant" и распаковываем архив (Должен получиться следующий путь: docker/homeassistant/config);
  • Идем в "Панель управления"/"Планировщик задач", выбираем "Создать"/"Запущенная задача"/"Скрипт, заданный пользователем": придумываем уникально название задачи, пользователь "root", событие "Загрузка", ставим галочку "Включено", переходим во вкладку "Настройка задач" и в поле "Выполнить команду" вставляем следующее (В параметр TZ указываем свою временную зону):

sudo docker run --restart always -d --name="homeassistant" -v /volume1/docker/homeassistant/config:/config --device=/dev/ttyACM0 -e TZ=Europe/Moscow --net=host homeassistant/home-assistant

2.1.1 Hass Configurator

  • Дважды кликаем по ранее скачанному образу, выбираем подходящее название контейнера (у меня hass-configurator);
  • Выбираем "Дополнительные настройки": ставим галочку на "Включить автоматический запуск", во вкладке "Настройки портов" указываем 3218 для локального порта и порта контейнера, выбираем "Применить" и следуем указаниям инсталлятора.

2.2 Phoscon (Deconz)

  • Идем в "Панель управления"/"Планировщик задач", выбираем "Создать"/"Запущенная задача"/"Скрипт, заданный пользователем": придумываем уникально название задачи, пользователь "root", событие "Загрузка", ставим галочку "Включено", переходим во вкладку "Настройка задач" и в поле "Выполнить команду" вставляем следующее (Так мы по сути включаем определение устройства /dev/ttyUSB0 (По умолчанию НАС не видит его среди устройств "/dev/tty*")):

sudo insmod /lib/modules/usbserial.ko sudo insmod /lib/modules/ftdi_sio.ko

Там же еще раз выбираем "Создать"/"Запущенная задача"/"Скрипт, заданный пользователем": придумываем уникально название задачи, пользователь "root", событие "Загрузка", ставим галочку "Включено", в поле "Предварительная задача" выбираем задачу, созданную на предыдущем этапе, переходим во вкладку "Настройка задач" и в поле "Выполнить команду" вставляем следующее:

docker run -d \ --name=deconz \ --net=host \ --restart=always \ -v /etc/localtime:/etc/localtime:ro \ -v /opt/deconz:/root/.local/share/dresden-elektronik/deCONZ \ --device=/dev/ttyUSB0 \ marthoc/deconz

2.3 HomeBridge

  • Идем в "File Station", заходим в папку "docker", создаем папку "homebridge";
  • Загружаем в созданную папку "homebridge" файл "config.json" и прочие скачанные файлы для homebridge (Должен получиться следующий путь: docker/homebridge);
  • Идем по ссылке и скачиваем последнюю версию;
  • Идем в "Центр пакетов"/"Установка вручную" и выбираем, скаченный на предыдущем этапе, файл, следуем указаниям инсталлятора, соглашаемся на установку UI X. После установки в основном меню DSM появится отдельная иконка для запуска/открытия в отдельной вкладке UI X HomeBridge.

Запуск контейнеров и первичные правки

  • HB и Hass Configurator уже запущены при создании через докер;
  • Идем в "Панель управления"/"Планировщик задач", выбираем первую задачу из п.2.2 и кликаем запустить, потом точно тоже самое делаем со второй задачей из п.2.2, потом аналогично для задачи из п.2.1;
  • Теперь у нас все запущено, идем в Docker, во вкладку "Контейнеры" и должны увидеть примерно следующую картину:
Deconz может быть не запущен (если запущен, то останавливаем его), выбираем "Редактировать", идем во вкладку "Защита окружающей среды" и указываем ему: отдельный порт в поле deconz_web_port (выше мы указали 81 в конфиге ХА, поэтому тут указываем 81), ставим 1 у полей deconz_vnc_mode и deconz_vnc_display, придумываем пароль для подключения по VNC к GUI деконза и указываем его в deconz_vnc_password; Сохраняем и запускаем контейнер.Первичная настройка на этом закончена, далее список портов, на которых работают наши контейнеры:Home Assistant8123Hass Configurator3218Deconz Phoscon81Deconz GUI (Подключение по VNC)5900Homebridge8581

Приводим все в порядок

1. Home Assistant  z-wave deconz
Что было у меня (не факт, что это повторится у вас): 

  • Идем в логи, смотрим какие ошибки возникли, правим их.
    1. Был сенсор, который ссылался на папку в малине - удалил его
    2. Изменился мой ID, который я использую для компонента person - взял новый и указал в конфиге
  • Устройства z-wave зашли, но изменился энтити на стандартный (я их менял под себя) - не страшно, просто обновил в ловеласе названия
  • Не подключен деконз, подключаем стандартно (открываем через фоскон аутентификацию и включаем интеграцию в ха (ip и порт в конфиге HA должны быть корректные), вот тут была боль: у всего подтянулись мои названия энтити, кроме сенсоров (для них подтянулись мои названия энтити с добавление _sensor в конце (т.е. было sensor.vhod_door, стало sensor.vhod_door_sensor)) - не стал менять энтити, обновил все в ловеласе и файле с автоматизациями (минут 30 на все ушло)
  • После всех правок перезагружаем ХА и смотрим чтобы больше не было ошибок
  • В Доме (HomeKit) удаляем старый бридж и добавляем новый, раскидываем устройства по комнатам (еще минут 20)

2. Hass Configurator

  • Открываем конфигуратор, он по умолчанию откроет папку с самим конфигуратором - открываем его и правим для удобства следующее:

BASEPATH = "/homeassistant/config/" #Ставим папку конфигов ХА по умолчанию при открытии HASS_API = "http://192.168.1.95:8123/api/" #Указываем IP НАСа для работы по API с ХА HASS_API_PASSWORD = "password" #Указываем пароль для API USERNAME = "login" #Указываем логин для входа в конфигуратор PASSWORD = "password" #Указываем пароль для входа в конфигуратор

  • Перезагружаем контейнер с Hass Configurator

3. Homebridge

  • Ставим необходимые плагины
  • Идем в логи, смотрим какие ошибки возникли, правим их
  • После всех правок перезагружаем ХБ и смотрим чтобы больше не было ошибок
  • В Доме (HomeKit) удаляем старый бридж и добавляем новый, раскидываем устройства по комнатам (у меня только 4 камеры и 1 ТВ, тут все быстро)

Заключение

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

Понравилось? Не забудьте поставить лайк этому обзору и подписаться на меня, это мотивирует дальше писать больше полезного контента!

Остались вопросы или что-то не раскрыто? Напишите об этом в комментариях - попробуем совместно разобраться.


Будем знать, на что способен мой NAS). А то крутится недогруженный, а вокруг ещё малинами обрастает. Лайк.

Реально, не реально титаническая работа!!! Спрут, дай возможность поставить 100К лайков :))

Где брали синолоджи? Во сколько обошёлся?) и почему не кунап?) Очень хотелось бы услышать ваше мнение.

  • Брал в озоне, мне обошелся в 27, но это исключительно моя история.
  • У синолоджи ОС дружелюбнее, апки для iOS и apple tv поинтереснее, сразу из коробки есть 2 слота под М2 для кэша и мануалов в целом как-то побольше в сети.

Есть альтернативный вариант (минимум в два раза бюджетнее) поднять synology DSM на более мощном железе, чем j3455 который стоит в 918 коробке. 

hhttps://xpenology.com/forum/" style="font-size:1em;background-color:rgb(255,255,255);font-weight:inherit;">ttps://xpenology.com/forum/

А база HA в sqllite или mariaDB на Synology? 

Родная от ХА, Марию не ставил, тут даже родная неплохо отрабатывает.

Вчера перешел тоже на DS218+. В принципе все нравится, только со встроенной базой все же не понравилось. Любое движение (запись в базу), сразу слышно как пишет на диск НА. Пока перешел на MariaDB на том же NAS, вроде пишет на диск поспокойнее.

Отличная статья, камеры из SurveillanceStation в кит прокинули?

Нет, зачем? Station не зашёл, юзаю MotionEye. А в кит напрямую rtsp поток камер

Спасибо за статью.
Предостерегаю народ на вяки

Спасибо за статью.
Предостерегаю народ на всякий пожарный. Docker не все synology хранилки поддерживают. Вернее все новые.
Имею synology 213j(2013) года. Хотел мигрировать home assistant в него, но увы. Есть возможность ставить только старые версии ассистента(до 0.56).
А докер(как приложение) моя хранилка не поддерживает. Видать железо на тот момент современность не вывозит. ТАк что кто будет брать synology - обратите внимание на модельный год.

Тут нужно смотреть не на модельный год, а на архитектуру процессора, серия J на ARM архитектуре с фиксированным количеством оперативной памяти и не годится для УД (и не поддерживает докер), если брать с процессором на архитектуре X86_64, то размер оперативной памяти не фиксирован и может быть расширен плюс на данной архитектуре спокойно работает докер и вывозит необходимые требования. 

Ну не совсем правда...

"Ради познания прекрасного"... :) … поставил homebridge на ds115j через SSH. Даже запустил, но с автозагрузкой не разбирался...

"Дело было вечером, делать было не чего..." :)

В принципе ничего сложно, и самое смешное - работает...

Я наоборот заказал малину чтобы развернуть homebridge там, уж очень костыльно все это в синолоджи через докер. 

В чем костыльность? Можно конкретику?



Отличная статья, у самого synology ds213+ старенький, добавил памяти вроде справляется, тоже стоит HA и HomeBridge и стик z-wave от aeon. Еще контроллер для unifi. вот хочу себе deconz прикупить,был бы рад прочитать статью по настройке стика dezonz на synology более подробную.

И еще по поводу HA на synology, не знаю может это только у меня но есть проблемы с трекингом, пробовал и через icloud и Unifi  и еще что то уже не помню, ошибки валятся и баста, в чате спрашивал, не кто не смог помочь.

И по поводу mosquitto его не обязательно через контейнер ставить, можно как приложение

1000x_image.jpg?1554452800

 там только бывает проблема, что он не запускается, вылетает в ошибку, но это поправимо, вот по этой инструкции делал

Поставил Mosquitto из центра пакетов и подружил с ХА, встала ок, все пашет без проблем. Хотел изначально через докер, не замечал его в центре пакетов как-то, спасибо.

Я тоже малинку купил, чтобы переехать HA с Synology на нее. Вроде как NAS не особо справлялся. А тут наоборот?

Я УД на малине теперь вспоминаю как страшный сон, на Synology все работает идеально.

Тут нужно понимать, что не все синолоджи одинаковые. У человека самый топ из домашней линейки, дальше уже энтерпрайзные модели идут в рэковых корпусах, если я не ошибаюсь. Да к тому же версия плюс, это с 8гб ОЗУ ;) На таком всё летает, в отличии от бюджетных моделей. У меня 916+, это прошлогодняя модель. Без проблем крутит одновременно пару виртуалок с 7 и 10й виндой. При этом, на такую же модель, но без плюс, уже виртуалки не доступны.

Актуальная для меня статья!

Тоже железка 918+, но стик cc2531 буду к нему коннектить. Подскажи, какой usb-концентратор используешь? На форумах синолоджи какая-то противоречивая информация насчет концентраторов. 



Да самый обычный https://www.nix.ru/autocatalog/usb_hub/Hama-12167-4-port-USB20-Hub_331467.html">usb 2.0 Hama 12167 Black за 278 рублей, ему не требуется отдельное питание, короткий шнурок и 4 входа, которые я в последствии все заюзаю, аккуратно приклеил на заднюю стенку, фото приложил. USB 2.0 потому что нет необходимости использовать 3.0 для стиков. Форумов не читал даже, там обычно одни батхертеры сидят. 

1000x_image.jpeg?1555510722

А скажи поподробнее по 

Hass Configurator. это так называемый hass.io? т.е после настройки в HA появится вкладка hass.io c возможностью установки контейнеров, или как, для чего?

Никаких hass.io, это web редактор кода - https://www.home-assistant.io/docs/ecosystem/hass-configurator/">https://www.home-assistant.io/docs/ecosystem/hass-configurator/. Я никогда не пользовался и не буду пользоваться hass.io/hassos и соответственно статей/блогов по ним от меня не будет, только ХА, только хардкор =)

так в synology очень неплохой редактор стоит, я там правлю конфиги



Так а кто ж спорит, что родной плохой. Я писал как свой конфиг с малины на НАС переносил и охватил все, что было. А так мне всегда проще было все в одном окне ХА делать, вообще все, что с УД связано.

1000x_image.png?1555677470

Зачетно, это у вас все НА? а как вы сюда добавили например homebridge и даже роутер? А то у меня все разрозненно. А что за список покупок? 



все внутри HA открывается, прописано вот так:

1000x_image.png?1555678273

Список это - https://www.home-assistant.io/components/shopping_list/">https://www.home-assistant.io/...

а url роутера просто открывает страницу роутера? и еще вопрос если не надоел по поводу url к примеру на homebridge просто прописать как у вас и появится если установлен? или настойка еще где-то есть по этой secret panel? 

Алексей, уже 2 дня мучаюсь с таким же вариантом как у вас. Версия контейнера 64. Стик через удлинитель, от wifi рутера 3 м. Каналы разнесены. 

Основные проблемы возникают после перезагрузки контейнера в докере. 

Не виден стик, deconz не даёт нажать connect. Только перезагрузка NAS помогает. 

Также пропадают из deconz датчики, движения. 

Слетает в deConz названия выключателей. 

Периодически загрузка процессора от deconz, под 50%. Опять только перезагрузка помогает. 

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

Вопрос, как правильно перегружать контейнер??? 

Чтрбы это не была лотарея каждый раз. 


Дополню предыдущий комментарий. 

Мне кажется, что:


Основная беда была, в том, что база внутри контейнера.

Поскольку я новичок, то начал со спаривания выключателей и датчиков. И у меня естественно не было бекапа от предыдущей инсталляции. 

Поскольку выключатели акара добавляются с фантомами ( а это лечится перезегрузкой деконза), я часто перегружал контейнер и видимо портил базу, которая сохраняется раз в 900 секунд.

Кстати, в моем случае, прошивка стика в докере гарантированно его окирпичивает. Нормально можно прошить только на Raspberry на официальном образе. 

Сейчас перешёл на 64ю версию и 49 прошивку. Вроде работает. Кроме пропадающего после перезагрузки датчика движения. 

По моему опыту , Синолоджи очень надежная  штуковина , первая отработала 10 лет  как часы , отдал другу в мастерскую  и  продолжает трудится , я  ее поменял на новую только из за докера , сейчас иоброкер  и конби в тестовом режиме с февраля месяца , очень стабильно и хорошо ! Надо прикрутить зетвей , все никак руки не дойдут , спасибо за статью !

Спасибо за отличный обзор!

Тоже поставил себе Homebridge via Docker. HomeKit работает но только дома (local). Через инет не работает. Как это лечится?

Надо в synology что то менять? Порт (8581)в роутере открыт.

Спасибо!

Что за глупость запускать контейнеры через планировщик?

И зачем хоумбридж через spk то ставить?

А как тогда? какие ваши рекомендации?

Рекомендую просто запустить контейнеры через интерфейс докера в DSM.

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

Если нужен внешний доступ из сети (мультикаст например), используйте хостовую сеть.

Запуск через планировщик - это какой-то очень странный способ.

По поводу хоумбриджа - он прекрасно работает без SPK - обычным докер контейнером. Опять таки, зачем ставить лишний пакет (и как потом его обновлять?) непонятно.

Добрый день! Не подскажите, у Вас Вэб-морда Homebridge сейчас работает? У меня после обновления Docker почему-то перестала открываться(

У меня такая же проблема, подскажите кто может?

Порт изменился с 8581 на 8080, у меня теперь так работает.

После обновления Докера всё заработало.

Не стоит обновляться сразу как выходят обновы, лучше подождать недельку другую. Они иногда отменяют через день-два обновы из критов и удаляют из Центра пакетов (Обнова, которая у всех глючила как раз так и пропала).

Подскажите, как правильно настроить SSL в докере, не получается заходить по HTTPS. Все установил по Вашей статье на такой же synology.

Тоже не смог настроить 

HTTPS =) Обратный прокси не работает согласно статье 

https://community.home-assistant.io/t/synology-dsm-reverse-proxy/199502">https://community.home-assistant.io/t/synology-dsm-reverse-proxy/199502

Кто то нашел, как настроить ssl, так и не смог решить эту проблему. 

Добрый день! Что-то контейнер deconz в докере не запускается. В журнале пишет:

Start container deconz failed: {"message":"linux runtime spec devices: error gathering device information while adding custom device \"/dev/ttyUSB0\": no such file or directory"}.

У меня устройство /dev/ttyACM0 - в скриптах указывал этот путь.

Что не так?

Я тоже в свое время через Docker всё испробовал. В итоге HA поднял как виртуальную машину, и как-то интереснее и веселее 

Добрый день. Подскажите пожалуйста, можно ли поставить home assistent, если на NASе установлена более старая версия прошивки на которой еще нет поддержки докера (DSM 5.2)?

Вопрос знатокам: у меня "младшенькая" модель synology 220j, т.е. там не интеловский проц и нельзя поставить докер просто из маркета приложений. Я пробовал конечно в ручную скачать файл докера для старшей модели synology и установить вручную, но ничего из этого не вышло...
Есть ли способ вкорячить докер и home assistant на мою модель NAS? А то глюки УД с малинкой уже достали(((((

Использую XPenology (DS918+,

DSM 6.2.3-25426 Update 3. ).

Какие USB стики посоветуете брать под Bluetooth и Zigbee?

Хочу по BT собирать данные через интеграцию HA - "https://github.com/custom-components/ble_monitor">Passive BLE monitor" и использовать для https://community.home-assistant.io/t/google-tts-to-a-bluetooth-speaker-on-synology-nas/15172">беспроводных колонок.

Zigbee стик для zigbee2mqtt устройств.

Ещё вопрос: Для доступа HA к устройствам USB нужно контейнеру каки-то специальные разрешения давать? Подключил китайский usb BT Dongle, Xpenology его видит как "

Bluetooth Dongle (HCI mode) - Cambridge Silicon Radio, Ltd

", но ни одно устрйоство не коннектится.

Подскажите решили вопрос?

Начиная с версии 

supervisor



2021.01.8 возникла нерешаемая проблема с контейнерами addon-ов. Проблема вероятно с устаревшим ядром докера NAS.

ERROR (SyncWorker_4) [supervisor.docker] Can't start addon_a0d7b954_grafana: 400 Client Error for http+docker://localhost/v1.39/containers/b88e9b9d34f4f4ee63af4c692ebb6514181dc110c9c5f415e4cfb8cab6dedd61/start: Bad Request ("OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/dev/init\": stat /dev/init: no such file or directory": unknown")

Вернуться назад

Устройства


Вернуться назад