Sommaire
Automatiser l’entretien de sa piscine, c’est non seulement gagner du temps, mais aussi profiter pleinement de la saison estivale sans se soucier des corvées. En ce jeudi 14 août, sous un soleil qui chauffe déjà bien les margelles, j’ai décidé de mettre à l’épreuve le Dolphin E50i de Maytronics, un robot haut de gamme conçu pour nettoyer le fond, les parois et la ligne d’eau. Son design soigné, ses fonctionnalités connectées et, cerise sur le gâteau, sa compatibilité avec Home Assistant via une intégration communautaire en font un candidat sérieux pour un entretien sans effort. Voici mon retour d’expérience détaillé.
Une machine à nettoyer qui change la donne ?
Le nettoyage manuel d’une piscine, c’est souvent synonyme de balai fastidieux, éclaboussures et dos cassé sous le soleil. Le Dolphin E50i promet de supprimer tout ça. Conçu pour les piscines jusqu’à 15 m, qu’elles soient enterrées ou hors-sol à parois rigides, il s’appuie sur une navigation CleverClean et une brosse active à double vitesse pour déloger efficacement les saletés.
Contexte du test : bassin de 10 x 5 m avec une plagette à 30 cm de profondeur (zone peu nettoyée par le robot, ce qui est normal vu le faible niveau d’eau), une bande à 1 m de profondeur et un fond en diamant avec angles biseautés.

Unboxing : premières impressions
À l’ouverture du carton, on découvre :




- Le robot Dolphin E50i (10,2 kg)
- L’unité d’alimentation
- Un câble de 18 m équipé du swivel anti-entortillement
- Un panier filtrant multicouches avec accès par le dessus
- Le chariot de transport, simple, mais très pratique
- La documentation
La qualité perçue est au rendez-vous : plastiques robustes, chenilles imposantes, poignée intégrée. Le chariot, livré en kit, se monte rapidement et facilite le déplacement et le rangement du robot.
Installation : prêt à plonger
L’installation est simple et rapide :
- Monter le chariot de transport
- Placer l’unité d’alimentation à la distance réglementaire du bassin
- Brancher le câble et dérouler entièrement
- Immerger le robot lentement pour évacuer l’air
- Lancer un cycle via le boîtier ou l’application







Le robot nécessite une prise électrique proche de la piscine. L’avantage, c’est qu’il reste connecté en Wi-Fi en permanence, ce qui permet un contrôle à distance à tout moment, même via smartphone hors du domicile.
Sous le capot : fiche technique
- Navigation CleverClean
- Brosse active double vitesse
- 3 cycles de nettoyage : 1h30, 2h, 2h30
- Panier filtrant multicouches
- Câble 18 m avec swivel
- Connexion Wi-Fi/Bluetooth
Remarque : pas de mesure réelle de consommation disponible.











Le système de nettoyage du filtre est particulièrement simple et agréable : il suffit de retirer le panier par le dessus, de le rincer au jet d’eau, et il est prêt pour un nouveau cycle.
Service connecté : MyDolphin™ Plus
L’application MyDolphin™ Plus centralise toutes les commandes : démarrage/arrêt, choix du cycle, programmation, pilotage manuel en joystick. Interface claire et réactive, que ce soit en Wi-Fi depuis la maison ou en Bluetooth au bord du bassin.
Elle propose de nombreuses fonctions, mais depuis l’intégration dans Home Assistant, je me surprends à l’utiliser beaucoup moins, privilégiant les automatisations et tableaux de bord personnalisés.
Performances dans le bassin
La force du Dolphin E50i réside dans la qualité du nettoyage. Peu importe la durée sélectionnée — entièrement paramétrable —, le fond ressort impeccable, sans particules visibles. La ligne d’eau est également bien entretenue, même si le robot ne la parcourt pas toujours de gauche à droite comme certains modèles. Le résultat reste homogène, avec un bassin visiblement propre au fond.


Intégration Home Assistant : la cerise sur le gâteau 🏡
S'il y a bien une chose que j'apprécie avec les appareils connectés, c'est lorsqu'ils trouvent naturellement leur place dans mon installation Home Assistant. Le Dolphin E50i ne fait malheureusement pas exception… dans le bon sens du terme.
Même si Maytronics ne propose pas d'intégration officielle, la communauté Home Assistant a développé une intégration baptisée mydolphin_plus, disponible via HACS. En quelques minutes, le robot apparaît dans Home Assistant et devient pilotable comme n'importe quel autre appareil connecté de la maison.
L'intégration communique avec les serveurs cloud de Maytronics. Concrètement, lorsque Home Assistant envoie une commande, celle-ci transite par l'infrastructure AWS du constructeur avant d'être transmise au robot. Cela implique donc que le Dolphin reste connecté en permanence à Internet. Heureusement, le fait qu'il soit alimenté en continu via son bloc secteur lui permet de rester connecté au Wi-Fi même lorsqu'il ne nettoie pas.
Une fois configuré, Home Assistant découvre automatiquement plusieurs entités particulièrement intéressantes :
| Entité | Description |
|---|---|
vacuum.flipper |
Entité principale du robot (démarrage, arrêt, état...) |
binary_sensor.flipper_aws_broker |
Indique si le robot est bien connecté au cloud |
sensor.flipper_etat_du_filtre |
État du filtre |
sensor.flipper_cycle_time |
Durée du dernier cycle |
sensor.flipper_nombre_de_cycles |
Nombre total de nettoyages |
sensor.flipper_erreur_du_robot |
Dernière erreur remontée |
select.flipper_mode_led |
Gestion de l'éclairage LED |
Comme souvent avec Home Assistant, ce sont ces entités qui deviennent la matière première de toutes les automatisations.



Un script plus intelligent qu'un simple bouton
J'aurais pu me contenter d'ajouter un bouton « Nettoyer la piscine » sur mon tableau de bord.
Mais Home Assistant envoie les commandes sans attendre de confirmation. Si le robot est hors ligne, la commande est tout simplement perdue.
J'ai donc préféré créer un script un peu plus intelligent qui vérifie plusieurs points avant de lancer le nettoyage.
La première étape consiste simplement à vérifier que le robot est bien connecté aux serveurs Maytronics.
if:
- condition: state
entity_id: binary_sensor.flipper_aws_broker
state: "off"
then:
- action: script.notify_mobile_app
Si le robot est hors ligne, le script s'arrête immédiatement et je reçois une notification sur mon téléphone. Cela évite de croire que la piscine est en cours de nettoyage alors que rien ne s'est lancé.
Le script sélectionne ensuite automatiquement le mode All, qui correspond au nettoyage complet du fond, des parois et de la ligne d'eau.
service: vacuum.set_fan_speed
data:
fan_speed: all
Après une courte attente, il lance le robot puis vérifie que son état passe bien à cleaning. Là encore, si quelque chose ne s'est pas déroulé correctement (capot mal fermé, problème réseau…), je préfère être averti immédiatement plutôt que de m'en rendre compte plusieurs heures plus tard.
Enfin, le script attend tranquillement que le robot revienne à sa base (docked) avant de m'envoyer une dernière notification confirmant que le bassin est propre.
wait_for_trigger:
- platform: state
entity_id: vacuum.flipper
from: cleaning
to: docked
Finalement, je n'utilise pratiquement plus l'application MyDolphin Plus pour lancer un nettoyage. Toute la logique est désormais pilotée directement depuis Home Assistant.
# packages/pool/robot.yaml
script:
flipper_nettoyage:
alias: "🏊 Flipper — Lancer nettoyage"
icon: mdi:robot-vacuum
mode: single
sequence:
# 1. Vérifier que le broker AWS est actif avant toute chose
- if:
- condition: state
entity_id: binary_sensor.flipper_aws_broker
state: "off"
then:
- action: script.notify_mobile_app
data:
title: "❌ Flipper — hors ligne"
message: "Robot non connecté. Nettoyage annulé."
channel: robots
data:
tag: flipper_run
- stop: "AWS broker déconnecté"
# 2. Sélectionner le mode complet (fond + parois + ligne d'eau) et démarrer
- action: vacuum.set_fan_speed
target:
entity_id: vacuum.flipper
data:
fan_speed: all
- delay: "00:00:02"
- action: vacuum.start
target:
entity_id: vacuum.flipper
# 3. Attendre 1m30 puis vérifier que le robot est bien en train de nettoyer
- delay: "00:01:30"
- choose:
- conditions:
- condition: state
entity_id: vacuum.flipper
state: cleaning
sequence:
- action: script.notify_mobile_app
data:
title: "🤖 Flipper a démarré"
message: "Nettoyage en cours (mode Regular, 2h)."
channel: robots
data:
tag: flipper_run
default:
# Si le robot n'est pas passé en cleaning : alerte plutôt que silence
- action: script.notify_mobile_app
data:
title: "⚠️ Flipper — démarrage non confirmé"
message: "Le robot n'est pas en mode nettoyage. État : {{ states('vacuum.flipper') }}."
channel: robots
data:
tag: flipper_run
# 4. Attendre la fin du cycle (max 3h) puis confirmer
- wait_for_trigger:
- platform: state
entity_id: vacuum.flipper
to: docked
from: cleaning
timeout: "03:00:00"
continue_on_timeout: true
- condition: template
value_template: "{{ not wait.timed_out }}"
- action: script.notify_mobile_app
data:
title: "✅ Piscine propre"
message: "Flipper a terminé son cycle de nettoyage."
channel: robots
data:
tag: flipper_run
Une automatisation qui suit les saisons
Plutôt que de programmer le robot tous les jours à heure fixe, j'ai préféré adapter automatiquement sa fréquence de nettoyage selon la période de l'année.
En plein été, la piscine est beaucoup plus sollicitée. Le robot passe donc trois fois par semaine.
Au printemps et en automne, deux nettoyages suffisent largement.
| Période | Fréquence |
|---|---|
| Juin → Août | 3 fois par semaine |
| Avril → Mai / Septembre → Octobre | 2 fois par semaine |
Le lancement est effectué à 23 h, pendant les heures creuses, uniquement si le robot est disponible et que ma filtration n'est pas en mode Hivernage ou Inactif.
J'ai également ajouté un simple input_boolean permettant d'ignorer le prochain nettoyage automatique. C'est très pratique lorsqu'un cycle vient d'être lancé manuellement ou que la piscine est déjà parfaitement propre.
# packages/pool/robot.yaml (suite)
automation:
# Automatisation 1 : notifications en temps réel
# Se déclenche sur chaque changement d'état important du robot
- alias: "Robot piscine - notifications"
id: "robot_piscine_notifications"
mode: single
trigger:
- platform: state
entity_id: vacuum.flipper
to: "cleaning"
id: cleaning_start
- platform: state
entity_id: vacuum.flipper
to: "docked"
from: "cleaning"
id: cleaning_done
- platform: state
entity_id: vacuum.flipper
to: "error"
id: cleaning_error
- platform: state
entity_id: vacuum.flipper
attribute: is_connected
to: "false"
id: disconnected
action:
- choose:
- conditions:
- condition: trigger
id: cleaning_start
sequence:
- action: notify.mobile_app_pixel_6
data:
title: "🤖 Robot piscine : nettoyage lancé"
message: >
Cycle démarré (mode : {{ state_attr('vacuum.flipper', 'cleaning_mode') | replace('_', ' ') }},
durée : {{ state_attr('vacuum.flipper', 'cycle_time') }} min).
data:
tag: robot_piscine_status
channel: robots
- conditions:
- condition: trigger
id: cleaning_done
sequence:
- action: notify.mobile_app_pixel_6
data:
title: "✅ Robot piscine : cycle terminé"
message: "Le robot a terminé son cycle de nettoyage."
data:
tag: robot_piscine_status
channel: robots
- conditions:
- condition: trigger
id: cleaning_error
sequence:
- action: notify.mobile_app_pixel_6
data:
title: "⚠️ Robot piscine : erreur"
message: "Problème pendant le nettoyage — vérifie l'état dans Home Assistant."
data:
tag: robot_piscine_alert
channel: robots
- conditions:
- condition: trigger
id: disconnected
sequence:
- action: notify.mobile_app_pixel_6
data:
title: "❌ Robot piscine : déconnecté"
message: "Le robot n'est plus connecté à Home Assistant."
data:
tag: robot_piscine_alert
channel: robots
# Automatisation 2 : planification automatique à 23h (heures creuses)
# La fréquence s'adapte à la saison via une condition template
- alias: "🏊 Flipper — Run 23h00 (heures creuses)"
id: flipper_run_2300
mode: single
trigger:
- platform: time
at: "23:00:00"
condition:
# Ne pas lancer si on a activé le flag "passer ce soir"
- condition: state
entity_id: input_boolean.flipper_passer_nettoyage
state: "off"
# Robot disponible (pas déjà en train de nettoyer)
- condition: template
value_template: "{{ states('vacuum.flipper') in ['docked', 'idle'] }}"
# Piscine en service (pas en hivernage ou désactivée)
- condition: template
value_template: "{{ states('input_select.mode_filtration_piscine') not in ['Hivernage', 'Inactif'] }}"
# Fréquence saisonnière :
# Été (juin-août) → lun / mer / ven (3×/semaine)
# Mi-saison (avr-mai, sep-oct) → lun / jeu (2×/semaine)
# Hors-saison (nov-mars) → mercredi (1×/semaine)
- condition: template
value_template: >
{% set month = now().month %}
{% set dow = now().isoweekday() %}
{% set haute = month in [6, 7, 8] %}
{% set normale = month in [4, 5, 9, 10] %}
{% set hors = month in [11, 12, 1, 2, 3] %}
{{ (haute and dow in [1, 3, 5]) or
(normale and dow in [1, 4]) or
(hors and dow == 3) }}
action:
- action: script.turn_on
target:
entity_id: script.flipper_nettoyage
- action: input_boolean.turn_off
target:
entity_id: input_boolean.flipper_passer_nettoyage
# Automatisation 3 : reset du flag skip à 00h30
# Evite qu'un skip activé manuellement reste bloqué plusieurs jours
- alias: "🏊 Flipper — Reset flag skip"
id: flipper_reset_skip
mode: single
trigger:
- platform: time
at: "00:30:00"
action:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.flipper_passer_nettoyage
Mon tableau de bord
Comme souvent, le vrai plaisir avec Home Assistant vient aussi du tableau de bord.
J'y retrouve en un coup d'œil :
- le prochain nettoyage programmé ;
- l'état actuel du robot ;
- la durée du dernier cycle ;
- le nombre total de nettoyages ;
- l'état du filtre ;
- les éventuelles erreurs remontées par le robot ;
- plusieurs graphiques permettant de suivre les cycles sur les sept derniers jours.
Tout est centralisé au même endroit, avec les autres équipements de la maison, ce qui me permet de ne quasiment plus ouvrir l'application officielle.


# .storage/lovelace.robots — section Robot piscine (Flipper)
- type: heading
heading: "Robot piscine (Flipper)"
heading_style: title
icon: mdi:robot-vacuum-variant
grid_options:
columns: full
rows: 1
- type: heading
heading: "Commandes"
heading_style: subtitle
grid_options:
columns: full
rows: 1
# Carte planning : affiche le prochain créneau selon le mois en cours
- type: markdown
content: >
{% set m = now().month %}
{% set mode = states('input_select.mode_filtration_piscine') %}
{% if mode in ['Hivernage', 'Inactif'] %}
🚫 **Bloqué** — filtration en mode *{{ mode }}*
{% elif m in [6,7,8] %}
🏖️ **Été** (juin–août) — **lun / mer / ven à 23h** *(3×/sem)*
{% elif m in [4,5,9,10] %}
🌸 **Mi-saison** (avr–oct) — **lun / jeu à 23h** *(2×/sem)*
{% else %}
❄️ **Hors-saison** (nov–mars) — **mer à 23h** *(1×/sem)*
{% endif %}
{% if is_state('input_boolean.flipper_passer_nettoyage', 'on') %}
⏭️ *Run annulé ce soir*
{% endif %}
grid_options:
columns: full
rows: 2
# État live du robot (coloré selon l'état : vert si docked, bleu si cleaning…)
- type: tile
entity: vacuum.flipper
color: state
state_content: last_changed
grid_options:
columns: full
rows: 1
# Bouton de lancement manuel — appelle le script complet avec toutes ses vérifications
- type: tile
entity: script.flipper_nettoyage
color: state
tap_action:
action: perform-action
perform_action: script.turn_on
target:
entity_id: script.flipper_nettoyage
grid_options:
columns: full
rows: 1
# Toggle pour sauter le prochain passage sans désactiver l'automatisation
- type: tile
entity: input_boolean.flipper_passer_nettoyage
color: state
state_content: last_changed
tap_action:
action: toggle
grid_options:
columns: full
rows: 1
# Capteurs d'état détaillés
- type: tile
entity: sensor.flipper_etat_du_robot
color: state
grid_options:
columns: full
rows: 1
- type: tile
entity: sensor.flipper_etat_du_filtre
color: state
grid_options:
columns: full
rows: 1
# Contrôle LED (intégré directement dans la tuile via feature select-options)
- type: tile
entity: select.flipper_mode_led
features:
- type: select-options
features_position: bottom
grid_options:
columns: full
rows: 1
- type: heading
heading: "Stats semaine"
heading_style: subtitle
grid_options:
columns: full
rows: 1
# Graphique en barres : un bâton par jour sur 7 jours
- type: statistics-graph
title: "Cycles réalisés"
chart_type: bar
period: day
days_to_show: 7
entities:
- sensor.flipper_nombre_de_cycles
grid_options:
columns: full
- type: heading
heading: "Automatisations & scripts"
heading_style: subtitle
grid_options:
columns: full
rows: 1
- type: tile
entity: sensor.flipper_statut
grid_options:
columns: full
rows: 1
- type: tile
entity: sensor.flipper_erreur_du_robot
grid_options:
columns: full
rows: 1
# Tuile de l'automatisation elle-même : permet de l'activer/désactiver depuis le dashboard
- type: tile
entity: automation.robot_piscine_notifications
grid_options:
columns: full
rows: 1Une dépendance au cloud à garder en tête
Le seul vrai bémol concerne l'architecture choisie par Maytronics.
L'intégration repose entièrement sur leur cloud. Si leurs serveurs sont indisponibles ou qu'une mise à jour casse leur API, Home Assistant ne pourra plus communiquer avec le robot jusqu'à ce que la communauté adapte l'intégration.
Ce n'est absolument pas bloquant au quotidien — la communauté autour de mydolphin_plus est très réactive — mais c'est un point qu'il me semble important de mentionner.
Points forts
✅ Nettoyage complet (fond, parois, ligne d’eau)
✅ Application intuitive
✅ Filtration performante et entretien du filtre facile
✅ Câble swivel
✅ Compatible avec Home Assistant
✅ Chariot de transport inclus et pratique
Points faibles
❌ Poids à la sortie de l’eau
❌ Prix élevé
❌ Intégration HA non officielle
❌ Indicateur de filtre perfectible
Verdict
Le Dolphin E50i allie puissance de nettoyage, connectivité et domotique. Pour un bassin de taille moyenne à grande, il offre un résultat professionnel sans effort. Son prix reflète sa qualité, et son intégration possible dans Home Assistant ouvre la porte à des automatisations pratiques. Le chariot et la simplicité d’entretien du filtre ajoutent un vrai plus au quotidien.
📌 Lien produit : Dolphin E50i sur Amazon
Ce test n’est pas sponsorisé. Le robot a été acheté et testé en conditions réelles, et ce compte rendu reflète uniquement mon expérience.