Intégrer un robot aspirateur dans Home Assistant, c’est pratique, mais pouvoir nettoyer pièce par pièce selon vos besoins rend l’expérience vraiment flexible. Dans cet article, je vous montre comment j’ai mis en place une séquence de nettoyage par segments pour mon Dreame, avec des boutons toggle dans le dashboard, un helper pour gérer les segments et un mode de nettoyage dynamique.
1️⃣ Principe général
L’idée est simple :
- Chaque pièce correspond à un segment du plan de votre maison, à une séquence de pièces pour Dreame
- L’utilisateur peut sélectionner les segments à nettoyer en activant ou désactivant les boutons correspondants.
- Un script principal lance le nettoyage sur tous les segments sélectionnés, avec le mode choisi (balayage seul ou balayage + lavage).
On utilise pour cela :
input_text.dreame_segments→ contient les segments sélectionnés (ex."13,8").input_select.dreame_cleaning_mode→ permet de choisir le mode (sweepingousweeping_and_mopping).- Un script YAML
nettoyage_segments_complet→ exécute le nettoyage pour les segments sélectionnés.
2️⃣ Scripts et helpers
a) Helper pour les segments
input_text:
dreame_segments:
name: Segments Dreame
b) Helper pour le mode de nettoyage
input_select:
dreame_cleaning_mode:
name: Mode de nettoyage
options:
- sweeping
- sweeping_and_mopping
initial: sweeping
c) Script principal
nettoyage_segments_complet:
alias: Nettoyage segments (complet)
sequence:
# 1️⃣ Sélection du mode de nettoyage
- service: select.select_option
target:
entity_id: select.nono_cleaning_mode
data:
option: "{{ states('input_select.dreame_cleaning_mode') | default('sweeping') }}"
# 2️⃣ Vérification des segments
- choose:
- conditions:
- condition: template
value_template: "{{ states('input_text.dreame_segments') | default('') != '' }}"
sequence:
- service: dreame_vacuum.vacuum_clean_segment
data:
entity_id: vacuum.nono
segments: "{{ states('input_text.dreame_segments') | default('') }}"
default: []
Ici,
segmentsest passé comme chaîne CSV, ce qui est compatible avec le plugin Dreame et évite les erreurs de type.
3️⃣ Les boutons toggle pour sélectionner les segments
Chaque bouton ajoute ou retire le segment correspondant dans le helper input_text.dreame_segments. Exemple pour deux pièces :
type: custom:button-card
name: Ch2
tap_action:
action: call-service
service: script.toggle_segment_ch2
styles:
card:
- border-radius: 12px
- height: 100px
- display: grid
- place-items: center
Le script script.toggle_segment_ch2 gère le toggle :
toggle_segment_ch2:
alias: Toggle Ch2
sequence:
- service: input_text.set_value
data:
entity_id: input_text.dreame_segments
value: >
{% set segments = states('input_text.dreame_segments') | default('') | split(',') %}
{% if '13' in segments %}
{{ segments | reject('equalto','13') | join(',') }}
{% else %}
{{ (segments + ['13']) | reject('equalto','') | join(',') }}
{% endif %}
- La logique est la même pour toutes les pièces, il suffit de changer le chiffre du segment.
4️⃣ Bouton “Démarrer le nettoyage”
Le bouton final déclenche le script principal :
type: custom:button-card
name: Démarrer nettoyage
icon: mdi:robot-vacuum
tap_action:
action: call-service
service: script.nettoyage_segments_complet
styles:
card:
- background-color: >
[[[ return (states['input_text.dreame_segments']?.state || '') === '' ? 'grey' : 'var(--primary-color)'; ]]]
- opacity: >
[[[ return (states['input_text.dreame_segments']?.state || '') === '' ? 0.4 : 1; ]]]
- Bouton grisé si aucun segment sélectionné
- Bouton coloré si au moins un segment est actif
- Le script ne s’exécute pas si le helper est vide → plus d’erreurs.
5️⃣ Bonus UX
- Affichage du helper
input_text.dreame_segmentsdans le dashboard pour visualiser les segments sélectionnés. - Style dynamique des boutons pour montrer visuellement quelles pièces sont activées.
- Possibilité de changer le mode de nettoyage à la volée via un bouton toggle (
sweeping↔sweeping_and_mopping).
6️⃣ Résultat visuel

- Les pièces sont colorées selon leur sélection
- Le robot suit la séquence définie
- Interface moderne et lisible, avec un bouton principal pour lancer le nettoyage

Conclusion
Avec cette approche, Home Assistant devient un vrai centre de contrôle intelligent pour votre Dreame. Chaque pièce peut être nettoyée indépendamment, le mode de nettoyage est configurable, et le dashboard donne un retour visuel immédiat sur les sélections.
Cette architecture peut être étendue à toutes les pièces de votre maison, avec autant de scripts toggle que nécessaire, et le système reste robuste et facilement maintenable.
Cet article vous a plu ? Partagez-le 😉 Partager la publication "Séquence de pièces pour Dreame dans Home Assistant"