# Intégration Externe - Roborock

**URL:** <https://community.gladysassistant.com/t/integration-externe-roborock/10416>\
**Category:** Développement\
**Tags:** integration-externe\
**Created:** [Juillet 31, 2026, 2:24 UTC](https://community.gladysassistant.com/t/integration-externe-roborock/10416 "2026-07-31T14:24:13Z")\
**Posts on this page:** 1\
**Showing post:** 21

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Octobre 5, 2026, 4:14 UTC](https://community.gladysassistant.com/t/integration-externe-roborock/10416/21 "2026-10-05T16:14:19Z")

</div>

Hello @Lokkye je tai fais un pr pour ajouter un widget et des actions et declencheur.

> <https://github.com/callemand/gladys-roborock/pull/6>
>
> \## Résumé
> 
> Deux ajouts pour l'intégration Roborock :
> 
> 1. \*\*Carte de l'aspirateur… en widget de dashboard\*\* (SDK \`0.14\`, widgets Gladys \`5.1\`).
> 2. \*\*Déclencheurs et actions de scène\*\* (l'aspirateur dans l'éditeur de scènes).
> 
> \## 1. Carte en widget
> 
> \- \*\*Récupération\*\* : \`get\_map\_v1\` (frame protocole \`301\`, déchiffrement AES‑128‑CBC + gunzip), transport local-first avec repli cloud.
> \- \*\*Parseur RRMap\*\* : format binaire → objet structuré (segments, robot, base, trajet, zones interdites, murs virtuels…), réconcilié avec \`get\_room\_mapping\` pour les \*\*noms de pièces\*\*.
> \- \*\*Rendu PNG maison\*\* (via \`node:zlib\`, sans dépendance) proche de l'app : pièces colorées, murs fins, zones interdites, murs virtuels, base/robot, \*\*fond transparent\*\* (s'adapte au thème clair/sombre).
> \- \*\*Widget « Aspirateur »\*\* : tuiles batterie / surface, carte, bloc état (état, dernier nettoyage, durée, \*\*% de chaque consommable\*\*) et \*\*4 boutons\*\* — Démarrer + Retour base fixes, et \*\*2 boutons configurables\*\* via les réglages.
> \- \*\*Timestamp de début du dernier nettoyage\*\* (\`get\_clean\_summary\`, mis en cache).
> 
> \## 2. Scènes
> 
> Déclaré dans le manifest (\`scene\_triggers\` / \`scene\_actions\`), branché sur les données déjà pollées et les commandes RPC existantes.
> 
> \*\*Déclencheurs\*\* (émis sur transition via \`publishSceneEvent\`) :
> \`cleaning\_started\`, \`cleaning\_finished\` (durée, surface), \`returned\_to\_dock\`, \`battery\_low\` (≤ 20 %), \`charging\_complete\`, \`robot\_error\` (code + libellé), \`consumable\_worn\` (≤ 10 %, par consommable), \`state\_changed\`.
> 
> \*\*Actions\*\* (\`onSceneAction\`, chacune avec un champ \`vacuum\`) :
> \`start\_cleaning\`, \`pause\_cleaning\`, \`stop\_cleaning\`, \`return\_to\_dock\`, \`clean\_rooms\` (noms de pièces → \`app\_segment\_clean\`), \`set\_fan\_power\` (silencieux/équilibré/turbo/max), \`run\_routine\` (nom de routine → \`executeRoutine\`).
> 
> Les transitions sont détectées via un instantané par robot mis en cache entre deux polls (le premier poll ne fait qu'amorcer le cache). Les seuils sont gérés côté intégration (les filtres de scène sont à égalité seulement) et le niveau/pourcentage est exposé en variable de scène.
> 
> \## Points d'attention
> 
> \- ⚠️ \*\*\`gladys\_version\` passe à \`\>=5.1.0\`\*\* : les widgets de dashboard nécessitent Gladys 5.1.0 (c'était \`\>=4.86.0\` sur \`main\`).
> \- \*\*Bump de version patch\*\* : \`2.3.0\` → \`2.3.1\`.
> \- \*\*Transport local QV35A\*\* : silencieux en TCP local quand il est à la base (en charge) → repli automatique sur le cloud, documenté.
> 
> \## Tests
> 
> \- \`114\` tests passent (\`node --test\`), \`eslint\` et \`prettier --check\` clean.
> 
> \## Suite possible
> 
> Demande de fonctionnalité pour une \*\*carte interactive\*\* (sélection de pièces au clic → nettoyage ciblé), qui nécessiterait un composant frontend côté cœur : https://community.gladysassistant.com/t/composant-carte-interactive-zones-cliquables-pour-les-widgets-dintegration-externe/10959
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)

Jai aussi fais une demande pour un jour sélectionner sur la map les pièces a nettoyer et ainsi faire évoluerce widget 🙂

> [@Composant carte interactive (zones cliquables) pour les widgets d'intégration externe](https://community.gladysassistant.com/t/composant-carte-interactive-zones-cliquables-pour-les-widgets-dintegration-externe/10959):
>
> Bonjour waving_hand Je développe un widget pour l’intégration externe Roborock qui affiche la carte de l’aspirateur (via onWidgetGetImage). Le rendu fonctionne très bien, mais je bute sur une limite du vocabulaire des widgets : il n’existe aucun moyen de rendre la carte interactive. Aujourd’hui dans un widget on ne dispose que de composants statiques (image, value, gauge, status, chart, card-list) + button (plafonné à 4). Les limites concrètes : • la carte est une image figée : impossible d…

---

_[View the full topic](https://community.gladysassistant.com/t/integration-externe-roborock/10416)._
