Lien Domoticz-Alexa : ha-bridge
2021-08-14ha-bridge est un logiciel qui simule sur votre ordinateur un pont zigbee Philips Hue.
installation de ha-bridge
On va installer avec l’utilisateur domotiko précédemment créé.
pré-requis :
- l’utilisateur domotiko doit exister.
- java >=8 doit être installé.
sudo su - domotiko
mkdir ha-bridge
cd ha-bridge
wget https://github.com/bwssytems/ha-bridge/releases/download/v5.4.1RC1/ha-bridge-5.4.1RC1.jar -O ha-bridge.jar
exit
création du service :
Par défaut ha-bridge écoute sur le port 80, déjà utilisé par apache, on va le faire écouter sur le port 8082 pour réduire les risques de conflit.
sudo bash
cat > /etc/systemd/system/ha-bridge.service <<!
[Unit]
Description=HA Bridge
Wants=network.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/domotiko/ha-bridge
ExecStart=/usr/bin/java -jar -Dserver.port=8082 -Dconfig.file=/home/domotiko/ha-bridge/data/habridge.config /home/domotiko/ha-bridge/ha-bridge.jar
User=domotiko
RuntimeDirectory=domotiko
LogsDirectory=domotiko
Restart=on-abort
PIDFile=/var/run/domotiko/ha-bridge.pid
[Install]
WantedBy=multi-user.target
!
sudo systemctl daemon-reload
sudo systemctl start ha-bridge.service
sudo systemctl enable ha-bridge.service
ha-bridge est maintenant accessible sur : http://adresse_du_pi:8082/
facultatif mais conseillé : configurez un utilisateur.
se connecter sur l’interface : http://adresse_du_pi:8082 onglet bridge control : Cliquez sur «Update Security Settings»
configurer apache pour relayer le port 80 vers le port 8082
Google Home et Alexa exigent que le pont réponde sur le port 80. On va utiliser les fonctions de proxy d’ apache pour rediriger les urls concernant ha-bridge vers le port 8082.
On active les modules nécessaires et on lance l’éditeur nano pour modifier la configuration du site par défaut :
sudo a2enmod proxy proxy_http headers
sudo nano /etc/apache2/sites-enabled/000-default.conf
Dans l’éditeur, il faut maintenant ajouter les lignes ci-dessous aprés la ligne ‘<VirtualHost *:80>’ :
ProxyPass /api http://localhost:8082/api nocanon
ProxyPassReverse /api http://localhost:8082/api
ProxyRequests Off
AllowEncodedSlashes NoDecode
# Local reverse proxy authorization override
# Most unix distribution deny proxy by default (ie /etc/apache2/mods-enabled/proxy.conf in Ubuntu)
<Proxy http://localhost:8082/api*>
Order deny,allow
Allow from all
</Proxy>
sauver le fichier avec Ctrl-X
On active apache, et on le relance :
sudo systemctl enable apache2
sudo systemctl stop apache2
sudo systemctl start apache2
Vous pouvez maintenant configurer le lien Alexa-Domoticz : voir l’article Amazon Alexa
Note :
Après migration du pi vers bullseye, apache ne démarrait pas au démarrage. Erreurs :
Sep 23 17:45:24 localhost apachectl[500]: (99)Cannot assign requested address: AH00072: make_sock: could not bind to address 192.168.24.103:80
Sep 23 17:45:24 localhost apachectl[500]: no listening sockets available, shutting down
Sep 23 17:45:24 localhost apachectl[500]: AH00015: Unable to open logs
Sep 23 17:45:24 localhost apachectl[449]: Action 'start' failed.
Sep 23 17:45:24 localhost apachectl[449]: The Apache error log may have more information.
un lancement manuel avec sudo systemctl start apache2
marchait sans problème.
Pour contourner le problème, j’ai rajouté dans /lib/systemd/system/apache2.service dans la section «[Service]» les lignes :
Restart=on-failure
RestartSec=10
Maintenant le premier démarrage d’ apache échoue, mais une deuxième tentative réussit automatiquement 10 secondes plus tard.