Je teste le capteur de niveau Zigbee par ultrasons ME201WZ de chez MORAY

Qu’est-ce que ce capteur et à quoi sert-il ?

Je vous présente le capteur de niveau Zigbee par ultrasons ME201WZ de Moray, un outil que j’ai testé pour surveiller le niveau de liquide dans ma cuve. Ce petit appareil utilise la technologie ultrasonique pour mesurer la distance avec précision, ce qui permet de connaître le niveau d’eau (ou d’un autre liquide) dans un réservoir. Ce que j’apprécie, c’est sa facilité d’installation, sa robustesse et son faible besoin d’entretien. Normalement, il est conçu pour fonctionner avec l’application Tuya Smart ou Smart Life via Zigbee, mais moi, j’ai voulu l’intégrer directement dans Zigbee2MQTT pour plus de liberté. Il est alimenté sur secteur (version 220V, sans panneau solaire).

Capteur Moray ME201WZ

Où l’acheter et à quel prix ?

Ce capteur vient de chez Domadoo, un revendeur français que j’apprécie pour sa fiabilité. Il existe plusieurs versions de ce capteur, mais j’ai opté pour la version 220V, sans panneau solaire, pour des raisons pratiques. Voici les options que j’ai trouvées :

  • Domadoo : 45,99 € pour la version 220V.
  • AliExpress : environ 50,39 € pour la version 220V (attention aux contrefaçons, je recommande la prudence).
  • Domadoo : 59,99 € pour la version avec panneau solaire.

Première étape : je vérifie le contenu du colis

Une fois le capteur reçu, j’ai pris le temps de tout déballer pour m’assurer que rien ne manquait. Tout était bien là : le capteur, les vis de fixation, et un petit manuel. Voici quelques photos que j’ai prises pour vous montrer le déballage :

Déballage capteur

Capteur Moray

Contenu colis

Deuxième étape : j’appaire le capteur à Zigbee2MQTT

Avant de fixer le capteur sur ma cuve, j’ai décidé de l’appairer à mon réseau Zigbee. J’ai vite remarqué que le bouton d’appairage se trouve sous le capteur, donc il vaut mieux faire cette étape avant l’installation physique.

Bouton d’appairage

Petite surprise : brancher le capteur au secteur ne déclenche pas automatiquement l’appairage. Il faut appuyer sur le bouton pendant 5 secondes (sans forcer !) jusqu’à ce que la LED clignote rapidement. Honnêtement, ça m’a pris trois essais pour y arriver – patience est le mot d’ordre ! Mais au final, Zigbee2MQTT a bien détecté le capteur. Voici ce que ça donnait dans l’interface :

Détection Zigbee2MQTT

Interface Zigbee2MQTT

Troisième étape : j’installe le capteur sur ma cuve

Ma cuve ressemble à celle ci (mais sous terre):

Cuve

Elle a deux couvercles, et j’ai décidé de fixer le capteur sur l’un d’eux. Ma cuve est enterrée, et au-dessus, j’ai un puits qui facilite l’accès. Pour installer le capteur, j’ai commencé par mesurer le diamètre du couvercle afin de choisir la bonne scie cloche :

Mesure diamètre

Scie cloche

J’ai retiré le bouchon du puits et fixé le capteur directement dessus. Voici un petit reportage photo de l’installation :

Puits

Installation 1

Installation 2

Installation 3

Installation 4

Installation 5

Installation 6

Installation 7

Installation finale

Pour m’assurer que tout fonctionnerait correctement, j’ai mesuré la profondeur de la cuve (1,5 m) et la hauteur actuelle de l’eau (1,2 m). Ces données allaient me servir pour la configuration.

Quatrième étape : je configure les niveaux de référence

Le manuel explique comment configurer les paramètres du capteur. J’ai noté mes mesures directement dessus pour m’y retrouver :

Manuel avec mesures

J’ai essayé de configurer les paramètres dans Zigbee2MQTT, mais j’ai rencontré des soucis (peut-être un problème de format avec les virgules ou les points). Du coup, j’ai tout paramétré dans Home Assistant, et là, tout s’est bien passé :

Configuration Home Assistant

Une fois configuré, le capteur a commencé à renvoyer des données cohérentes, et les calculs semblaient justes.

Cinquième étape : je vérifie la connexion Zigbee

Comme ma cuve est à environ 15 mètres de la maison, j’avais un peu peur que la connexion Zigbee soit instable. Après avoir laissé le réseau se stabiliser, j’ai constaté un LQI (indicateur de qualité du signal) autour de 150, ce qui est plutôt correct.

LQI Zigbee

Cependant, en regardant les logs, j’ai remarqué des déconnexions occasionnelles (environ une par heure). Ça m’a intrigué, alors j’ai décidé d’investiguer.

Log déconnexion

Mise à jour quelques jours plus tard : Pour améliorer la connexion, j’ai ajouté un répéteur Zigbee Aeotec Range Extender Zi WG001. Ce matériel est top, je le recommande ! Le LQI est monté à 248, ce qui est excellent. Mais, curieusement, les déconnexions persistaient. Elles ne durent que quelques secondes et ne semblent pas perturber le fonctionnement, alors j’ai décidé de ne pas m’en préoccuper pour l’instant. Peut-être un bug logiciel ? Je surveillerai les futures mises à jour.

LQI 248

Déconnexion persistante

Sixième étape : je vérifie les données récupérées

Maintenant que tout est en place, je reçois trois informations utiles du capteur :

Données capteur

  • Liquid depth : la hauteur d’eau dans la cuve (depuis le fond jusqu’au niveau d’eau).
  • Liquid level percent : le pourcentage de remplissage par rapport à la capacité maximale.
  • Liquid state : une indication sous forme d’état (bas, normal, haut).

En réalité, le capteur ne mesure que la distance par ultrasons. Les autres valeurs sont calculées à partir de la configuration que j’ai entrée. C’est simple, mais efficace.

Dernière étape : j’intègre les données dans mon dashboard

Pour rendre l’affichage plus visuel, j’ai décidé d’ajouter les données de mon capteur à mon dashboard Home Assistant. J’ai utilisé la carte Lovelace Fluid Level Background Card, que j’ai installée via HACS. Voici à quoi ça ressemble :

Dashboard Home Assistant

Installation HACS

Configurer cette carte n’est pas forcément intuitif, alors je partage mon code YAML pour vous aider :

type: custom:fluid-level-background-card
entity: sensor.niveau_eau_citerne_liquid_level_percent
card:
  show_name: false
  show_icon: true
  show_state: true
  type: glance
  entities:
    - entity: sensor.niveau_eau_citerne_liquid_depth
      name: Profondeur
      icon: mdi:arrow-up-bold
    - entity: sensor.niveau_eau_citerne_liquid_level_percent
      name: Niveau
      unit: "%"
      icon: mdi:water-percent
    - entity: binary_sensor.flotteur_pompe_arrosage
      name: Flotteur
      icon: mdi:water-percent
  state_color: false
  columns: 3
  title: Niveau d'eau dans la citerne
full_value: 100
severity: []
fill_entity: sensor.niveau_eau_citerne_liquid_depth
tap_action:
  action: more-info

À noter : le capteur binary_sensor.flotteur_pompe_arrosage est un flotteur on/off que j’utilise depuis plus de 5 ans. Il fonctionne toujours parfaitement, et j’en parle dans un autre article : Pompe Jardin et Arrosage Sonoff 4CH Pro et ESP Easy.

J’améliore de la détection de fin de cuve [Optionnel]

Comme exprimé précédemment, j’ai depuis plusieurs années un capteur de niveau (flotteur) on/off qui est une grosse bille dans un flotteur qui envoie ON ou OFF à un Sonoff. Celui-ci coupe l’alimentation de la pompe dès que le flotteur change de position (passe à Sec)

C’est très empirique mais mon idée est d’aligner le seuil de détection calculé du nouveau capteur au changement d’état du flotteur, ainsi une panne de l’un ou l’autre permettrait toujours de sécurisé la pompe en la coupant.

Pour cela, j’ai ouvert tous les robinets et lancé le « vidage » de la cuve pour détecté le seuil de bascule du flotteur. Voici le résultat :

Les observations me donnent que le point de bascule du flotteur est à 14h06, la pompe s’arrête au même moment.
A 14h06, le pourcentage est à 44% et la hauteur à 0m53.

Je suis donc retourné dans la configuration du capteur dans Zigbee2MQTT pour changer la valeur de Mini set que j’ai passé à 45%.

Ainsi, le statut de Liquid state est passé sur low, c’est sur cet état que je peux ajouter une coupure de l’alimentation de ma pompe d’arrosage.

Je vais également modifier ma carte sur le dashboard.

Soit le code yaml complet :

type: custom:fluid-level-background-card
entity: sensor.niveau_eau_citerne_liquid_level_percent
card:
  show_name: false
  show_icon: true
  show_state: true
  type: glance
  entities:
    - entity: sensor.niveau_eau_citerne_liquid_depth
      name: Profondeur
      icon: mdi:arrow-up-bold
    - entity: sensor.niveau_eau_citerne_liquid_level_percent
      name: Niveau
      unit: "%"
      icon: mdi:water-percent
    - entity: binary_sensor.flotteur_pompe_arrosage
      name: Flotteur
      icon: mdi:water-percent
  state_color: false
  columns: 3
  title: Niveau d'eau dans la citerne
full_value: 100
severity:
  - value: 20
    color: red
  - value: 45
    color: orange
  - value: 50
    color:
      - 3
      - 169
      - 244
fill_entity: sensor.niveau_eau_citerne_liquid_depth
tap_action:
  action: more-info

Ainsi, quand le niveau sera inférieur à 45%, j’aurais cette image :

et dès que le niveau remonte un peu, entre le bleu et le rouge, j’ai mis le orange:

Mon verdict sur ce capteur

Pour conclure, je trouve ce capteur vraiment pratique si vous avez besoin de surveiller le niveau d’une cuve. L’installation physique est ultra-simple – le plus long, dans mon cas, a été de tirer une alimentation électrique jusqu’à la cuve. Une fois en place, il fait le job sans complications.

Il existe une version avec panneau solaire, mais je ne l’ai pas testée. J’avais peur qu’elle manque de puissance pour maintenir une connexion Zigbee stable, surtout sans batterie (elle ne fonctionnerait probablement que le jour). La version 220V me convient parfaitement.

Avant, je me contentais d’un flotteur on/off pour surveiller ma cuve. Avec ce capteur, j’ai maintenant des mesures précises du niveau d’eau, et pour moins de 50 €, je trouve ça très intéressant. C’est un bon investissement pour un appareil Zigbee bien conçu.

Mode d’emploi (pour référence)

Recto manuel
Verso manuel