You are currently viewing Roborock Saros 10 et Home Assistant

Roborock Saros 10 et Home Assistant

Tags : Roborock Saros 10

Cet article n’est pas une collaboration commercial, juste un achat personnel et je partage cela

0. Introduction

La domotique ne se limite pas à la gestion de la lumière, du chauffage ou des prises connectées : elle s’invite aussi dans l’entretien de la maison. Les aspirateurs robots intelligents sont devenus des alliés incontournables pour maintenir un intérieur propre sans effort.

Parmi les modèles les plus récents, le Roborock Saros 10 se démarque par ses fonctionnalités avancées, sa puissance d’aspiration et sa compatibilité avec les écosystèmes connectés. Bonne nouvelle pour les passionnés de domotique : il peut être intégré facilement dans Home Assistant, offrant un contrôle centralisé et la possibilité d’automatiser son utilisation selon vos besoins.

Dans cet article, nous allons :

  • Découvrir les caractéristiques principales du Roborock S10
  • Installer et configurer l’add-on Roborock pour Home Assistant
  • Voir comment piloter et automatiser l’aspirateur depuis une interface unique

1. Description produit

Le Roborock S10 est un aspirateur robot haut de gamme conçu pour assurer un nettoyage complet et intelligent de votre maison. Voici quelques points forts :

✅ Aspiration puissante et efficace sur sols durs et tapis
✅ Station de vidange automatique, pour un entretien simplifié
✅ Fonction serpillère intelligente, avec gestion de l’eau et lavage optimisé
✅ Cartographie avancée LiDAR, permettant de reconnaître et mémoriser plusieurs pièces
✅ Détection d’obstacles améliorée, évitant câbles, meubles et objets divers
✅ Compatibilité avec l’application Roborock, Alexa, Google Home et bien sûr Home Assistant

Grâce à ses capteurs et à son intelligence embarquée, le S10 peut nettoyer de façon ciblée une pièce, une zone définie, ou réaliser un cycle complet de nettoyage automatiquement.

La page du constructeur: https://fr.roborock.com/pages/roborock-saros-10

2. Intégration dans Home Assistant avec l’add-on Roborock

L’un des avantages majeurs de cet aspirateur est sa compatibilité avec Home Assistant grâce à l’add-on Roborock. Cela permet de centraliser son pilotage, mais aussi de l’intégrer à des automatisations avancées (nettoyage programmé selon la météo, déclenchement après un départ de la maison, etc.).

2.1 Pré-requis

  • Un serveur Home Assistant fonctionnel
  • L’accès à l’add-on Roborock via HACS (Home Assistant Community Store)
  • Les identifiants de connexion liés à votre compte Roborock

2.2 Installation de l’add-on Roborock

  1. Ouvrez Home Assistant
  2. Rendez-vous sur https://www.home-assistant.io/integrations/roborock
  3. Cliquer sur Add integration on my HA
  4. Redémarrez Home Assistant pour valider l’installation

2.3 Configuration de l’aspirateur

  1. Allez dans Paramètres > Appareils & Services > Ajouter une intégration
  2. Sélectionnez Roborock
  3. Connectez-vous avec vos identifiants Roborock
  4. Home Assistant détecte automatiquement votre S10 et l’ajoute à vos entités

Petit plus, si vous avez comme moi la gestion d’un autre aspirateurs par partage de configuration, vous pouvez aussi le gérer depuis HA
Mes aspirateurs ont tous un petit nom, Wall-E, Eve, M-O….

2.4 Fonctionnalités accessibles depuis Home Assistant

Une fois intégré, vous pouvez :

  • Démarrer, mettre en pause ou arrêter un nettoyage
  • Envoyer l’aspirateur à sa station
  • Lancer un nettoyage par pièce ou par zone
  • Consulter l’état actuel (en cours, en charge, batterie restante)
  • Programmer des automatisations (ex. lancer un nettoyage quand vous quittez la maison, ou après un cycle de cuisine)

3. Automatisation de l’aspirateur Roborock avec Home Assistant

Pour aller plus loin dans l’intégration du Roborock Saros S10 dans Home Assistant, j’ai mis en place une automatisation qui permet de déclencher le robot selon le jour de la semaine, l’heure et la présence à la maison.

Voici le code YAML utilisé :

alias: Aspirateur_Wall-E-Jours_Heures
description: Démarrer l'aspirateur selon le jour et la présence
triggers:
  - at: "16:45:00"
    id: Lundi_Mardi
    trigger: time
  - at: "15:00:00"
    id: Mercredi_Jeudi_Vendredi
    trigger: time
  - at: "10:00:00"
    id: Samedi_Dimanche
    trigger: time
conditions:
  - condition: or
    conditions:
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ now().weekday() in [0,1] }}"
          - condition: trigger
            id: Lundi_Mardi
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ now().weekday() in [2,3,4] }}"
          - condition: trigger
            id: Mercredi_Jeudi_Vendredi
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ now().weekday() in [5,6] }}"
          - condition: trigger
            id: Samedi_Dimanche
  - condition: or
    conditions:
      - condition: state
        entity_id: device_tracker.xiaomi14t
        state: home
      - condition: state
        entity_id: device_tracker.xiaomi
        state: home
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: Lundi_Mardi
        sequence:
          - data: {}
            target:
              entity_id: vacuum.saros_10
            action: vacuum.start
          - delay:
              minutes: 5
          - choose:
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: cleaning
                sequence:
                  - target:
                      entity_id: input_number.wall_e
                    action: input_number.increment
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: docked
                sequence:
                  - choose:
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi14t
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi14t)
                            action: notify.mobile_app_xiaomi14t
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi)
                            action: notify.mobile_app_xiaomi
      - conditions:
          - condition: trigger
            id: Mercredi_Jeudi_Vendredi
        sequence:
          - data: {}
            target:
              entity_id: vacuum.saros_10
            action: vacuum.start
          - delay:
              minutes: 5
          - choose:
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: cleaning
                sequence:
                  - target:
                      entity_id: input_number.wall_e
                    action: input_number.increment
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: docked
                sequence:
                  - choose:
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi14t
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi14t)
                            action: notify.mobile_app_xiaomi14t
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi)
                            action: notify.mobile_app_xiaomi
      - conditions:
          - condition: trigger
            id: Samedi_Dimanche
        sequence:
          - data: {}
            target:
              entity_id: vacuum.saros_10
            action: vacuum.start
          - delay:
              minutes: 5
          - choose:
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: cleaning
                sequence:
                  - target:
                      entity_id: input_number.wall_e
                    action: input_number.increment
                    data: {}
              - conditions:
                  - condition: state
                    entity_id: vacuum.saros_10
                    state: docked
                sequence:
                  - choose:
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi14t
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi14t)
                            action: notify.mobile_app_xiaomi14t
                      - conditions:
                          - condition: state
                            entity_id: device_tracker.xiaomi
                            state: home
                        sequence:
                          - data:
                              message: >-
                                Wall-E n'a pas démarré correctement !
                                (Détection: xiaomi)
                            action: notify.mobile_app_xiaomi
mode: single

3.1 Explication du fonctionnement

  1. Déclenchement selon les jours et horaires
    • L’automatisation se lance à des heures différentes selon les jours :
      • Lundi et Mardi → 16h45
      • Mercredi, Jeudi, Vendredi → 15h00
      • Samedi et Dimanche → 10h00
    Cela permet d’adapter le passage du robot aux habitudes de la maison (par exemple, nettoyage plus tôt en semaine et plus tard le week-end).
  2. Condition de présence
    Avant de démarrer, Home Assistant vérifie si au moins une personne est à la maison (via la détection des smartphones xiaomi14t et xiaomi).
    👉 Objectif : éviter que l’aspirateur ne se mette en route quand il n’y a personne pour surveiller son bon fonctionnement.
  3. Action principale : démarrage du robot
    Si les conditions sont remplies, le robot (vacuum.saros_10) démarre automatiquement à l’heure prévue.
  4. Vérification du démarrage
    Après 5 minutes, l’automatisation vérifie si le robot est bien en mode nettoyage :
    • ✅ S’il est en train de nettoyer → un compteur (input_number.wall_e) s’incrémente pour suivre le nombre de cycles effectués.
    • ❌ S’il est resté docké (n’a pas démarré), une notification est envoyée sur le smartphone de la personne présente pour signaler le problème.
  5. Notifications intelligentes
    La notification précise quel téléphone a détecté la présence (ex. Détection: xiaomi14t), afin de s’adresser directement à la bonne personne.

3.2 Le but de cette automatisation

Cette automatisation rend l’aspirateur :

  • Autonome → il se lance automatiquement selon un planning défini.
  • Adapté au rythme de vie → horaires différents selon les jours.
  • Fiable → vérification que le démarrage a bien eu lieu.
  • Interactif → notification envoyée en cas de problème, uniquement à la personne présente.
  • Suivi pratique → compteur du nombre de cycles de nettoyage effectués.

En résumé, cela permet de confier totalement la gestion du nettoyage à Home Assistant, tout en gardant un retour d’information fiable.

4. Optimisation intelligente : proposer le nettoyage du rez-de-chaussée le soir

Après avoir automatisé les passages réguliers de l’aspirateur selon un planning défini, on peut aller encore plus loin avec une automatisation plus flexible et contextuelle.

Le but ici est simple :
👉 Proposer automatiquement un nettoyage du rez-de-chaussée après 21h30 si quelqu’un est présent et que le robot n’a pas encore tourné de la journée.

Voici le YAML correspondant :

alias: Aspirateur_Wall-E-RDC-Automatique-Couché
description: >-
  Propose de passer l’aspirateur si présence après 21h30, au moins un des deux
  est à la maison, et Wall-E n'a pas encore tourné.
triggers:
  - entity_id:
      - binary_sensor.cm_chambre_parents_occupancy
    from: "off"
    to: "on"
    id: Présent
    trigger: state
conditions:
  - condition: time
    after: "21:30:00"
    before: "03:00:00"
  - condition: template
    value_template: "{{ states('input_number.wall_e') | int == 0 }}"
  - condition: or
    conditions:
      - condition: state
        entity_id: device_tracker.xiaomi
        state: home
      - condition: state
        entity_id: device_tracker.xiaomi14t
        state: home
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: device_tracker.xiaomi
            state: home
        sequence:
          - data:
              message: Bonsoir, est-ce qu'on passe l’aspirateur au rez-de-chaussée ?
              data:
                actions:
                  - action: YES_CLEAN
                    title: Oui
                  - action: NO_CLEAN
                    title: Non
            action: notify.mobile_app_xiaomi
      - conditions:
          - condition: state
            entity_id: device_tracker.xiaomi14t
            state: home
        sequence:
          - data:
              message: Bonsoir, est-ce qu'on passe l’aspirateur au rez-de-chaussée ?
              data:
                actions:
                  - action: YES_CLEAN
                    title: Oui
                  - action: NO_CLEAN
                    title: Non
            action: notify.mobile_app_xiaomi14t
  - wait_for_trigger:
      - event_type: mobile_app_notification_action
        event_data:
          action: YES_CLEAN
        trigger: event
  - target:
      entity_id: vacuum.saros_10
    data: {}
    action: vacuum.start
  - delay: "00:05:00"
  - choose:
      - conditions:
          - condition: state
            entity_id: vacuum.saros_10
            state: cleaning
        sequence:
          - target:
              entity_id: input_number.wall_e
            data:
              value: 1
            action: input_number.set_value
      - conditions:
          - condition: state
            entity_id: vacuum.saros_10
            state: docked
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: device_tracker.xiaomi
                    state: home
                sequence:
                  - data:
                      message: Wall-E n'a pas démarré correctement !
                    action: notify.mobile_app_xiaomi
              - conditions:
                  - condition: state
                    entity_id: device_tracker.xiaomi14t
                    state: home
                sequence:
                  - data:
                      message: Wall-E n'a pas démarré correctement !
                    action: notify.mobile_app_xiaomi14t
mode: single

4.1 Explication du fonctionnement

  1. Déclencheur : détection de présence dans la chambre
    • L’automatisation se lance lorsqu’un capteur de présence (binary_sensor.cm_chambre_parents_occupancy) détecte une personne dans la chambre parentale.
    • Cela permet de déclencher la logique au moment du coucher.
  2. Conditions avant d’agir
    • ⏰ L’heure doit être après 21h30 et avant 3h du matin.
    • 🧹 Le robot ne doit pas avoir déjà nettoyé (input_number.wall_e == 0).
    • 🏠 Au moins une personne doit être à la maison (via device_tracker.xiaomi ou xiaomi14t).
    👉 Ces conditions évitent de déranger inutilement et garantissent que le nettoyage est pertinent.
  3. Action : proposition de nettoyage par notification
    • Home Assistant envoie une notification interactive au smartphone de la personne présente :
      « Bonsoir, est-ce qu’on passe l’aspirateur au rez-de-chaussée ? ».
    • Deux boutons sont proposés : Oui ou Non.
    Cela permet de garder le contrôle et de décider en fonction du contexte (par exemple, éviter de lancer le robot si quelqu’un regarde un film).
  4. Exécution selon la réponse
    • Si la personne appuie sur Oui, Home Assistant démarre le robot (vacuum.saros_10).
    • Après 5 minutes, une vérification est faite :
      • ✅ S’il est en mode nettoyage, l’automatisation enregistre le passage en mettant à jour input_number.wall_e à 1.
      • ❌ S’il est resté docké, une notification est envoyée pour signaler que le démarrage n’a pas fonctionné.

4.2 Le but de cette automatisation

Cet automatisme apporte une nouvelle dimension à l’usage du Roborock :

  • Proactif → Home Assistant propose le nettoyage au bon moment (soirée, coucher).
  • Interactif → l’utilisateur garde la main grâce à une notification avec choix.
  • Contextuel → uniquement si personne n’a lancé le robot dans la journée.
  • Fiable → vérification et notification en cas d’échec.

En résumé, cette logique transforme l’aspirateur en assistant intelligent, qui suggère son aide quand cela a du sens, plutôt que de tourner aveuglément sur un simple planning.

5. Récupérer les ID des pièces du Roborock

Pour pouvoir créer un dashboard où l’on choisit quelle pièce nettoyer, Home Assistant a besoin de connaître la façon dont le Roborock identifie chaque zone de la maison. Ces identifiants sont appelés Room IDs.

5.1 Comment les récupérer

Dans Home Assistant :

  1. Dans le menu latéral, allez dans Outils de développement.
  2. Sélectionnez l’onglet Actions.
  3. Dans Récupérer les cartes, choisissez l’entité de votre aspirateur (ex. vacuum.saros_10).
  4. Cliquez sur Exécuter l’action.
  5. Les informations apparaissent dans la section Réponse : vous obtenez alors la carte et la liste des pièces avec leurs identifiants uniques.

👉 Exemple de retour obtenu :

vacuum.saros_10:
  maps:
    - flag: 0
      name: "Rez de chaussée"
      rooms:
        "1": Salle de bain
        "2": Salon
        "3": Cuisine
        "4": Salle à manger
        "6": Couloir

5.2 Création du dashboard

L’objectif est simple : avoir sur son dashboard un ensemble de boutons pour choisir si l’on veut lancer l’aspirateur dans toute la maison ou seulement dans une pièce donnée.


5.2.1 Pré-requis

Avant de mettre en place ce dashboard, il faut :

  • Avoir intégré le Roborock Saros 10 dans Home Assistant.
  • Connaître les Room IDs de vos pièces (exemple : 1 = Salle de bain, 2 = Salon, etc.).
  • Installer la carte Mushroom dans Home Assistant (via HACS). Elle permet d’avoir des boutons modernes et personnalisables.

👉 Si vous ne l’avez pas encore, cherchez Mushroom Cards dans HACS et installez-les, puis redémarrez Home Assistant.

5.2.2 Exemple de Dashboard par pièce

Voici un exemple de configuration YAML pour Lovelace.
Il permet :

  • De lancer un nettoyage complet.
  • De lancer le nettoyage d’une pièce spécifique (Salle à manger, Salon, Cuisine, Salle de bain, etc.).
  • De vérifier l’état de l’aspirateur (en cours de nettoyage ou non).
  • De le renvoyer au dock.
type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Lancer Aspirateur
        icon: mdi:robot-vacuum
        tap_action:
          action: perform-action
          perform_action: vacuum.start
          data: {}
          target:
            entity_id: vacuum.saros_10
        entity: vacuum.saros_10
      - type: custom:mushroom-template-card
        primary: Salle à manger
        icon: mdi:table-chair
        tap_action:
          action: perform-action
          target:
            entity_id: vacuum.saros_10
          data:
            command: app_segment_clean
            params: 4
          perform_action: vacuum.send_command
        entity: vacuum.saros_10
      - type: custom:mushroom-template-card
        primary: Salon
        icon: mdi:sofa
        tap_action:
          action: perform-action
          target:
            entity_id: vacuum.saros_10
          data:
            command: app_segment_clean
            params: 5
          perform_action: vacuum.send_command
        entity: vacuum.saros_10
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: Couloir
        icon: mdi:rug
        tap_action:
          action: perform-action
          target:
            entity_id: vacuum.saros_10
          data:
            command: app_segment_clean
            params: 6
          perform_action: vacuum.send_command
        entity: vacuum.saros_10
      - type: custom:mushroom-template-card
        primary: Cuisine
        icon: mdi:silverware
        tap_action:
          action: perform-action
          target:
            entity_id: vacuum.saros_10
          data:
            command: app_segment_clean
            params: 3
          perform_action: vacuum.send_command
        entity: vacuum.saros_10
      - type: custom:mushroom-template-card
        primary: Salle de bain
        icon: mdi:bathtub-outline
        tap_action:
          action: perform-action
          target:
            entity_id: vacuum.saros_10
          data:
            command: app_segment_clean
            params: 1
          perform_action: vacuum.send_command
        entity: vacuum.saros_10
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-template-card
        primary: État Aspirateur
        icon: mdi:robot-vacuum
        secondary: ""
        entity: binary_sensor.saros_10_nettoyage
        icon_color: |
          {% if is_state('binary_sensor.saros_10_nettoyage', 'on') %}
            green
          {% else %}
            red
          {% endif %}
        tap_action:
          action: perform-action
          perform_action: vacuum.start
          target:
            entity_id: vacuum.saros_10
      - type: custom:mushroom-template-card
        primary: Retour au Dock
        icon: mdi:home-export-outline
        tap_action:
          action: perform-action
          perform_action: vacuum.return_to_base
          data: {}
          target:
            entity_id: vacuum.saros_10
        entity: vacuum.saros_10
        icon_color: ""
Dashboard piece par piece

Avec ce dashboard :

  • En haut, vous avez un bouton pour lancer l’aspirateur dans toute la maison.
  • Chaque pièce a son propre bouton pour déclencher un nettoyage ciblé.
  • En bas, un bouton affiche l’état du robot (nettoie ou non) et un autre permet de l’envoyer au dock.

Cela rend l’utilisation du Roborock simple et visuelle, directement depuis l’interface Home Assistant, sans devoir passer par l’application mobile officielle.

6. Conclusion

L’intégration du Roborock Saros 10 dans Home Assistant transforme le pilotage de votre aspirateur en une expérience fluide et intelligente. Grâce aux automatisations basées sur l’heure, la présence et l’état de l’aspirateur, le nettoyage devient autonome et efficace. Le dashboard par pièce permet un contrôle précis de chaque zone, rendant l’usage encore plus pratique et intuitif.

6.1 Les +

✔️ Automatisation avancée selon jour, heure et présence
✔️ Contrôle précis par pièce grâce au dashboard Lovelace
✔️ Suivi de l’état de l’aspirateur en temps réel
✔️ Commandes simples et centralisées via cartes Mushroom
✔️ Gain de temps et maison toujours propre

6.2 Les –

❌ Configuration initiale un peu technique pour récupérer les IDs de pièces
❌ Dashboard un peu dense si beaucoup de pièces à afficher
❌ Dépendance à Home Assistant et aux notifications mobiles pour certaines automatisations

6.3 Améliorations possibles

💡 Ajouter des scénarios avancés comme la programmation selon la météo ou la présence de visiteurs
💡 Intégrer des alertes pour batterie faible ou nettoyage incomplet directement sur le dashboard
💡 Prévoir des scénarios spécifiques sans lavage, ou avec aspiration plus forte pour certaines pièces ou types de saleté (fonctionnalité à explorer et tester)

En combinant automatisations, dashboard par pièce et contrôle via Home Assistant, le Roborock Saros S10 devient un véritable assistant domestique, rendant votre maison plus propre, organisée et connectée.

Have fun !
La suite aux prochaines épisodes !
Jonathan

Jonathan WEBER

Ingénieur système et consultant Citrix, également moniteur canin avec un intérêt toujours marqué pour le tir. J'aime comprendre ce que je fais, maîtriser chaque détail et je suis constamment en quête d'amélioration.