Ceci fait partie d'une série d'articles sur l'installation d'un système domotique sur un Raspberry Pi. Il couvre l'installation des principaux services de domotique :
- Domoticz une application domotique qui est le coeur du système
- Eclipse mosquitto un courtier MQTT utilisé pour la communication entre Domoticz et les appareils IdO
- HA Bridge un service qui permet le contrôle vocal local des appareils IdO avec les haut-parleurs intelligents Dot Echo
- NGINX un serveur Web utilisé pour télécharger un nouveau micrologiciel sur les appareils IdO
Je recommande de regarder la vidéo d'Andreas Spiess, Pi Server based on Docker, with VPN remote access, Dropbox backup, Influx, Grafana, etc. sur YouTube. Bien que l'intention soit assez similaire, l'approche est assez différente en s'appuyant sur Docker qui est encore un autre niveau d'abstraction.
Table des matière
- Présentation du système domotique
- Installation de Domoticz
- Installation de mosquitto un serveur MQTT
- Installation de NGINX un serveur Web
- Installation de HA Bridge un pont entre Domoticz et Alexa
- Configuration du système domotique
- Suite ...
Présentation du système domotique
Il est probablement préférable de commencer avec une description du système domotique qui a été lentement construit au cours des huit dernières années depuis l'emménagement dans notre maison actuelle. Le schéma suivant est une représentation simplifiée du système.
Certains appareils « électrodomostique » tel les robots aspirateurs capables de faire une besogne de façon indépendante tout en s'adaptant aux changements dans leur environnement font parti de la domotique. Cependant, cette indépendance les garde à la marge de ce qui constitue un système domotique à mon avis. La plupart des modules domotiques sont soit des capteurs, soit des actionneurs qu'on peut qualifier de dispositifs plutôt rudimentaires dont on ne peut pleinement bénéficier qu'avec un contrôle dit intelligent. Les capteurs échantillonnent certains aspects de l'environnement tels que la température, le niveau d'humidité, le niveau de lumière ou la présence de quelqu'un, et ainsi de suite. Le plus souvent, ils ne font rien avec les données captées à part de les transmettre. Les actionneurs ne sont pour la plupart que des interrupteurs sur lesquels peuvent être branchés ampoules, téléviseurs, portes de garage ou systèmes d'irrigation ou des variateurs qui peuvent moduler l'intensité des ampoules ou peuvent ajuster des stores ou rideaux. Encore faut-il que ces actionneurs soient eux-mêmes activés. Cela signifie qu'il doit y avoir un échange de messages qui à son tour nécessite un mécanisme de transport de données et un protocole de communication. Comme on peut le voir, notre système domotique est greffé au réseau local sans fil (Wi-Fi) qui était déjà utilisé à d'autres fins.
Après avoir choisi le type de capteurs et d'actionneurs et la technologie sans fil à utiliser, j'ai dû choisir le logiciel domotique et la plate-forme matérielle sur laquelle l'exécuter. J'ai choisi Domoticz sur un Raspberry Pi. Domoticz n'a pas la popularité de Home Assistant, mais c'est une application très puissante tout en étant peu exigeante en termes de ressources informatiques. De plus elle est compatible avec Linux, Windows etmacOS, bien que l'installation sur un Mac puisse nécessiter plus d'efforts. Je l'ai installée sans problème sur de nombreux ordinateurs monocarte tels qu'un Raspberry Pi 1 à un seul cœur, un Orange Pi Zero et un La Frite AML-S805X-AC. Tel que décrit dans ce guide Domoticz roule sur un Raspberry Pi 3 B avec quatre cœurs exécutant la dernière version de Raspberrry Pi OS Lite.
Il me plait de prétendre que mon passe-temps a amélioré certaines choses dans la maison. Avant, pour allumer les lumières extérieures lorsque les invités partaient dans l'obscurité, deux interrupteurs à plusieurs mètres l'un de l'autre devaient être activés. Désormais, lorsque les lumières du balcon sont allumées ou éteintes, les lumières extérieures du garage qui éclairent l'allée sont simultanément éteintes ou allumées. Il est très pratique que la porte du garage se ferme automatiquement au bout de quelques minutes si l'un de nous oublie de le faire en partant. Cependant, il y a eu une certaine résistance en ce qui concerne certains autres appareils. L'interrupteur d'éclairage de la cuisine était beaucoup trop éloigné du plan de travail. Mais personne, y compris moi, ne voulait lancer Domoticz sur une tablette ou un téléphone intelligent, et enfin cliquez sur l'interrupteur virtuel de la cuisine pour contrôler le plafonnier. Il était plus rapide de marcher jusqu'à l'autre bout de la cuisine pour activer l'interrupteur. La commande vocale a changé tout cela. Maintenant, tous sont à l'aise avec les commandes orales données à "celle qui ne doit pas être nommée" pour allumer ou éteindre les lumières, ou pour régler leur intensité. Des scènes Domoticz pour allumer temporairement les lumières alors que nous nous rendons de la salle de télévision au sous-sol à la chambre à l'étage sont activées avec des commandes vocales tous les soirs. On ne peut pas surestimer l'augmentation de l'acceptabilité du système domotique attribuable à l'utilisation des haut-parleurs intelligents.
Notre système domotique est assujetti a une contrainte auto-imposée. L'idéal est qu'il soit local et indépendant, mais de toute évidence, les haut-parleurs intelligents enfreignent cette règle. Ils introduisent des risques qui ne sont pas négligeables. En plus des dernières mises à jour mentionnées dans l'encadré précédent, notre expérience a montré que les tempêtes hivernales qui coupent l'électricité dans une vaste zone géographique pendant plus d'un jour ou deux s'accompagnent souvent de périodes plus longues sans service Internet. Cela se produit tous les deux ou trois ans, il semble que la fréquence ne puisse qu'augmenter. J'ai adopté des stratagèmes pour atténuer les problèmes. Une ancienne télécommande sans fil X10 à 16 boutons est toujours disponible à cet effet. Une autre télécommande infrarouge a été ajoutée à côté du téléviseur au grand dam de ma conjointe. Le Bouton intelligent, qu'on peut voir dans le schéma du system domotique, pourrait être une meilleure solution. Jusqu'à présent le prototype sur platine d'expérimentation situé près de mon clavier fonctionne très bien. Soit dit en passant, cet appareil repose entièrement sur MQTT pour communiquer avec le système domotique. L'espoir est qu'il devienne quelque chose d'encore plus pratique, lorsque ces boutons remplaceront avantageusement sept Sonoff Basic assurant le contrôle local de huit lampes ainsi que le contrôle à distance d'autres appareils, notamment des scènes et des groupes, mis en place dans Domoticz.
Installation de Domoticz
Avant toute chose, j'aimerais de nouveau exprimer toute ma gratitude à l' équipe de développement de Domoticz ainsi qu'à la communauté.
Avant d'installer un programme majeur, c'est toujours une bonne idée de mettre à niveau le système si cela n'a pas été fait récemment.
Même si Raspberry Pi OS avait été installé et mis à niveau quelques semaines auparavant, cette opération a pris quelques minutes et pas moins de 20 paquets ont été modifiés. Bien sûr, ce qui sera fait sur un autre Pi dépendra des paquets installés sur la machine et du temps écoulé depuis la dernière mise à niveau.
L'installation de Domoticz est vraiment simple en suivant les instructions de la méthode «facile». Il s'agit d'une commande d'une ligne qui téléchargera un script d'installation et qui le dirigera l'interpréteur de ligne de commande bash
.
Il faut répondre à quelques questions au sujet des ports TCP et répertoires à utiliser. On peut accepter les valeurs suggérées ce qui a été fait ici. À la fin le message suivant récapitulant les choix faits est affiché.
Le script d'installation nécessite des privilèges administratifs. C'est le genre de chose qu'on ne devrait pas accorder à n'importe qui. Par prudence, on devrait télécharger le script, l'examiner, puis l'exécuter seulement si une vérification méticuleuse confirme qu'il ne fait rien de néfaste.
less
?
Montrer
Si l'inspection du script ne révèle rien de dangereux, alors ce dernier peut être exécuté pour procéder à l'installation.
Le script d'installation vérifiera si de nombreux paquets sont disponibles et si non les installera.
- apt-utils
- whiptail
- git
- curl
- unzip
- wget
- sudo
- cron
- libudev-dev
- libsqlite3-0
- libcurl4
- libusb-0.1
Si en proie à la paranoïa, alors il faut compiler Domoticz depuis le code source qu'on aura soigneusement contrôlé. Il semble que de simples mortels patients et en possession d'assez de temps libre arrivent à en faire autant, mais je n'ai jamais entrepris cette tâche et je ne peux pas commenter sa difficulté.
Peu importe comment il a été installé, le service doit être en cours d'exécution. Cela se vérifie facilement.
Si l'erreur suivante
à propos d'une bibliothèque Python manquante est affichée, alors installez le paquet python3-dev
. Ce paquet aurait été installé si un environnement Python virtuel avait été créé tel qu'expliqué dans la première partie de ce guide. Voir Environnements virtuels Python dans Configuration d'un Raspberry Pi en tant qu'ordinateur sans tête (septembre 2021).
Comme vérification finale, lancez un navigateur et accédez à l'adresse indiquée. Le système domotique affichera la page suivante.
Bien sûr, il n'y aura pas d'interrupteurs, de scènes, de capteurs de température, etc. Le moment venu, je copierai la base de données, divers scripts bash, python, etc. du serveur Domoticz qui exécute actuellement mon système domotique, puis restaurerai la base de données sur ce nouveau serveur. Je l'ai fait plusieurs fois dans le passé et cela a fonctionné parfaitement.
Fichier unitaire pour démarrer et arrêter Domoticz
En 2019 J'ai choisi d'utiliser un fichier unité de systemd
pour démarrer et arrêter domoticz.service
au lieu du script domoticz.sh
installé dans etc/init.d
, car il y avait un problème en absence d'une horloge en temps réel (RTC) (ou dans mon cas, lorsque sa pile est morte). Ce problème ne se produit plus dans la version 2021.1 (build 8547c5b7e datée du 2021-04-17 12:29:11) de Domoticz. Néanmoins, la page sur Linux dans le Wiki de Domoticz recommande d'utiliser un fichier d'unité lorsque le service est exécuté sur des distributions Linux avec systemd
comme programme d'initialisation. Si vous ne souhaitiez pas éviter les anciens scripts init
pour contrôler les services, passez à la sous-section suivante.
La première étape consiste à créer le fichier unité avec nano
ou un éditeur de votre choix. Notez que ce fichier est dans un répertoire qui appartient à root
d'où le recours à sudo
.
Voici un exemple de fichier unité. La condition After=time-sync.target
garantit que le service n'est installé qu'une fois l'heure système synchronisée. Le paramètre AmbientCapabilities=CAP_NET_BIND_SERVICE
est nécessaire si un port TCP inférieur à 1024 est spécifié, ce qui est le cas ci-dessous où le port 443 sera utilisé pour les connexions HTTP sécurisées. Si une ancienne version de Raspbian est utilisée, ce paramètre doit être modifié, voir le Wiki pour les détails.
Bien entendu, le nom d'utilisateur nostra
, qui apparaît trois fois, doit être ajusté.
Maintenant, arrêtez Domoticz s'il est en cours d'exécution et supprimez l'ancien script domoticz.sh en le sauvegardant sous un autre nom en cas de problème. Rechargez tous les fichiers unité des services (démon), démarrez le service Domoticz et vérifiez son statut pour vous assurer que tout est correct.
La commande suivante assure l'activation automatique du service à chaque démarrage du Pi.
On exécute la commande, qui crée un lien symbolique vers le fichier d'unité nouvellement créé, qu'une seule fois.
Si le Pi a été hors tension pendant plus de 10 minutes environ, il ne faut pas s'en faire si le service domoticz
ne semble pas fonctionner au démarrage. Il continuera à répéter sa routine de démarrage jusqu'à ce que l'heure soit correctement synchronisée. Cela fonctionne que l'injonction d'attendre la synchronisation de l'heure avec un serveur SMTP soit en place ou non. En d'autres termes, la ligne du fichier unité affichée en rouge, qui était un ajout important en 2019, n'est plus nécessaire.
Chien de garde
Étant donné que la domotique est la tâche principale à effectuer par le système, il est logique d'ajouter un chien de garde qui redémarre le système si le logiciel domotique cesse de fonctionner correctement. J'en ai déjà parlé dans un billet intitulé Chien de garde pour le Raspberry Pi et Domoticz où l'on trouver plus de détails.
La première étape consiste à créer un script Lua que Domoticz exécutera chaque minute. Il ne fait que mettre à jour l'horodatage d'un fichier nommé à /tmp/domoticz.alive
.
Dès que le fichier Lua est créé et pour autant son nom commence avec script_time
et et qu'il se termine avec l'extension .lua
, Domoticz se charge de l'exécuter. Vérifiez régulièrement l'heure du fichier pour vous assurer qu'elle est mise à jour toutes les minutes.
Installez maintenant le paquet watchdog
.
Le fichier de configuration du chien de garde doit être modifié. Comme d'habitude, l'éditeur nano
a été utilisé à cette fin.
Autant que je sache, la valeur du délai d'attente doit être de 15 secondes, car la valeur par défaut de 60 secondes ne fonctionne pas.
Démarrez le service de surveillance, puis attendez plus de cinq minutes (300 secondes) pour vous assurer que le système n'est pas redémarré par le chien de garde. Arrêtez ensuite le service domoticz
et le chien de garde devrait redémarrer le Raspberry Pi dans environ cinq minutes.
Comme le montre cet exemple, il sera nécessaire d'arrêter le chien de garde (sudo systemctl stop watchdog.service) si Domoticz est suspendu pendant un certain temps, sinon le Raspberry Pi redémarrera.
Installation de mosquitto un serveur MQTT
Un serveur MQTT est une partie nécessaire de mon système domotique. Il agit comme le relais entre le service domoticz
et les appareils IdO. La plupart de ces derniers sont des appareils ESP828x dont le micrologiciel est Tasmota de Theo Arends. Le paquet mosquitto
est disponible dans le référentiel Rasperry Pi OS , comme on peut le voir ici.
La dernière version de Eclipse Mosquitto est 2.0.12, mais la version 1.5.7 est assez récente et il est beaucoup plus facile d'installer mosquitto
à partir du référentiel que d'essayer de l'installer à partir de la source ou d'un autre référentiel. De plus, [version 2.0]... est un grand changement avec des ruptures de comportement du serveur, donc s'il est installé, préparez-vous à modifier la configuration pour le faire fonctionner avec Domoticz (voir Mosquitto MQTT broker v2.0.0 dans le forum Domoticz forum). Une installation de l'ancien serveur et des utilitaires optionnels (pour obtenir mosquitto_sub
et mosquitto_pub
) peut être effectuée sans problème.
On peut constater que le courtier fonctionne automatiquement après l'installation.
Pour m'assurer que tout était bien installé, je me suis abonné à tous les sujets dans un terminal sur le Raspberry Pi.
Ensuite, j'ai envoyé un message au courtier depuis un terminal sur mon ordinateur de bureau.
Si mosquitto
n'est pas installé sur l'ordinateur de bureau, le message pourrait être publié à partir d'un deuxième terminal sur le Raspberry Pi.
Dans les deux cas, le message devrait apparaître dans le premier terminal sur le Raspberry Pi.
Au lieu de surveiller les échanges avec les utilitaires mosquitto
, un client de type chat qui peut publier ainsi que s'abonner à plusieurs messages pourrait être utilisé. Alors que, sans vergogne, j'allais faire l'éloge mon propre lazmqttc quf fonctionne sous Linux, Windows 10 et peut-être macOS avec un peu d'effort, je suis tombé sur MQTT X qui semble être bon. Je vais devoir essayer ce programme.
Installation de NGINX un serveur Web
Le serveur Web autonome sur le Raspberry Pi n'est pas très occupé, car les deux services les plus utilisés, Domoticz et HA Bridge, exécutent leur propre serveur Web. La seule tâche du serveur Web autonome est le téléversement de mise à jour du micrologiciel que j'ai écrit pour trois dispositifs IdO. Pour ce qui est autres appareils, ils fonctionnent avec Tasmota et je préfère télécharger les mises à niveau de ce micrologiciel depuis mon ordinateur de bureau.
Alors qu'Apache est supposément le serveur Web « le plus populaire », j'ai plus d'expérience avec les serveurs libre LIGHTTPD et NGINX Open Source sur de petits ordinateurs monocartes. Ils sont réputés être plus légers et plus que suffisants compte tenu des exigences minimales. Dans cette section, je vais montrer comment installer et configurer nginx
, mais il ne fait aucun doute que quelque chose de similaire pourrait être fait avec LIGHTTPD (voir ici) et Apache.
L'installation de la version la plus légère de NGINX dans le référentiel Raspberry Pi OS est très simple. Mais avant de faire cela, je recommande une nouvelle fois de mettre à niveau le système si cela n'a pas été fait récemment.
Étant donné que le port HTTP par défaut du serveur Web intégré démarré par HA Bridge est 80 et que nginx
utilise le même port par défaut, il est préférable d'installer le serveur Web avant d'installer HA Bridge. Si le pont HA est déjà installé, suspendez-le jusqu'à ce que le port HTTP par défaut utilisé par nginx
soit modifié.
L'ouverture de la page dans un navigateur Web a permis de vérifier que le serveur fonctionne.
Bien sûr, il peut être nécessaire d'utiliser l'adresse IP du Raspberry Pi sous certains systèmes d'exploitation.
Quel que soit le serveur Web installé, il sera très utile de changer le propriétaire du répertoire Web.
De cette façon, l'utilisateur par défaut (nostra
dans ce cas) pourra ajouter, supprimer et éditer n'importe quel fichier du répertoire /var/www
ou des sous-répertoires qui y seront créés.
Certains peuvent se demander pourquoi nostra
n'est pas membre du groupe www-data
. Citant jojopi
, il semble y avoir une fausse idée commune selon laquelle tout ce qui concerne le Web devrait appartenir à www-data. En fait, c'est tout le contraire. Lisez la réponse complète et convaincante dans le forum Raspberry : Re: /var/www/html permissions.
J'ai ensuite créé un répertoire contenant le micrologiciel Tasmota à télécharger sur divers dispositifs IdO utilisant le ESP8266 lorsque nécessaire.
Bien que cela ne soit pas du tout nécessaire, j'ai décidé de créer une page d'erreur 404 personnalisée. Cette page s'affichera lorsqu'une URL renvoie vers un fichier inexistant.
Difficile de faire plus simple et de plus cette page n'exige aucune traduction.
Ensuite, j'ai créé une page d'erreur 403 similaire. Elle sera affichée lorsqu'une URL pointe non pas vers un fichier, mais plutôt vers un sous-répertoire dans /var/www/html
ne contenant pas de fichier index.html
index.html ou l'équivalent. Sans cette précaution, le contenu du sous-répertoire pourrait être répertorié comme une page Web. Encore une fois, ce n'est pas du tout nécessaire dans ce contexte, mais je suggérerais de le faire avec n'importe quel site Web accessible de l'extérieur.
Deux entrées doivent être ajoutées au fichier de configuration du serveur Web pour afficher ces pages si nécessaire. Voici les détails.
Ajoutez les entrées vers la fin du block HTTP
.
Bien que HA Bridge, qui est le prochain serveur à installer, roule très bien une fois configuré, il peut être difficile de le faire fonctionner au début. Pour cette raison, je préfère de loin ne pas changer le port TCP par défaut de son interface Web. Par conséquent, NGINX doit écouter un port TCP autre que 80. Comme d'habitude, cela implique une petite modification d'un fichier de configuration.
Changer le port 80 au début du fichier.
J'ai choisi 8888 (rappelez-vous que Domoticz utilise 8080 par défaut).
Redémarrez le serveur pour que cela prenne effet.
Installation de HA Bridge un pont entre Domoticz et Alexa
Comme indiqué ci-dessus, HA Bridge est un pont qui présente de nombreux dispositifs, scènes et groupes virtuels dans Domoticz en tant qu'appareils matériels que les haut-parleurs intelligents Amazon Dot peuvent contrôler localement. Auparavant, ce pont entre Alexa et Domoticz était géré par un autre ordinateur monocarte, mais le Raspberry Pi 3 est tout à fait capable de le gérer avec tous les autres services mentionnés dans cette série d'articles.
Étant donné que HA Bridge est un script Java, la première étape consiste à installer l'environnement d'exécution Java.
Installation de l'environnement d'exécution Java
Le référentiel Raspberry Pi OS contient de nombreux paquets Java. Il y a d'abord deux versions : OpenJDK et Oracle Java (rappelez-vous que Sun a cédé Java à Oracle). À moins d'un besoin particulier, il est préférable d'éviter la version Oracle en raison de sa licence plus restrictive. Même en ne regardant que la version "gratuite" OpenJDK, pas moins de huit paquets sont disponibles.
Environnement de développement | Environnement d'exécution | Version |
---|---|---|
openjdk-8-jdk | openjdk-8-jre | 8u212-b01-1+rpi1 |
openjdk-9-jdk | openjdk-9-jre | 9.0.4+12-4 |
openjdk-10-jdk | openjdk-10-jre | 10.0.2+13-2 |
openjdk-11-jdk | openjdk-11-jre | 11.0.12+7-2~deb10u1 |
Le suffixe jdk
identifie le l'environnement de développement Java tandis que jre
est l'environnement d'exécution Java. Le JDK contient le JRE et d'autres composants nécessaires pour créer des applications Java (en savoir plus sur la différence voir ici). J'ai décidé d'installer la version d'exécution la plus légère, openjdk-8-jre
. Vraisemblablement, si HA Bridge fonctionne dans cet environnement, il fonctionnera dans n'importe lequel des autres. Comme d'habitude, l'installation d'un paquet à partir du référentiel est simple.
Installion du script ha-bridge
Puisque Ha Bridge est un script Java, l'installation n'est pas trop compliquée.
- Créez un répertoire pour contenir le script.
- Copiez le script dans le répertoire.
- Configurez un lien symbolique vers le script.
Assurez vous de télécharger la dernière version du script. Il devrait être disponible dans la page des versions releases page du compte github du projet. Comme on peut le voir, j'utilise une version bêta de la prochaine version 5.4.1. Elle ajoute la possibilité d'attribuer des numéros d'identification de 9 octets aux appareils Hue virtuels présentés à Alexa. Avec la dernière mise à jour du firmware de l'Echo Dot, c'était un ajout nécessaire, sinon les appareils ne sont pas découverts par Alexa.
Le lien symbolique n'est pas obligatoire, mais il facilitera la mise à jour du script sans avoir à changer le fichier unité utilisé pour intégrer le script dans la séquence de démarrage de systemd
. Créez le fichier unité avec un éditeur. Comme d'habitude j'utilise nano
.
N'oubliez pas de modifier le nom d'utilisateur, qui dans mon cas était nostra
. Il apparaît trois fois dans le fichier unité.
Il ne reste plus qu'à démarrer le service.
Il devrait maintenant être possible de se connecter à l'interface Web.
Et, bien sûr, le pont ne contient aucun dispositif.
Configuration du système domotique
Tous les services essentiels pour un système domotique similaire au nôtre sont en place, mais jusqu'à présent, le système n'est qu'une coquille vide. Notre système domotique a été construit au cours de plusieurs mois et il n'y a aucun moyen pratique de le décrire en détail ici. Au lieu de cela, je décrirai l'installation d'un interrupteur virtuel dans Domoticz, qui est la première étape de l'ajout d'un dispositif IdO avec le micrologiciel Tasmota au système. Dans la sous-section suivante, le capteur virtuel Domoticz est ajouté à la liste des appareils émulés dans HA Bridge, ce qui est la première étape de l'ajout d'un appareil de la Maison connectée
dans un compte Alexa.
Ajout d'un interrupteur virtuel dans Domoticz
J'ai décomposé le processus d'installation du premier interrupteur virtuel dans Domoticz, en 20 étapes (21 si l'on veut l'interface en français). Heureusement, toutes sauf les deux dernières sont des démarches ponctuelles à ne faire qu'une seule fois puisqu'il faut définir les coordonnées du serveur et installer le « matériel » de support : MQTT
et Dummy
initialement. Les coordonnées géographiques sont utilisées pour calculer les heures de lever et de coucher du soleil. MQTT
est nécessaire pour communiquer avec les appareils IdO et le matériel factice (Dummy
) est un support générique pour les capteurs virtuels, qui peuvent être entre autres des interrepteurs.
La plupart des tâches administratives dans Domoticz se font dans son interface web. Comme déjà vu, son URL est http://damus.local:8080
ou http://192.168.1.139:8080
(ou quelle que soit l'adresse IP statique attribuée au Raspberry Pi).
- Définir les coordonnées géographiques du serveur domotique
- Cliquez sur Setup.
- Cliquez sur Settings.
- Cliquez sur l'onglet System (en fait, cet onglet sera probablement déjà activé).
- Saisissez
Domoticz
ou autre titre approprié dans le champName
sous la rubriqueLocation
. - Saisissez les coordonnées du serveur dans les champs
Latitude
etLongitude
. N'oubliez pas qu'une latitude nord est positive, une longitude sud est négative, une longitude est positive et une longitude ouest est négative. - Pour modifier la langue de l'interface Web (optionel), sélectionnez
French
dans la liste déroulanteLanguage
sous la rubriqueUser Interface
. - Cliquez sur Apply Settings.
- Activer MQTT
- Cliquez sur Configuration [Setup].
- Cliquez sur Matériel [Hardware].
- Saisissez
MQTT
ou quelque chose d'autre d'approprié dans le champNom
[Name]. - Sélectionnez
MQTT Client Gateway with LAN interface
dans la liste déroulanteType
. - Saisissez l'adresse IP
127.0.0.1
(qui correspond àlocalhost
puis que le serveur MQTT est sur le même ordinateur) dans le champAdresse distante
[Remote Address]. - Saisissez
1883
dans le champPort
. Évidemment, il faudra ajuster si le serveur MQTT utilise un autre port. - Assurez-vous que le champ
Publish Topic
est défini surFlat
. - Faites défiler vers le bas et cliquez sur le bouton [Add]. La passerelle client MQTT devrait maintenant apparaître dans le tableau supérieur.
- Ajouter le matériel factice
Dummy
pour contenir tous les capteurs virtuels- Saisissez
Virtuel
ou quelque chose d'autre d'approprié dans le champNom
[Name]. - >Sélectionnez
Dummy (Does nothing, use for virtual switches only)
dans la liste déroulanteType
. - Cliquez sur le bouton
Le matérielDummy
devrait alors est visible dans la table supérieure au dessus de la passerelle MQTT.
[Add] au bas de l'écran.
- Saisissez
- Ajouter un interrupteur virtuel
- Cliquez sur
Dummy (Does notning, use for virtual switches only)
du tableau du matériel.
[Create Virtual Sensors] dans l'enregistrement - Dans la fenêtre contextuelle Create Virtual Sensor
- Saissisez un nom tel que
Test
ou quelque chose d'autre approprié dans le chamNom
[Name]. - Selectionnez
Interrupteur
[Switch] dans la liste déroulanteType de capteur
[Sensor Type]. - Cliquez sur le bouton OK.
- Saissisez un nom tel que
- Cliquez sur
Dorénavant, on supposera que le français a été choisi. Les termes anglais seront indiqués entre crochets.
Voilà, maintenant la base de données de Domoticz contient un dispositif virtuel nommé Test
de type interrupteur qui peut être vu dans l'onglet nommé Interrupteurs [Switches].
N'oubliez pas que ces deux dernières étapes doivent être répétées pour chaque interrupteur ou capteur virtuel supplémentaire à ajouter. Encore une fois, cela se fait dans la page Configuration / Matériel [Setup / Hardware].
Configuration du micrologiciel Tasmota
Juste pour vérifier que tout fonctionne, l'interrupteur virtuel Domoticz nouvellement créé est relié à une fiche intelligente de CE Smart Home modèle LA-WF3 dont le micrologiciel est Tasmota 9.1.0. Elle a été utilisée auparavant alors elle peut déjà se brancher au Wi-Fi local. Il reste à établir le lien entre la fiche et le dispositif virtuel nouvellement créé dans la nouvelle instance de Domoticz. Ce lien est le protocole MQTT qui sert de moyen de communication entre les deux logiciels et un numéro d'identité unique, nommé
Idx
, affecté à l'interrupteur virtuel dans Domoticz. Cet Idx
peut être trouvé dans le tableau des dispositifs de l'interface web:Configuration / Dispostifs [Setup / Devices].
Au minimum il faut donc modifier l'adresse du serveur MQTT, et le numéro d'identité Domoticz dans Tasmota. Je voudrais auss modifier l'adresse du serveur Syslog, le niveau de journalisation et les divers noms de l'appareil. Les paramètres peuvent être modifiés un par un dans divers menus de l' écran de configuration de l'interface Web de Tasmota. Cela devient très vite fastidieux et sujet aux erreurs souvent en oubliant de définir quelque chose. Je préfère utiliser la qui permet de saisir une seule chaîne contenant de multiples commandes, en exploitant la fonction Backlog
.
Backlog
donc je suis retourné à la console pour capturer l'écran après coup. Lors de la saisie de la commande Backlog
, n'oubliez pas le point-virgule de fin. Sans lui la dernière partie, qui dans ce cas précise fixe le numéro d'index de l'appareil dans Domoticz, ne sera pas exécutée.
damus.local
a été utilisé à la fois pour l'adresse du courtier MQTT (paramètre mqtthost
) et l'hôte Syslog (paramètre loghost
). L'adresse IP statique du Pi aurait pu être utilisée à la place. D'ailleurs, je suggérerais de le faire, car je ne suis pas certain que ce mDNS soit pris en charge dans les versions plus récentes de Domoticz. Je sais qu'après la version 9.1.0, Tasmota ne publie plus le service son interface Web sur mDNS.Pour tester cette configuration, il est probablement plus facile de brancher une lumière dans la fiche murale à ce stade. Basculez l'état de l'interrupteur virtuel en cliquant sur l'icône d'ampoule dans l'interface Web.
Assurez-vous que la fiche murale physique (c'est-à-dire la lumière) suit l'état de l'interrupteur virtuel. Essayez ensuite dans l'autre sens. Allumez et éteignez la lumière à l'aide de l'interrupteur de la fiche murale (pas l'interrupteur d'éclairage s'il y en a un) et vérifiez que l'état du périphérique virtuel est mis à jour. Sachez que la mise à jour peut prendre un peu de temps. Les impatients peuvent rafraîchir la page web; F5 fonctionne dans de nombreux navigateurs Web.
Configuration du pont HA Bridge
La première partie de la procédure suivante ne doit être effectuée qu'une seule fois. Elle définit le nom d'hôte ou l'adresse IP du serveur sur lequel s'exécute Domoticz. Il n'est pas nécessaire que Ha Bridge soit exécuté sur le même ordinateur que le reste du système domotique, d'ailleurs, j'ai déjà décrit son installation sur un ordinateur monocarte différent dans HA Bridge on Armbian Working with Domoticz and Alexa.
La deuxième partie de la procédure ajoute tous les appareils virtuels de Domoticz pouvant être présentés comme des ampoules Hue à la base de données des appareils émulés par HA Bridge. En pratique, tous les dispositifs virtuels dans Domoticz ne seront pas ajoutés, seulement ceux où il est judicieux d'utiliser des commandes vocales.
- Connexion avec Domoticz
- Cliquez sur
- Faites défiler vers le bas jusqu'à
Domoticz Names and IP Addresses
- Saisissez le nom souhaité pour le serveur Domoticz
- Saisissez l'adresse IP du serveur. Elle peut être l'adresse statique du Raspberry Pi ou
127.0.0.1
puisque les servicesdomoticz
etha-bridge
fonctionnent sur la même machine. - Cliquez sur le bouton Add.
- Faites défiler vers le haut et cliquez sur le bouton Save et attendez que le pont se réinitialise. Un message s'affiche à propos de cette opération et une fois le pont initialisé,
un nouveau choix,
Domoticz Devices
, s'affiche entreLogs
andAdd/Edit
.
Il peut être nécessaire d'actualiser la page Web (F5) pour voir ce nouveau choix.
- Cliquez sur
- Ajouter un interrupteur virtuel Domoticz
- Cliquez sur l'onglet Domoticz sera visible.
Le bouton Bulk Add affiché sous la liste peut être utilisé pour ajouter en bloc tous les dispositifs sélectionnés de façon étonnamment facile et efficace. Puisqu'il n'y a qu'un seul dispositif, cette fonctionnalité ne sera pas examinée ici.
. L'unique dispositif virtuel dans la base de données de - Cliquez sur le bouton Build Item.
Défilez vers le bas dans l' onglet Domoticz pour allumer et éteindre la lumière lorsqu'il reçoit une commande de l'Echo Dot indiquant au pont virtuel Philip émulé par Ha Bridge pour allumer ou éteindre l'ampoule Philip Hue correspondante.
qui s'affichera pour voir les requêtes HTTP que le pont enverra à - Revenez en haut de la fenêtre et cliquez sur Update Bridge Device pour mettre à jour le périphérique du pont.
- Vérification
Il est possible de tester que les requêtes HTTP créées par le pont fonctionnent dans l' onglet
.Cliquez sur les boutons
et tout en regardant l'interrupteur virtuelTest
dans l'interface web de Domoticz. Bien entendu, la lumière connectée à la fiche murale doit également s'allumer et s'éteindre en conséquence. - Découverte par le Dot Echo
En théorie, cette étape ne devrait pas être compliquée. Vérifiez dans l'onglet
que l'adresse IP dans le champUPNP IP Address
est bien celui du Raspberry Pi sur lequel le service HA Bridge est installé. Ceci est généralement configuré correctement par le script lui-même. Ensuite, plus bas, assurez-vous que le champUnique ID to use 9 Octets
est défini surTrue
(c'est-à-dire qu'il est coché). Ce n'est pas la valeur par défaut. Ce nouveau champ a été ajouté dans cette toute dernière version du script et il semble indispensable avec les nouvelles versions d'Alexa.Ensuite il faut activer UPnP sur le réseau local. C'est souvent le cas pour ce qui est des routeurs résidentiels fournis par un FAI, bien que cela soit considéré comme un faille de sécurité. La raison en est que l'UPnP pourrait être exploité ouvrir des ports dans le pare-feu à l'insu de l'utilisateur. Est-ce que Skype fait encore ça? C'était le cas dans le passé. Pour cette raison, la capacité est désactivée dans mon routeur, ce qui signifie que je dois me souvenir de l'activer à nouveau chaque fois que je veux ajouter un appareil dans la liste des appareils connectée dans mon compte Alexa afin que les commandes vocales puissent être utilisées pour les contrôler. Puis je dois me rappeler de désactiver l'UPnP lorsque l'ajout d'appareils est terminé.
La dernière étape consiste à faire en sorte qu'un Dot Echo trouve tous les appareils de la maison. J'ai constaté qu'il est préférable de déconnecter tous les appareils Dot, à l'exception de celui qui effectuera la recherche. Tous les appareils Echo ne peuvent s'acquitter de la tâche, j'utilise un Dot Echo de 3ème génération. J'envoie généralement une commande vocale au haut-parleur lui disant de « Alexa, cherche les appareils ». Si la liste des appareils connectés dans le compte Alexa est vide, cela fonctionnera généralement assez bien.
Je n'ai jamais pu ajouter un nouvel appareil à la liste d'appareils connectés de la
Maison connectée
qui n'est pas vide. Ou quand des appareils additionnels ont été ajoutés, de nombreux appareils déjà dans la liste y étaient rajouter en double. La seule façon que j'ai trouvée d'ajouter un nouvel appareil est d'éliminer tous les appareils déjà connu d'Alexa puis de procéder à la détection de tous les appareils. Voici, approximativement, comment je fais.- Effacez la liste des appareils connectés dans Alexa. Cela se fait beaucoup plus efficacement dans l'interface Web d'Alexa alors que c'est une opération fastidieuse d'éliminer un appareil à la fois avec les applications pour téléphones intelligents,
- Renuméroter la liste des appareils
- dans
ID Seed (start numbering from this value)
) sur une nouvelle valeur
, definissez - dans Bridge Devices, cliquez sur Renumber Devices
- dans
- Demandez à l'Echo Dot de trouver des appareils.
Selon mon expérience, il fait attendre un bon moment entre chaque étape et cela semble être une bonne idée d'éteindre le Dot Echo jusqu'à ce qu'il soit temps de procéder à la découverte. J'attends également après avoir mis l'Echo sous tension pour m'assurer qu'il est complètement réinitialisé et qu'il a perdu toute mémoire d'appareils Philips Hue. C'est presque comme si j'anthropomorphisais la technologie. Il faut de la patience et de l'obstination, car généralement ce n'est qu'après plusieurs essais sur plusieurs heures qu'arrive le succès. Plus de détails peuvent être trouvés dans HA Bridge and Alexa Device Discovery, mais malheureusement, les instructions y sont tout aussi imprécises.
Suite ...
Le lecteur aura remarqué qu'il n'est pas vraiment de question de sécurité dans cette configuration du système domotique. La raison est que le système est censé être sur un réseau local qui ne sera jamais exposé à Internet. De toute évidence, une application stricte de cet embargo n'est pas compatible avec un système domotique de haute disponibilité. En effet, l'accès à distance aux appareils de la maison est très prisé par de nombreuses personnes. Dans le prochain volet de ce guide, l'installation d'un serveur de réseau privé virtuel sera abordée. Cela offre un moyen d'accéder en toute sécurité au système domotique qui n'est pas lui-même sécurisé.