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.
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: falseYou 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