Files
home-assistant-blueprints/blueprints/automation/inovelli_mode_cycling.yaml
John Ogle 988a7e0933 Fix inovelli_mode_cycling blueprint: remove invalid 'example' key
The 'example' key is not a valid blueprint input parameter in Home Assistant.
Moved the example value into the description field instead.
2025-12-20 15:02:37 -08:00

93 lines
2.9 KiB
YAML

# blueprints/automation/inovelli_mode_cycling.yaml
#
# Inovelli Config Button Mode Cycling
#
# Cycles through lighting modes when the config button is pressed on an
# Inovelli Blue Dimmer Switch (VZM31-SN) via Zigbee2MQTT.
#
# Features:
# - Cycles through available modes in input_select
# - Updates LED color to match new mode (ROYGBIV scheme)
# - Flashes LED to confirm mode change (3-second pulse)
#
# Requirements:
# - Inovelli Blue Dimmer (VZM31-SN) paired with Zigbee2MQTT
# - input_select helper with available modes
# - packages/adaptive_lighting_global.yaml for mode colors
#
# Reference: ADAPTIVE_LIGHTING_CONTROL_SYSTEM_DESIGN.md lines 144-182
blueprint:
name: Inovelli Config Button Mode Cycling
description: Press config button to cycle through lighting modes with LED feedback
domain: automation
input:
switch_action_sensor:
name: Switch Action Sensor
description: The sensor entity that reports button presses (sensor.xxx_action)
selector:
entity:
domain: sensor
integration: mqtt
mode_input_select:
name: Mode Input Select
description: The input_select helper that tracks current lighting mode
selector:
entity:
domain: input_select
led_color_entity:
name: LED Color Entity
description: The number entity for LED color when on (number.xxx_led_color_when_on)
selector:
entity:
domain: number
zigbee2mqtt_device_name:
name: Zigbee2MQTT Device Name
description: The device name in Zigbee2MQTT (for LED flash effect via MQTT). Example "bedroom_switch"
selector:
text:
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: !input switch_action_sensor
to: "config_single"
action:
- variables:
mode_select: !input mode_input_select
zigbee2mqtt_device_name: !input zigbee2mqtt_device_name
current_mode: "{{ states(mode_select) }}"
available_modes: "{{ state_attr(mode_select, 'options') }}"
current_index: "{{ available_modes.index(current_mode) }}"
next_index: "{{ (current_index + 1) % (available_modes | length) }}"
next_mode: "{{ available_modes[next_index] }}"
mode_colors: "{{ states('input_text.adaptive_lighting_mode_colors') | from_json }}"
next_color: "{{ mode_colors.get(next_mode, 170) }}"
# Change to next mode
- service: input_select.select_option
target:
entity_id: !input mode_input_select
data:
option: "{{ next_mode }}"
# Update LED color
- service: number.set_value
target:
entity_id: !input led_color_entity
data:
value: "{{ next_color }}"
# Flash LED to confirm mode change (3-second pulse)
- service: mqtt.publish
data:
topic: "zigbee2mqtt/{{ zigbee2mqtt_device_name }}/set"
payload: >-
{"led_effect": {"effect": "pulse", "color": {{ next_color }}, "level": 100, "duration": 3}}