Using/binding a Matter contact sensor?

The Sense by MACO | Universal and Sense by MACO | Door are Matter contact sensors for concealed installation.

Would it be possible to use or bind them to a Smart Lock as an alternative to the surface mounted Bluetooth Nuki Door Sensor? Is there API support for this?

No, there is no API für this. The only way you can use it is for exable is with Home Assistant or maybe Apple/Google Home.

Thanks for the reply.

I run Home Assistant and I’m fairly sure that both a Matter contact sensor and my Smart Lock Ultra (due to arrive soon) can be connected to a network using the Matter integration using my Connect ZBT-1 to provide the Thread border router.

However, for the state of the Matter contact sensor to be communicated to the Smart Lock Ultra there must be a mechanism to support it.

If the Smart Lock Ultra exposes a suitable endpoint then it could be possible to bind the Matter contact sensor to it (Home Assistant doesn’t yet have built-in support for Matter binding but it is possible to use a script with WebSocket to do the binding). I will try to investigate this once I have received my Smart Lock Ultra.

The Nuki Door Sensor appears to use Bluetooth to communicate with the Smart Lock Ultra. An automation to capture the state of the Matter door sensor and generate suitable Bluetooth output for the Smart Lock Ultra might be possible but could be rather tricky or even impossible …

It doesn’t matter whether you integrate your Nuki via MQTT and the door contact sensor via Zigbee2MQTT or both via Matter in Home Assistant. Both ways lead to the goal.

The important thing is that you can’t send any data from a door contact sensor to the Nuki itself, that’s simply impossible. How I ended up solving the whole thing for me personally is that I integrated my Nuki via MQTT and an Aqara door contact sensor, as well as a mini wireless switch via Zigbee2MQTT. This meant that all the devices were in my Home Assistant. Next, I changed the button on the Nuki itself to “Status” when pressed once and deactivated the double press. Finally, I wrote an automation that replaced both the Intelligent and Lock ‘n’ Go functions.

Here are the two scripts, very simple but efficient.

sequence:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: lock.nuki_smart_lock_pro
            state: unlocked
            alias: Apartment door is not locked
          - condition: state
            entity_id: binary_sensor.flur_wohnungstur_contact
            state: "off"
            alias: Apartment door is closed
    then:
      - action: lock.lock
        metadata: {}
        data: {}
        target:
          entity_id: lock.nuki_smart_lock_pro
        alias: Apartment door gets locked
    else:
      - action: lock.unlock
        metadata: {}
        data: {}
        target:
          entity_id: lock.nuki_smart_lock_pro
        alias:Apartment door gets unlocked
alias: "Function: Intelligent"
description: ""
icon: mdi:brain
sequence:
  - if:
      - condition: state
        entity_id: lock.nuki_smart_lock_pro
        state: locked
        alias:  Apartment door is closed
    then:
      - sequence:
          - action: lock.unlock
            metadata: {}
            data: {}
            target:
              entity_id: lock.nuki_smart_lock_pro
            alias: Apartment door gets unloced
          - wait_for_trigger:
              - alias: Apartment door is closed für 1 minute
                trigger: state
                entity_id:
                  - binary_sensor.flur_wohnungstur_contact
                to: "off"
                for:
                  hours: 0
                  minutes: 1
                  seconds: 0
            continue_on_timeout: false
            timeout:
              hours: 0
              minutes: 15
              seconds: 0
              milliseconds: 0
            alias: Wait 15 minutes for trigger
          - action: lock.lock
            metadata: {}
            data: {}
            target:
              entity_id: lock.nuki_smart_lock_pro
            alias: Apartment door gets locked
    else:
      - sequence:
          - wait_for_trigger:
              - alias: Apartment door is closed für 1 minute
                trigger: state
                entity_id:
                  - binary_sensor.flur_wohnungstur_contact
                to: "off"
                for:
                  hours: 0
                  minutes: 1
                  seconds: 0
            continue_on_timeout: false
            timeout:
              hours: 0
              minutes: 15
              seconds: 0
              milliseconds: 0
            alias: Apartment door is closed für 1 minute
          - action: lock.lock
            metadata: {}
            data: {}
            target:
              entity_id: lock.nuki_smart_lock_pro
            alias: Apartment door gets locked
alias: "Function: Lock 'n' Go"
description: ""
icon: mdi:lock-clock