Adeo LDSENK09 Key Fob Buttons

Here is a blueprint you can use to repurpose Adeo LDSENK09 key fobs.

Those are zigbee devices similar to Linkind ones and are available at Leroy Merlin under the Lexman Brand and sold to use with the Leroy Merlin Enki ecosystem. They’re supposed to be used to enable/disable an alarm. Since buttons are not recessed, they are painful to use for their initial purpose as it’s easy to press a button by mistake.

Those key fobs can be fairly cheap, right now a pack of 3 is on sale for less than 5 euros in France.

The SOS button sends its payload only after a long press. The other 3 functions on a single press.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

blueprint:
  name: Adeo LDSENK09 buttons
  description: Control devices trough an Adeo LDSENK09
  source_url: https://gist.github.com/Chartreusito/bace65d3644543c4833deba88e799372
  domain: automation
  author: Chartreusito
  homeassistant:
    min_version: 2024.12.0
  input:
    section_keyfob:
      name: '## Key-Fob selection'
      icon: mdi:alarm-panel
      description: ''
      collapsed: false
      input:
        controller:
          name: Key-Fob
          description: The name of the key-fob in Zigbee2MQTT
          default: ''
        base_topic:
          name: Root/Base mqtt topic from Zigbee2MQTT
          description: The Root/base topic as configured in Zigbee2MQTT
          default: zigbee2mqtt
    section_alarm:
      name: '## Alarm configuration'
      icon: mdi:shield-home
      description: ''
      collapsed: false
      input:
        i_action_button_arm_partial_zones:
          name: Action for arm home button
          selector:
            action: {}
          default: []
        i_action_button_arm_all_zones:
          name: Action for arm away button
          selector:
            action: {}
          default: []
        i_action_button_disarm:
          name: Action for disarm button
          selector:
            action: {}
          default: []
        i_action_button_panic:
          name: Action for panic (SOS) button
          selector:
            action: {}
          default: []
mode: parallel
max_exceeded: silent
max: 2
trigger_variables:
  base_topic: !input base_topic
  controller: !input controller
trigger:
- platform: mqtt
  topic: '{{ base_topic ~ ''/'' ~ controller }}'
action:
- variables:
    command: '{{ trigger.payload_json.action }}'
- choose:
  - conditions: '{{ command == ''arm_day_zones'' }}'
    sequence: !input i_action_button_arm_partial_zones
  - conditions: '{{ command == ''arm_all_zones'' }}'
    sequence: !input i_action_button_arm_all_zones
  - conditions: '{{ command == ''disarm'' }}'
    sequence: !input i_action_button_disarm
  - conditions: '{{ command == ''panic'' }}'
    sequence: !input i_action_button_panic