Créer un serveur domotique avec Domoticz

Publié le 4/04/2018

Domotique, Raspberry Pi

Installation de Domoticz sur un serveur sous Debian 9

L’arrivée de Debian 9 a quelque peu changé l’installation de Domoticz.
En outre, j’ai recherché une procédure plus fiable que sur mon précédent article.

Par contre, la procédure d’installation de Debian n’a pas changé (à part quelques modifications esthétiques).

Toutes les commandes sont à lancer sous la console de Debian ou à distance via le logiciel Putty. Connectez-vous avec un utilisateur standard membre du groupe Sudo.

ATTENTION

Il s’avère que Domoticz rencontre certains problèmes de droits sur Debian 9 ce qui peut être gênant dans la mise en place de la connexion protégée par SSL (port 443).
En outre, cette procédure d’installation fonctionne parfaitement avec Debian 8 (Jessie).


Préparation

Installation de Open-SSL1.1.0 et libssl1.0-dev

sudo apt-get install cmake make gcc g++ libssl-dev git libcurl4-openssl-dev libusb-dev python3-dev

Construction et installation de la librairie Boost

On commence par supprimer les dépendances inutiles.
sudo apt-get remove libboost-dev libboost-thread-dev libboost-system-dev libboost-atomic-dev libboost-regex-dev
sudo apt-get remove libboost-date-time1.55-dev libboost-date-time1.55.0 libboost-atomic1.55.0 libboost-regex1.55.0 libboost-iostreams1.55.1
sudo apt-get remove libboost-iostreams1.55.0
sudo apt-get remove libboost-serialization1.55-dev libboost-serialization1.55.0 libboost-system1.55-dev
sudo apt-get remove libboost-system1.55.0 libboost-thread1.55-dev libboost-thread1.55.0 libboost1.55-dev
sudo apt-get autoremove

Et on construit et installe Boost.
mkdir boost
cd boost
wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
tar xfz boost_1_66_0.tar.gz
rm boost_1_66_0.tar.gz
cd boost_1_66_0/
./bootstrap.sh
./b2 stage threading=multi link=static --with-thread --with-date_time --with-system --with-atomic --with-regex
sudo ./b2 install threading=multi link=static --with-thread --with-date_time --with-system --with-atomic --with-regex
cd ../../
rm -Rf boost/

Ajout du support de OpenZWave

sudo apt-get install libudev-dev
git clone https://github.com/OpenZWave/open-zwave open-zwave-read-only
cd open-zwave-read-only
git pull
make
cd ../

Installation de Domoticz

sudo apt-get install zlib1g-dev

git clone https://github.com/domoticz/domoticz.git dev-domoticz
cd dev-domoticz
git pull
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make -j 3

A ce niveau, l’installation peut être très, très longue. Alors patience.

sudo cp domoticz.sh /etc/init.d sudo chmod +x /etc/init.d/domoticz.sh sudo update-rc.d domoticz.sh defaults sudo nano /etc/init.d/domoticz.sh

A la ligne USERNAME remplacez $USERNAME par votre utilisateur :

USERNAME=$USERNAME
DAEMON=/home/$USERNAME/domoticz/$NAME
DAEMON_ARGS="-daemon -www 8080"

Installation de letsencrypt pour le SSL (HTTPS)


cd /etc
sudo git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo ./letsencrypt-auto

Création du certificat


sudo /etc/letsencrypt/letsencrypt-auto certonly --webroot --email <your email> -d <your complete sub.domain name> -w /home/<user name>/domoticz/www/

Vous devez remplacer les annotations entre « <> » avec vos paramètres.

Lors de la procédure, je me suis rendu compte que le nom de domaine devait impérativement permettre l’accès à Domoticz depuis le port 80. J’ai donc temporairement renvoyé le port 80 de ma box vers le 8080 de Domoticz.

Ajouter les certificats à Domoticz

sudo rm /home/ <user name> /domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/<your domain>/privkey.pem >> ~/domoticz/server_cert.pem
sudo cat /etc/letsencrypt/live/<your domain>/fullchain.pem >>~/domoticz/server_cert.pem
sudo cp /home/
<user name> /domoticz/server_cert.pem ~/domoticz/letsencrypt_server_cert.pem
sudo /etc/init.d/domoticz.sh restart

Lors d’une mise à jour, il est possible que Domoticz écrase le certificat. Il suffit alors de faire :
sudo cat /etc/ssl/certs/dhparam.pem >> ~/domoticz/server_cert.pem

Enfin, si Domoticz affiche une erreur du genre :

/etc/ssl/certs/dhparam.pem: No such file or directory

Corrigez avec :
cd /etc/ssl/certs
sudo openssl dhparam -dsaparam -out dhparam.pem 4096
sudo cat /etc/ssl/certs/dhparam.pem >> ~/domoticz/server_cert.pem
sudo /etc/init.d/domoticz.sh restart

Permettre à Domoticz d’accéder aux USB


sudo usermod -a -G dialout VOTRE_NOM_D_UTILISATEUR

Lancer Domoticz au démarrage


nano /etc/systemd/system/domoticz.service

Et coller le contenu suivant :


[Unit]
Description=domoticz_service
[Service]
User=VOTRE_NOM_D_UTILISATEUR
Group=VOTRE_GROUPE_D_UTILISATEUR(souvent identique au nom d'utilisateur)
ExecStart=/home/domoticz/domoticz/domoticz -www 8080 -sslwww 443
WorkingDirectory=/home/domoticz
# Give the right to open priviliged ports. This allows you to run on a port <1024 16="" above="" below="" cap_net_bind_service="+ep" capabilityboundingset="CAP_NET_BIND_SERVICE" code="" domoticz="" execstartpre="setcap" group="" home="" line="" lts.="" next="" nstall="" older="" on="" permissions="" previously="" restart="on-failure" restartsec="1m" root="" setting="" so="" systems.="" tandardoutput="null" the="" this="" try="" ubuntu="" user="" wantedby="multi-user.target" was="" without="" working="" works="">

Activer et démarrer Domoticz

sudo systemctl daemon-reload
sudo systemctl enable domoticz.service
sudo systemctl start domoticz.service

Mise à jour de Domoticz

cd domoticz
sudo ./updaterelease

sources :https://www.domoticz.com/wiki/Linux
https://www.domoticz.com/wiki/Linux#Allow_non-root_user_to_access_ttyUSB.2A_ports
https://www.domoticz.com/wiki/Raspberry_Pi_-_Build_Domoticz_from_source#Raspberry_Pi_-_Build_Domoticz_from_source

Articles qui peuvent vous intéresser

Publié le 17/03/2018

Domotique, Raspberry Pi

Démarrer un PC à distance avec Domoticz

Paramétrer le Wake On Lan d'un PC sous Domoticz

Il est possible de démarrer un PC à distance, à travers le réseau local, grâce au Wake On Lan.
Nous allons voir comment intégrer cette fonction sur un serveur domotique basé sur Domoticz.

Lire la suite...
Publié le 21/04/2021

Raspberry Pi

Utiliser les fonctions avancées de Raspberry Pi imager

Raspberry Pi imager propose désormais des fonctions avancée afin de personnaliser immédiatement l'installation de Raspberry Pi os.

Outre un gain de temps, il s'agit d'une interface des plus simple et ergonomique mais...,
Elle n'est pas directement accessible.

Mais rassurez-vous il ne s'agit que d'utiliser un raccourci clavier.


Lire la suite...
Publié le 29/03/2018

Domotique, Raspberry Pi

Debian – Attribuer un alias aux périphériques USB

Attribuer une adresse fixe et personnalisée aux périphériques USB afin d'en faciliter l'usage sous Domoticz

Debian attribue aux clés USB une adresse de type « /dev/ttyUSB0 » ou « /dev/ttyUSB1 ».
Hors ces adresses ne sont pas stables et peuvent changer suite à un redémarrage, surtout si on a ajouté ou déplacé des périphériques USB. Et puis, ce n’est pas très parlant… Qui est qui?
Pour éviter cela, il est possible d’ajouter un alias aux clés qui se comportera comme une adresse fixe et pourra être personnalisé.

Cette exemple attribue des adresses fixes à un Aeon Lab ZStick S2 et un Téléinfo USB.


Lire la suite...
En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies à des fins de mesure d'audience. Fermer