DOMOTICZ : quelques méthodes de dépannage
Cela fait maintenant plus de 6 ans que j'utilise un serveur domotique nommé DOMOTICZ, et j'en suis assez fan, mais il arrive que des ennuis surviennent. Je vais les décrire dans cet article.
Mon système domotique est constitué de différents composants :
- serveur DOMOTICZ hébergé sur une RASPBERRY PI
- passerelle série MYSENSORS
- capteurs développés à l'aide de cartes ARDUINO NANO, PRO MINI
- un écran TFT piloté par un ESP8266
- un répéteur MYSENSORS pour les capteurs éloignés
1. Panne de passerelle série
La passerelle série (serial gateway) permet de communiquer avec mes objets connectés équipés de NRF24L01 (capteurs de température, prises, relais, etc.) développés à l'aide de la librairie MYSENSORS.
Récemment, sur la page d'accueil de mon serveur, certains capteurs sont affichés en rouge, et ils n'ont pas communiqué depuis plusieurs jours :
J'ai deux types de dispositifs :
- dispositifs ARDUINO + NRF24L01
- dispositifs ESP8266
Apparemment seuls les dispositifs ARDUINO sont concernés. Comme il serait tout à fait étonnant que plusieurs capteurs aient le même problème simultanément, je soupçonne donc un problème sur la gateway. Après avoir branché celle-ci sur un port USB de mon PC, je lance le Moniteur Série de l'IDE ARDUINO, et les informations de DEBUG sont affichées :
Cela me semble un peu court. Par précaution je recharge le code de l'application gateway :
On voit bien deux lignes supplémentaires.
Je rebranche la gateway sur la RASPBERRY PI et au bout de quelques minutes tout rentre dans l'ordre.
2. Panne de répéteur
Il arrive que certains capteurs soient affichés en rouge, mais seulement les capteurs éloignés sont concernés. La communication avec ceux-ci passe par un répéteur. Ce n'est pas la première fois que cela arrive, et ici également, en cas de problème je recharge le code de l'application répéteur et tout rentre dans l'ordre.
3. Qualité du réseau
Il peut arriver qu'un capteur ne parvienne pas à envoyer ou recevoir des informations, ou que la communication passe par intermittence.
Il est nécessaire de vérifier que le réseau 2.4GHz passe bien à l'endroit où est situé le capteur.
Pour ce faire j'utilise la carte de test MYSENSORS, alimentée par batterie, développée il y a quelques années :
J'équipe cette carte de deux LEDs, une rouge et une verte, câblées chacune avec une résistance de 1KΩ en série, entre les sorties 2 et 3 de la carte PRO MINI et GND.
On peut parfaitement réaliser cette carte à l'aide d'une plaquette à pastilles. On peut même utiliser une UNO ou une NANO, sachant que l'autonomie sera beaucoup plus faible.
Voici le code utilisé :
Toutes les cinq secondes, un test d'envoi d'une température fictive est effectué. Si la communication passe bien, la LED verte est allumée pendant 500ms, sinon la LED rouge est allumée.
Ce dispositif ne permet cependant pas de quantifier la qualité du réseau, comme on pourrait le faire en WIFI (RSSI).
En baladant cette carte un peu partout à l'extérieur de la maison, je constate qu'il y a des zones où le réseau n'est pas accessible. Il s'agit principalement de zones où la maison, dont les murs de pierre ont 50cm d'épaisseur, fait obstacle. Par contre, je ne m'attendais pas à ce que mon répéteur ait une portée de plus de 20 mètres à certains endroits.
Tester son environnement avec ce genre de dispositif avant la mise en place d'un capteur peut s'avérer très intéressant, et peut éviter des déboires.
4. conclusion
Ma gateway et mon répéteur sont bâtis autour de cartes ARDUINO NANO. Ce n'est pas la première fois que je suis obligé de recharger le code sur ce type de carte.
Je soupçonne un problème de fuses, car ce genre de problème peut survenir lorsque l'on coupe l'alimentation d'un ATMEGA328, et la mémoire FLASH est partiellement corrompue. Mes cartes PRO MINI n'ont pas ce genre de problème, mais cela ne veut pas dire grand chose étant donné qu'elles sont alimentées par batterie, et que par conséquent leur alimentation n'est jamais coupée.
J'envisage sérieusement de remplacer certains ARDUINOs par des modules ESP8266 ou ESP32. Malheureusement cette opération n'est pas possible sur tous les capteurs. En effet, le temps de réveil d'un ESP8266 ou d'un ESP32 est énorme, car il redémarre en partant de ZÉRO, ce qui implique une reconnexion au réseau WIFI, qui peut être longue. Sur un capteur du type détecteur de présence ou bouton-poussoir, la latence serait inacceptable.
Autre possibilité : utiliser des STM32 ? Malheureusement, les STM32 ne sont pas supportés par la librairie MYSENSORS.
Il va falloir vivre encore un moment avec ces défauts répétitifs. Pour info, le code de la gateway a été rechargé une seule fois, celui du répéteur 4 à 5 fois.
5. A lire également
Pour ceux qui ne connaissent pas DOMOTICZ ou MYSENSORS :
Cordialement
Henri