Итак, DomoticZ успешно собрался и установился. Устанавливал командой make install, установился он в /opt/domoticz.
При подготовке к сборке нашлась ошибка в инструкции в wiki DomoticZ в части, касающейся сборки требуемой зависмости – библиотеки boost: замещающий текст ссылки указывает на версию 1.8.0, а сама ссылка ведёт на версию 1.79.0_rc1. Если копипастить в терминал текст команд – то всё будет хорошо, а если скопипастить ссылку – то скачается не то, что нужно.
Автозапуск DomoticZ реализовал через systemd, юнит слегка подправил:
[Unit]
Description=Domoticz Home Automation
After=network.target
[Service]
Type=simple
ExecStart=/opt/domoticz/domoticz -www 8080 -sslwww 0 -syslog daemon -pidfile /run/domoticz.pid
PIDFile=/run/domoticz.pid
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Web-интерфейс опубликовал через системный nginx. Ниже содержимое файла /etc/nginx/sites-available/domoticz, на который создан symlink /etc/nginx/sites-enabled/domoticz
server {
listen 443 ssl; # managed by Certbot
server_name domoticz.domain.zone; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domoticz.domain.zone/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domoticz.domain.zone/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
include proxy_params;
access_log /var/log/nginx/domoticz.domain.zone_access.log;
error_log /var/log/nginx/domoticz.domain.zone_error.log;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://localhost:8080/;
}
}
Сертификат SSL, как видно, получен у Let’s Encrypt.
Установил плагин ZigbeeForDomoticZ, в его конфигурации выбрал Coordinator Model: Texas Instruments ZNP (via zigpy), Coordinator Type: USB, Serial Port: /dev/ttyUSB0, Initialize coordinator: true и через несколько минут увидел в Devices работающие устройства донгла:
В качестве брокера очередей MQTT планировал изначально ejabberd. Но увы – все попытки его запустить заканчивались segmentation fault – видимо 256 мегабайт RAM ему мало, несмотря на отсутсвие подключений и клиентов. Поэтому поставил и установил mosquitto.
Опубликовал в интернет его так же через nginx. Пример конфига из /etc/nginx/nginx.conf (директива stream в контексте http не допускается, поэтому в файл виртуального хоста добавить это нельзя):
stream
{
upstream mosquitto
{
server localhost:1883;
}
server {
listen 8883 ssl;
proxy_pass mosquitto;
ssl_certificate /etc/letsencrypt/live/domoticz.domain.zone/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domoticz.domain.zone/privkey.pem;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
}
}
Далее добавил в domoticz устройство MQTT Client Gateway with LAN interface, ввел параметры mosquitto и в логе domoticz увидел успешное подключение:
Jan 23 21:26:31 NAS domoticz: mosquitto@NAS: Connecting to localhost:1883
Jan 23 21:26:31 NAS domoticz[18098]: domoticz: mosquitto@NAS: connected to: localhost:1883
Jan 23 21:26:31 NAS domoticz[18098]: 2023-01-23 21:26:31.859 Status: mosquitto@NAS: connected to: localhost:1883
Jan 23 21:26:31 NAS domoticz: mosquitto@NAS: connected to: localhost:1883
На этом пока всё.