Skip to content

Instantly share code, notes, and snippets.

@thaynes43
Created March 16, 2026 01:40
Show Gist options
  • Select an option

  • Save thaynes43/462fb88760cd3979e82e93e401ba0df5 to your computer and use it in GitHub Desktop.

Select an option

Save thaynes43/462fb88760cd3979e82e93e401ba0df5 to your computer and use it in GitHub Desktop.
inovelli mmwave control

inovelli mmWave Control

Below is a script and an example of how to call it from a bubble-card sub buttons card. You can adapt the card to be a standard button.

Script

alias: Inovelli mmWave control
description: |
  Sends a mmWave control command to an Inovelli mmWave switch via Zigbee2MQTT.
mode: single
fields:
  device:
    name: Zigbee2MQTT device name
    description: Friendly name of the device in Zigbee2MQTT
    required: true
    example: basement_rumpus_room_inovelli_presence
  command:
    name: mmWave command
    description: Control command to send
    required: true
    selector:
      select:
        options:
          - set_interference
          - clear_interference
          - reset_detection_area
          - reset_mmwave_module
sequence:
  - action: mqtt.publish
    data:
      topic: zigbee2mqtt/{{ device }}/set
      payload: |
        {{ {"mmwave_control_commands": {"controlID": command}} | tojson }}
      retain: false

Usage

You need bubble-card installed to use this but it's very close to how another buttont type would call it.

type: custom:bubble-card
card_type: sub-buttons
show_header_toggle: false
sub_button:
  main: []
  bottom:
    - name: mmWave Commands
      buttons_layout: inline
      group:
        - name: Set Interference
          icon: mdi:shield-outline
          show_state: false
          show_name: true
          content_layout: icon-top
          custom_height: 80
          tap_action:
            action: perform-action
            perform_action: script.inovelli_mmwave_control
            target: {}
            data:
              device: basement_bathroom_vanity_inovelli_presence
              command: set_interference
        - name: Clear Interference
          icon: mdi:shield-off-outline
          show_state: false
          show_name: true
          content_layout: icon-top
          custom_height: 80
          tap_action:
            action: perform-action
            perform_action: script.inovelli_mmwave_control
            target: {}
            data:
              device: basement_bathroom_vanity_inovelli_presence
              command: clear_interference
        - name: Reset Area
          icon: mdi:crop-free
          show_state: false
          show_name: true
          content_layout: icon-top
          custom_height: 80
          tap_action:
            action: perform-action
            perform_action: script.inovelli_mmwave_control
            target: {}
            data:
              device: basement_bathroom_vanity_inovelli_presence
              command: reset_detection_area
        - name: Reset Module
          icon: mdi:restart-alert
          show_state: false
          show_name: true
          content_layout: icon-top
          custom_height: 80
          tap_action:
            action: perform-action
            perform_action: script.inovelli_mmwave_control
            target: {}
            data:
              device: basement_bathroom_vanity_inovelli_presence
              command: reset_mmwave_module
  bottom_layout: inline
rows: 1.625
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment