# Matter : Intégration lave vaisselle

**URL:** <https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227>\
**Category:** Demande de fonctionnalités\
**Tags:** feature-integration, in-progress\
**Created:** [Mai 17, 2026, 7:02 UTC](https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227 "2026-05-17T19:02:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Mai 17, 2026, 7:02 UTC](https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227/1 "2026-05-17T19:02:00Z")

</div>

Bonjour,

Suite au développement d’un plugin matter pour Home Connect afin de connecté un lave vaisselle dans mon cas, j’ai pu me rendre compte qu’il manque des fonctionnalités ou que cela n’est pas correctement mappé.

C’est pour cela que j’ouvre cette demande de fonctionnalité afin de supporter correctement le plugin home connect et pourquoi pas d’autres plugins plus tard qui se baseront sur la même chose.

J’ai pu faire travailler un peu l’IA en me basant sur ceci :

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/matter/lib/matter.listenToStateChange.js>

et le plugin ici :

> <https://github.com/GladysAssistant/matterbridge-ai-plugin-factory/issues/14>
>
> \### Device/Service Name
> 
> Home Connect
> 
> \### Existing Integrations & Documentation…
> 
> \- Api Docs : https://api-docs.home-connect.com/ 
> \- Npm package for Homebridge : https://www.npmjs.com/package/homebridge-homeconnect
> 
> \### Device Capabilities
> 
> \- On/Off Control
> \- Door Open (Yes/No) view only
> \- General Status view only
> \- Program in progress view only
> 
> \### Additional Context
> 
> \_No response\_
> 
> \### Confirmations
> 
> \- \[x\] I have provided links to existing integrations in other projects
> \- \[x\] I have verified the API documentation is accessible
> \- \[x\] I understand this is an automated AI process and results may vary
> \- \[x\] I am willing to test the generated plugin and provide feedback

Voici un résumé dans un tableau ( Si vous avez besoin du détail je peux le fournir 🙂 ) :

| Fonctionnalité | Cluster Matter | Support dans Matterbridge | Support dans Gladys | Action requise |
| --- | --- | --- | --- | --- |
| On/Off | OnOff | ✅ Oui | ✅ Oui | Aucune. |
| Door Open | BooleanState | ✅ Oui | ⚠ Partiel | Mapper l’external\_id à une fonctionnalité «&nbsp;door&nbsp;» dans Gladys. |
| General Status | Personnalisé | ✅ Oui | ❌ Non | Ajouter un listener dans listenToStateChange.js pour le cluster personnalisé. |
| Program in Progress | Personnalisé | ✅ Oui | ❌ Non | Idem : ajouter un listener ou mapper à un BooleanState. |

Concernant Door Open et Program in Progress il devrait normalement prendre une valeur BooleanState mais l’IA semble dire que le problème vient de Gladys :

_Pour que Gladys reconnaisse les états comme «&nbsp;Door Open&nbsp;» ou «&nbsp;Program in Progress&nbsp;», il faut :_

\*\* **Créer des fonctionnalités personnalisées** dans Gladys pour ces états.\*  
\*\* **Mapper les `external_id`** aux bonnes fonctionnalités (ex: `matter:${nodeId}:${devicePath}:${BooleanState.Complete.id}:door_open` → `door_open`).\*

Pour General Status voici les différents états qu’il peut prendre et je ne sais pas si on peut l’intégrer à un standard ou bien juste l’afficher comme du texte :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/8/d/8dab3136f1e0002957f9e4b472b1664e1e58e6e5.png)

Merci d’avance pour vos retours 🙂

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Mai 18, 2026, 6:56 UTC](https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227/2 "2026-05-18T06:56:40Z")

</div>

Ah ben j’ai une cafetière qui fonctionne avec home connect ! Je vais suivre ça de près 👍

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mai 18, 2026, 7:24 UTC](https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227/3 "2026-05-18T07:24:27Z")

</div>

Merci pour l’analyse détaillée @prohand ! Je vais regarder ça 🙂

En plus j’ai un lave-vaisselle Bosch Home Connect donc ça m’arrange 😃

---

<div class="post-metadata">

**Author:** ![cursor-bot](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cursor-bot/32/22252_2.png) [@cursor-bot](https://community.gladysassistant.com/u/cursor-bot)\
**Post date:** [Août 17, 2026, 12:06 UTC](https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227/4 "2026-08-17T12:06:05Z")

</div>

Salut tout le monde !

Ce sujet est désormais **en cours de développement**.

Une PR a été ouverte pour supporter les lave-vaisselle Matter :

> <https://github.com/GladysAssistant/Gladys/pull/2925>
>
> Implements feature request: https://community.gladysassistant.com/t/matter-integ…ration-lave-vaisselle/10227
> 
> \### Description
> 
> A Matter dishwasher — a real one, or a bridge such as the Home Connect Matterbridge plugin discussed on the forum — was only partly usable in Gladys today: the \`OperationalState\` and \`DishwasherAlarm\` clusters were simply ignored during discovery, and the door contact ended up as an anonymous read-only switch feature. The forum topic asks for the "General Status", "Program in progress" and "Door Open" values to become real Gladys features.
> 
> This PR was produced by an automated run.
> 
> \*\*What is in scope\*\*
> 
> \- A new \`dishwasher\` device feature category, with \`state\` (the operational state of the appliance) and the six faults of the Matter Dishwasher Alarm cluster (\`inflow-error\`, \`drain-error\`, \`door-error\`, \`temperature-too-low\`, \`temperature-too-high\`, \`water-level-error\`), each as its own binary feature so a scene can trigger on a single fault.
> \- A \`DISHWASHER\_STATE\` enum aligned one to one with the Matter \`OperationalStateEnum\` (Stopped / Running / Paused / Error). A manufacturer-specific state (Matter reserves 0x80-0xBF) is published raw and displayed as unknown. "Program in progress" is \`state = Running\`.
> \- Dishwasher endpoint detection: an endpoint is treated as a dishwasher when it declares the Matter Dishwasher device type (0x0075), \*\*or\*\* when it exposes a dishwasher-specific cluster (\`DishwasherAlarm\` / \`DishwasherMode\`) — bridges frequently declare a generic device type, which is exactly the Home Connect case. \`OperationalState\` is a cluster shared by every Matter appliance, so it is only mapped for those endpoints: a laundry washer or an oven keeps behaving exactly as it does today.
> \- Only the alarms the appliance declares in the cluster's \`Supported\` bitmap get a feature, so no feature stays stuck at zero forever. When the bitmap cannot be read, all six are exposed.
> \- On a dishwasher endpoint, the \`BooleanState\` cluster is now mapped to an \*\*opening-sensor\*\* door feature instead of a read-only switch. The \`external\_id\` and the published values are unchanged (\`true\` = contact closed = \`OPENING\_SENSOR\_STATE.CLOSE\`), only the category and the feature name are refined — no state history is lost.
> \- Full plumbing: discovery (\`convertToGladysDevice\`), subscriptions (\`listenToStateChange\`), initial state read (\`readInitialDeviceStates\`), front icons, dashboard rendering of the state and of the alarms, MQTT catalog defaults, and en/fr/de translations.
> 
> \*\*What is deliberately out of scope\*\* (can follow in later PRs, none of it is required to make a dishwasher useful today)
> 
> \- \`DishwasherMode\` (selecting or reading the wash program) — it needs a program taxonomy and \`supported\_options\` work of its own.
> \- The \`OperationalState\` Start / Stop / Pause / Resume commands: the category is read-only for now, powering the appliance still goes through the existing \`OnOff\` switch feature.
> \- \`countdownTime\` (remaining time), \`currentPhase\`/\`phaseList\`, and \`TemperatureControl\`.
> \- The other Matter appliance device types that share \`OperationalState\` (laundry washer, laundry dryer, oven, refrigerator). The detection helper is written so they can be added without touching the dishwasher path.
> 
> \*\*\`docs/specs/device-feature-categories.md\` checklist\*\*
> 
> \- No brand or vendor name in the category or type names; the category describes a dishwashing appliance, whatever the protocol.
> \- No existing category could hold the operational state of an appliance without distorting its meaning. Conversely, the door contact reuses the existing \`opening-sensor\` category rather than getting a dishwasher-specific type, and the appliance's on/off, water temperature and consumption stay on \`switch\`, \`temperature-sensor\` and \`energy-sensor\` — the category holds only the metrics intrinsic to running a dish program.
> \- Semantics follow the Matter model by default: \`DISHWASHER\_STATE\` reuses the \`OperationalStateEnum\` values as-is, and the fault types are the six alarms of the Dishwasher Alarm cluster, one atomic value each.
> \- Per-device support is not expressed in the taxonomy: the appliance's \`Supported\` alarm bitmap decides which features exist.
> \- Naming is kebab-case, English, protocol-free; the new constants carry an inline scope comment stating their boundary with neighbouring categories and their value conventions.
> \- Translations added to \`en.json\`, \`fr.json\` and \`de.json\`, including the \`deviceFeatureValue\` labels of the state enum. The category has no unit, so \`DEVICE\_FEATURE\_UNITS\_BY\_CATEGORY\` is untouched. History grouping falls into the "other" group, like \`vacuum-cleaner\`.
> \- The spec's own contracts are unchanged by this PR, so the spec file itself needs no edit.
> 
> \## Forum
> 
> Forum: https://community.gladysassistant.com/t/matter-integration-lave-vaisselle/10227
> 
> \### Checklist
> 
> \- \[x\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[x\] No undocumented breaking change
> 
> Tests added: a new \`dishwasherMatterMapping\` unit suite, plus dishwasher cases in \`convertToGladysDevice\`, \`listenToStateChange\` and \`readInitialDeviceStates\` covering every added line and branch (device-type detection, bridge detection, non-dishwasher appliances left untouched, supported/unsupported alarm bitmaps, unreadable attributes).
> 
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_01REGRUvErzpwtSrsi9gKh4J)\_
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added support for Matter-connected dishwashers.
> \* Displays stopped, running, paused, and error states.
> \* Reports water-inflow, drain, door, temperature, and water-level alarms.
> \* Maps dishwasher door status to a dedicated sensor.
> \* Added dishwasher icons and localized labels in English, French, and German.
> \* \*\*Bug Fixes\*\*
> \* Unknown or unavailable states now display clear fallback messages.
> \* \*\*Tests\*\*
> \* Expanded coverage for dishwasher detection, states, alarms, and error handling.

N’hésitez pas à suivre la PR, à tester dès que possible et à faire vos retours ici.
