# Matter : Ajout cluster "Boolean" pour Aqara Door and Window Sensor P2

**URL:** <https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131>\
**Category:** Demandes livrées\
**Tags:** matter\
**Created:** [Mars 13, 2026, 8:35 UTC](https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131 "2026-03-13T08:35:51Z")\
**Posts on this page:** 4\
**Page:** 1

<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:** [Mars 13, 2026, 8:35 UTC](https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131/1 "2026-03-13T08:35:51Z")

</div>

Ajout d’un nouveau cluster Matter pour gérer un capteur Aqara.

Suite à [Pb avec les boutons BILRESA dual button d’IKEA - #16 par micmac](https://community.gladysassistant.com/t/pb-avec-les-boutons-bilresa-dual-button-d-ikea/10122/16)

```auto
{
    "node_id": "17058259759023159825",
    "is_connected": true,
    "devices": [
      {
        "name": "MA-contactsensor",
        "number": "1",
        "cluster_clients": [
          {
            "id": "3",
            "name": "Identify",
            "attributes": [
              "0",
              "1",
              "65528",
              "65529",
              "65531",
              "65532",
              "65533",
              "identifyTime",
              "identifyType",
              "clusterRevision",
              "featureMap",
              "attributeList",
              "acceptedCommandList",
              "generatedCommandList"
            ],
            "commands": [
              "0",
              "64",
              "identify",
              "triggerEffect"
            ],
            "all_keys": [
              "id",
              "name",
              "revision",
              "_type",
              "supportedFeatures",
              "isUnknown",
              "endpointId",
              "attributes",
              "events",
              "commands",
              "subscribeAllAttributes",
              "_triggerAttributeUpdate",
              "_triggerEventUpdate",
              "isAttributeSupported",
              "isAttributeSupportedByName",
              "isCommandSupported",
              "isCommandSupportedByName",
              "getIdentifyTimeAttribute",
              "setIdentifyTimeAttribute",
              "subscribeIdentifyTimeAttribute",
              "addIdentifyTimeAttributeListener",
              "removeIdentifyTimeAttributeListener",
              "getIdentifyTypeAttribute",
              "setIdentifyTypeAttribute",
              "subscribeIdentifyTypeAttribute",
              "addIdentifyTypeAttributeListener",
              "removeIdentifyTypeAttributeListener",
              "getClusterRevisionAttribute",
              "setClusterRevisionAttribute",
              "subscribeClusterRevisionAttribute",
              "addClusterRevisionAttributeListener",
              "removeClusterRevisionAttributeListener",
              "getFeatureMapAttribute",
              "setFeatureMapAttribute",
              "subscribeFeatureMapAttribute",
              "addFeatureMapAttributeListener",
              "removeFeatureMapAttributeListener",
              "getAttributeListAttribute",
              "setAttributeListAttribute",
              "subscribeAttributeListAttribute",
              "addAttributeListAttributeListener",
              "removeAttributeListAttributeListener",
              "getAcceptedCommandListAttribute",
              "setAcceptedCommandListAttribute",
              "subscribeAcceptedCommandListAttribute",
              "addAcceptedCommandListAttributeListener",
              "removeAcceptedCommandListAttributeListener",
              "getGeneratedCommandListAttribute",
              "setGeneratedCommandListAttribute",
              "subscribeGeneratedCommandListAttribute",
              "addGeneratedCommandListAttributeListener",
              "removeGeneratedCommandListAttributeListener",
              "identify",
              "triggerEffect"
            ]
          },
          {
            "id": "29",
            "name": "Descriptor",
            "attributes": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "65528",
              "65529",
              "65531",
              "65532",
              "65533",
              "deviceTypeList",
              "serverList",
              "clientList",
              "partsList",
              "clusterRevision",
              "featureMap",
              "attributeList",
              "acceptedCommandList",
              "generatedCommandList",
              "tagList"
            ],
            "commands": [],
            "all_keys": [
              "id",
              "name",
              "revision",
              "_type",
              "supportedFeatures",
              "isUnknown",
              "endpointId",
              "attributes",
              "events",
              "commands",
              "subscribeAllAttributes",
              "_triggerAttributeUpdate",
              "_triggerEventUpdate",
              "isAttributeSupported",
              "isAttributeSupportedByName",
              "isCommandSupported",
              "isCommandSupportedByName",
              "getDeviceTypeListAttribute",
              "setDeviceTypeListAttribute",
              "subscribeDeviceTypeListAttribute",
              "addDeviceTypeListAttributeListener",
              "removeDeviceTypeListAttributeListener",
              "getServerListAttribute",
              "setServerListAttribute",
              "subscribeServerListAttribute",
              "addServerListAttributeListener",
              "removeServerListAttributeListener",
              "getClientListAttribute",
              "setClientListAttribute",
              "subscribeClientListAttribute",
              "addClientListAttributeListener",
              "removeClientListAttributeListener",
              "getPartsListAttribute",
              "setPartsListAttribute",
              "subscribePartsListAttribute",
              "addPartsListAttributeListener",
              "removePartsListAttributeListener",
              "getClusterRevisionAttribute",
              "setClusterRevisionAttribute",
              "subscribeClusterRevisionAttribute",
              "addClusterRevisionAttributeListener",
              "removeClusterRevisionAttributeListener",
              "getFeatureMapAttribute",
              "setFeatureMapAttribute",
              "subscribeFeatureMapAttribute",
              "addFeatureMapAttributeListener",
              "removeFeatureMapAttributeListener",
              "getAttributeListAttribute",
              "setAttributeListAttribute",
              "subscribeAttributeListAttribute",
              "addAttributeListAttributeListener",
              "removeAttributeListAttributeListener",
              "getAcceptedCommandListAttribute",
              "setAcceptedCommandListAttribute",
              "subscribeAcceptedCommandListAttribute",
              "addAcceptedCommandListAttributeListener",
              "removeAcceptedCommandListAttributeListener",
              "getGeneratedCommandListAttribute",
              "setGeneratedCommandListAttribute",
              "subscribeGeneratedCommandListAttribute",
              "addGeneratedCommandListAttributeListener",
              "removeGeneratedCommandListAttributeListener",
              "getTagListAttribute",
              "setTagListAttribute",
              "subscribeTagListAttribute",
              "addTagListAttributeListener",
              "removeTagListAttributeListener"
            ]
          },
          {
            "id": "69",
            "name": "BooleanState",
            "attributes": [
              "0",
              "65528",
              "65529",
              "65531",
              "65532",
              "65533",
              "stateValue",
              "clusterRevision",
              "featureMap",
              "attributeList",
              "acceptedCommandList",
              "generatedCommandList"
            ],
            "commands": [],
            "all_keys": [
              "id",
              "name",
              "revision",
              "_type",
              "supportedFeatures",
              "isUnknown",
              "endpointId",
              "attributes",
              "events",
              "commands",
              "subscribeAllAttributes",
              "_triggerAttributeUpdate",
              "_triggerEventUpdate",
              "isAttributeSupported",
              "isAttributeSupportedByName",
              "isCommandSupported",
              "isCommandSupportedByName",
              "getStateValueAttribute",
              "setStateValueAttribute",
              "subscribeStateValueAttribute",
              "addStateValueAttributeListener",
              "removeStateValueAttributeListener",
              "getClusterRevisionAttribute",
              "setClusterRevisionAttribute",
              "subscribeClusterRevisionAttribute",
              "addClusterRevisionAttributeListener",
              "removeClusterRevisionAttributeListener",
              "getFeatureMapAttribute",
              "setFeatureMapAttribute",
              "subscribeFeatureMapAttribute",
              "addFeatureMapAttributeListener",
              "removeFeatureMapAttributeListener",
              "getAttributeListAttribute",
              "setAttributeListAttribute",
              "subscribeAttributeListAttribute",
              "addAttributeListAttributeListener",
              "removeAttributeListAttributeListener",
              "getAcceptedCommandListAttribute",
              "setAcceptedCommandListAttribute",
              "subscribeAcceptedCommandListAttribute",
              "addAcceptedCommandListAttributeListener",
              "removeAcceptedCommandListAttributeListener",
              "getGeneratedCommandListAttribute",
              "setGeneratedCommandListAttribute",
              "subscribeGeneratedCommandListAttribute",
              "addGeneratedCommandListAttributeListener",
              "removeGeneratedCommandListAttributeListener",
              "getStateChangeEvent",
              "subscribeStateChangeEvent",
              "addStateChangeEventListener",
              "removeStateChangeEventListener"
            ]
          }
        ],
        "child_endpoints": []
      },
      {
        "name": "MA-powersource",
        "number": "2",
        "cluster_clients": [
          {
            "id": "29",
            "name": "Descriptor",
            "attributes": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "65528",
              "65529",
              "65531",
              "65532",
              "65533",
              "deviceTypeList",
              "serverList",
              "clientList",
              "partsList",
              "clusterRevision",
              "featureMap",
              "attributeList",
              "acceptedCommandList",
              "generatedCommandList",
              "tagList"
            ],
            "commands": [],
            "all_keys": [
              "id",
              "name",
              "revision",
              "_type",
              "supportedFeatures",
              "isUnknown",
              "endpointId",
              "attributes",
              "events",
              "commands",
              "subscribeAllAttributes",
              "_triggerAttributeUpdate",
              "_triggerEventUpdate",
              "isAttributeSupported",
              "isAttributeSupportedByName",
              "isCommandSupported",
              "isCommandSupportedByName",
              "getDeviceTypeListAttribute",
              "setDeviceTypeListAttribute",
              "subscribeDeviceTypeListAttribute",
              "addDeviceTypeListAttributeListener",
              "removeDeviceTypeListAttributeListener",
              "getServerListAttribute",
              "setServerListAttribute",
              "subscribeServerListAttribute",
              "addServerListAttributeListener",
              "removeServerListAttributeListener",
              "getClientListAttribute",
              "setClientListAttribute",
              "subscribeClientListAttribute",
              "addClientListAttributeListener",
              "removeClientListAttributeListener",
              "getPartsListAttribute",
              "setPartsListAttribute",
              "subscribePartsListAttribute",
              "addPartsListAttributeListener",
              "removePartsListAttributeListener",
              "getClusterRevisionAttribute",
              "setClusterRevisionAttribute",
              "subscribeClusterRevisionAttribute",
              "addClusterRevisionAttributeListener",
              "removeClusterRevisionAttributeListener",
              "getFeatureMapAttribute",
              "setFeatureMapAttribute",
              "subscribeFeatureMapAttribute",
              "addFeatureMapAttributeListener",
              "removeFeatureMapAttributeListener",
              "getAttributeListAttribute",
              "setAttributeListAttribute",
              "subscribeAttributeListAttribute",
              "addAttributeListAttributeListener",
              "removeAttributeListAttributeListener",
              "getAcceptedCommandListAttribute",
              "setAcceptedCommandListAttribute",
              "subscribeAcceptedCommandListAttribute",
              "addAcceptedCommandListAttributeListener",
              "removeAcceptedCommandListAttributeListener",
              "getGeneratedCommandListAttribute",
              "setGeneratedCommandListAttribute",
              "subscribeGeneratedCommandListAttribute",
              "addGeneratedCommandListAttributeListener",
              "removeGeneratedCommandListAttributeListener",
              "getTagListAttribute",
              "setTagListAttribute",
              "subscribeTagListAttribute",
              "addTagListAttributeListener",
              "removeTagListAttributeListener"
            ]
          },
          {
            "id": "47",
            "name": "PowerSource",
            "attributes": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31",
              "65528",
              "65529",
              "65531",
              "65532",
              "65533",
              "status",
              "order",
              "description",
              "endpointList",
              "wiredAssessedInputVoltage",
              "wiredAssessedInputFrequency",
              "wiredCurrentType",
              "wiredAssessedCurrent",
              "wiredNominalVoltage",
              "wiredMaximumCurrent",
              "wiredPresent",
              "activeWiredFaults",
              "batVoltage",
              "batPercentRemaining",
              "batTimeRemaining",
              "batChargeLevel",
              "batReplacementNeeded",
              "batReplaceability",
              "batPresent",
              "activeBatFaults",
              "batReplacementDescription",
              "batCommonDesignation",
              "batAnsiDesignation",
              "batIecDesignation",
              "batApprovedChemistry",
              "batCapacity",
              "batQuantity",
              "batChargeState",
              "batTimeToFullCharge",
              "batFunctionalWhileCharging",
              "batChargingCurrent",
              "activeBatChargeFaults",
              "clusterRevision",
              "featureMap",
              "attributeList",
              "acceptedCommandList",
              "generatedCommandList"
            ],
            "commands": [],
            "all_keys": [
              "id",
              "name",
              "revision",
              "_type",
              "supportedFeatures",
              "isUnknown",
              "endpointId",
              "attributes",
              "events",
              "commands",
              "subscribeAllAttributes",
              "_triggerAttributeUpdate",
              "_triggerEventUpdate",
              "isAttributeSupported",
              "isAttributeSupportedByName",
              "isCommandSupported",
              "isCommandSupportedByName",
              "getStatusAttribute",
              "setStatusAttribute",
              "subscribeStatusAttribute",
              "addStatusAttributeListener",
              "removeStatusAttributeListener",
              "getOrderAttribute",
              "setOrderAttribute",
              "subscribeOrderAttribute",
              "addOrderAttributeListener",
              "removeOrderAttributeListener",
              "getDescriptionAttribute",
              "setDescriptionAttribute",
              "subscribeDescriptionAttribute",
              "addDescriptionAttributeListener",
              "removeDescriptionAttributeListener",
              "getEndpointListAttribute",
              "setEndpointListAttribute",
              "subscribeEndpointListAttribute",
              "addEndpointListAttributeListener",
              "removeEndpointListAttributeListener",
              "getWiredAssessedInputVoltageAttribute",
              "setWiredAssessedInputVoltageAttribute",
              "subscribeWiredAssessedInputVoltageAttribute",
              "addWiredAssessedInputVoltageAttributeListener",
              "removeWiredAssessedInputVoltageAttributeListener",
              "getWiredAssessedInputFrequencyAttribute",
              "setWiredAssessedInputFrequencyAttribute",
              "subscribeWiredAssessedInputFrequencyAttribute",
              "addWiredAssessedInputFrequencyAttributeListener",
              "removeWiredAssessedInputFrequencyAttributeListener",
              "getWiredCurrentTypeAttribute",
              "setWiredCurrentTypeAttribute",
              "subscribeWiredCurrentTypeAttribute",
              "addWiredCurrentTypeAttributeListener",
              "removeWiredCurrentTypeAttributeListener",
              "getWiredAssessedCurrentAttribute",
              "setWiredAssessedCurrentAttribute",
              "subscribeWiredAssessedCurrentAttribute",
              "addWiredAssessedCurrentAttributeListener",
              "removeWiredAssessedCurrentAttributeListener",
              "getWiredNominalVoltageAttribute",
              "setWiredNominalVoltageAttribute",
              "subscribeWiredNominalVoltageAttribute",
              "addWiredNominalVoltageAttributeListener",
              "removeWiredNominalVoltageAttributeListener",
              "getWiredMaximumCurrentAttribute",
              "setWiredMaximumCurrentAttribute",
              "subscribeWiredMaximumCurrentAttribute",
              "addWiredMaximumCurrentAttributeListener",
              "removeWiredMaximumCurrentAttributeListener",
              "getWiredPresentAttribute",
              "setWiredPresentAttribute",
              "subscribeWiredPresentAttribute",
              "addWiredPresentAttributeListener",
              "removeWiredPresentAttributeListener",
              "getActiveWiredFaultsAttribute",
              "setActiveWiredFaultsAttribute",
              "subscribeActiveWiredFaultsAttribute",
              "addActiveWiredFaultsAttributeListener",
              "removeActiveWiredFaultsAttributeListener",
              "getBatVoltageAttribute",
              "setBatVoltageAttribute",
              "subscribeBatVoltageAttribute",
              "addBatVoltageAttributeListener",
              "removeBatVoltageAttributeListener",
              "getBatPercentRemainingAttribute",
              "setBatPercentRemainingAttribute",
              "subscribeBatPercentRemainingAttribute",
              "addBatPercentRemainingAttributeListener",
              "removeBatPercentRemainingAttributeListener",
              "getBatTimeRemainingAttribute",
              "setBatTimeRemainingAttribute",
              "subscribeBatTimeRemainingAttribute",
              "addBatTimeRemainingAttributeListener",
              "removeBatTimeRemainingAttributeListener",
              "getBatChargeLevelAttribute",
              "setBatChargeLevelAttribute",
              "subscribeBatChargeLevelAttribute",
              "addBatChargeLevelAttributeListener",
              "removeBatChargeLevelAttributeListener",
              "getBatReplacementNeededAttribute",
              "setBatReplacementNeededAttribute",
              "subscribeBatReplacementNeededAttribute",
              "addBatReplacementNeededAttributeListener",
              "removeBatReplacementNeededAttributeListener",
              "getBatReplaceabilityAttribute",
              "setBatReplaceabilityAttribute",
              "subscribeBatReplaceabilityAttribute",
              "addBatReplaceabilityAttributeListener",
              "removeBatReplaceabilityAttributeListener",
              "getBatPresentAttribute",
              "setBatPresentAttribute",
              "subscribeBatPresentAttribute",
              "addBatPresentAttributeListener",
              "removeBatPresentAttributeListener",
              "getActiveBatFaultsAttribute",
              "setActiveBatFaultsAttribute",
              "subscribeActiveBatFaultsAttribute",
              "addActiveBatFaultsAttributeListener",
              "removeActiveBatFaultsAttributeListener",
              "getBatReplacementDescriptionAttribute",
              "setBatReplacementDescriptionAttribute",
              "subscribeBatReplacementDescriptionAttribute",
              "addBatReplacementDescriptionAttributeListener",
              "removeBatReplacementDescriptionAttributeListener",
              "getBatCommonDesignationAttribute",
              "setBatCommonDesignationAttribute",
              "subscribeBatCommonDesignationAttribute",
              "addBatCommonDesignationAttributeListener",
              "removeBatCommonDesignationAttributeListener",
              "getBatAnsiDesignationAttribute",
              "setBatAnsiDesignationAttribute",
              "subscribeBatAnsiDesignationAttribute",
              "addBatAnsiDesignationAttributeListener",
              "removeBatAnsiDesignationAttributeListener",
              "getBatIecDesignationAttribute",
              "setBatIecDesignationAttribute",
              "subscribeBatIecDesignationAttribute",
              "addBatIecDesignationAttributeListener",
              "removeBatIecDesignationAttributeListener",
              "getBatApprovedChemistryAttribute",
              "setBatApprovedChemistryAttribute",
              "subscribeBatApprovedChemistryAttribute",
              "addBatApprovedChemistryAttributeListener",
              "removeBatApprovedChemistryAttributeListener",
              "getBatCapacityAttribute",
              "setBatCapacityAttribute",
              "subscribeBatCapacityAttribute",
              "addBatCapacityAttributeListener",
              "removeBatCapacityAttributeListener",
              "getBatQuantityAttribute",
              "setBatQuantityAttribute",
              "subscribeBatQuantityAttribute",
              "addBatQuantityAttributeListener",
              "removeBatQuantityAttributeListener",
              "getBatChargeStateAttribute",
              "setBatChargeStateAttribute",
              "subscribeBatChargeStateAttribute",
              "addBatChargeStateAttributeListener",
              "removeBatChargeStateAttributeListener",
              "getBatTimeToFullChargeAttribute",
              "setBatTimeToFullChargeAttribute",
              "subscribeBatTimeToFullChargeAttribute",
              "addBatTimeToFullChargeAttributeListener",
              "removeBatTimeToFullChargeAttributeListener",
              "getBatFunctionalWhileChargingAttribute",
              "setBatFunctionalWhileChargingAttribute",
              "subscribeBatFunctionalWhileChargingAttribute",
              "addBatFunctionalWhileChargingAttributeListener",
              "removeBatFunctionalWhileChargingAttributeListener",
              "getBatChargingCurrentAttribute",
              "setBatChargingCurrentAttribute",
              "subscribeBatChargingCurrentAttribute",
              "addBatChargingCurrentAttributeListener",
              "removeBatChargingCurrentAttributeListener",
              "getActiveBatChargeFaultsAttribute",
              "setActiveBatChargeFaultsAttribute",
              "subscribeActiveBatChargeFaultsAttribute",
              "addActiveBatChargeFaultsAttributeListener",
              "removeActiveBatChargeFaultsAttributeListener",
              "getClusterRevisionAttribute",
              "setClusterRevisionAttribute",
              "subscribeClusterRevisionAttribute",
              "addClusterRevisionAttributeListener",
              "removeClusterRevisionAttributeListener",
              "getFeatureMapAttribute",
              "setFeatureMapAttribute",
              "subscribeFeatureMapAttribute",
              "addFeatureMapAttributeListener",
              "removeFeatureMapAttributeListener",
              "getAttributeListAttribute",
              "setAttributeListAttribute",
              "subscribeAttributeListAttribute",
              "addAttributeListAttributeListener",
              "removeAttributeListAttributeListener",
              "getAcceptedCommandListAttribute",
              "setAcceptedCommandListAttribute",
              "subscribeAcceptedCommandListAttribute",
              "addAcceptedCommandListAttributeListener",
              "removeAcceptedCommandListAttributeListener",
              "getGeneratedCommandListAttribute",
              "setGeneratedCommandListAttribute",
              "subscribeGeneratedCommandListAttribute",
              "addGeneratedCommandListAttributeListener",
              "removeGeneratedCommandListAttributeListener",
              "getWiredFaultChangeEvent",
              "subscribeWiredFaultChangeEvent",
              "addWiredFaultChangeEventListener",
              "removeWiredFaultChangeEventListener",
              "getBatFaultChangeEvent",
              "subscribeBatFaultChangeEvent",
              "addBatFaultChangeEventListener",
              "removeBatFaultChangeEventListener",
              "getBatChargeFaultChangeEvent",
              "subscribeBatChargeFaultChangeEvent",
              "addBatChargeFaultChangeEventListener",
              "removeBatChargeFaultChangeEventListener"
            ]
          }
        ],
        "child_endpoints": []
      }
    ],
    "node_information": {
      "vendor_name": "Aqara",
      "product_name": "Aqara Door and Window Sensor P2",
      "product_id": 8194,
      "product_label": "Aqara Door and Window Sensor P2",
      "vendor_id": 4447
    }
  }

```

---

<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:** [Mars 13, 2026, 9:45 UTC](https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131/2 "2026-03-13T09:45:01Z")

</div>

La PR :

> <https://github.com/GladysAssistant/Gladys/pull/2496>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affect the code, did you write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- \[x\] If you are adding a new feature/service, did you run the integration comparator? (\`npm run compare-translations\` on front)
> \- \[x\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community (\[forum\](https://community.gladysassistant.com/)) for testing before merging.
> \- \[x\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
> \- \[x\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).
> \- \[x\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> Fix https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131/1 & https://community.gladysassistant.com/t/matter-ajout-cluster-switch-pour-ikea-bilresa-dual-button/10130/1

Testé avec Matterbridge uniquement, image Docker de test buildée en amd64 sur :

```auto
gladysassistant/gladys:matter-add-boolean-and-switch-devices

```

---

<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:** [Mars 20, 2026, 2:30 UTC](https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131/3 "2026-03-20T14:30:31Z")

</div>

Disponible dans Gladys Assistant 4.71:

> [@Gladys Assistant 4.71 : Nuki & Matter](https://community.gladysassistant.com/t/gladys-assistant-4-71-nuki-matter/10142):
>
> Cette nouvelle version apporte des améliorations importantes sur Matter, Nuki, et plusieurs corrections de bugs. locked_with_key Nuki v1.0.1 : Une intégration plus robuste L’intégration Nuki a été mise à jour avec plusieurs correctifs importants : Au démarrage, Gladys vérifie maintenant que le service est bien configuré avant de démarrer, pour éviter les erreurs dans les logs. Les abonnements MQTT sont désormais limités aux seuls appareils Nuki enregistrés, ce qui évite des écoutes inutil…

---

<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:** [Mars 20, 2026, 2:30 UTC](https://community.gladysassistant.com/t/matter-ajout-cluster-boolean-pour-aqara-door-and-window-sensor-p2/10131/4 "2026-03-20T14:30:34Z")

</div>


