This BP has been built for MOES Smart knob paired with ZHA only. you can set different action for the 2 Mods of the rotary knob.
MOD 1:
Single-double-hold press + rotate left/right
MOD 2:
single-double press + rotate left/right (no hold on mod 2)
TRIPLE CLICK to switch between mode
blueprint:
name: "MOES Smart Knob (ZHA) - Azioni personalizzabili per modalita'"
description: >
Blueprint per lo smart knob MOES collegato via ZHA, con 2 modalita'
(switch_mode, cambiate con il triple click). Ogni evento fisico ha un
campo "azioni" vuoto da popolare tramite l'editor azioni di Home
Assistant (UI a blocchi o YAML).
IMPORTANTE - leggere prima di usare:
1) Crea manualmente un helper "input_boolean" (Impostazioni > Dispositivi
e servizi > Helper > Interruttore), es. input_boolean.knob_modo.
L'helper viene aggiornato leggendo il valore assoluto dell'attributo
switch_mode ad ogni triple-click. L'Unica cosa da fare è determinare quale
valore (0 o 1) corrisponda alla modalita' fisica, vedi il campo
"Valore attributo = modalita' 2" negli input del blueprint. Finche' non
viene fatto il primo triple-click dopo l'installazione, lo stato dell'helper e'
indeterminato (parte da OFF di default).
2) Il doppio click genera lo stesso evento ZHA in entrambe le modalita'
(il device non lo distingue a livello di payload). Per questo motivo,
e solo per questo evento, lo smistamento mod.1/mod.2 avviene tramite
l'helper del punto 1 e non tramite il campo azioni da solo.
3) L'hold esiste solo in modalita' 1. In modalita' 2 il device NON genera
alcun evento ZHA per la pressione lunga.
4) Identificare quale modalità sia la 1 e quale la 2.
Sviluppatori > Eventi, ascolta "zha_event" --> eseguire triple click
mentre il knob è fisicamente nella modalita' che viene considerata
"modalità 1". il campo data.args.value dell'evento con command attribute_updated contiene ora il valore della modalità due (switch_mode). Inserisci
qui quel valore.
domain: automation
input:
knob_device:
name: Smart knob (dispositivo ZHA)
description: Seleziona il device MOES nell'elenco (integrazione ZHA).
selector:
device:
integration: zha
mode_helper:
name: Helper modalita'
description: >
input_boolean da creare a mano. Il valore viene impostato in automatico
ad ogni triple-click. Usato SOLO per smistare
il doppio click.
selector:
entity:
domain: input_boolean
mode2_attribute_value:
name: Valore attributo switch_mode = modalita' 2
description: >
Il triple click alterna l'attributo switch_mode tra 0 e 1. Vedi punto 4 sopra.
default: "0"
selector:
select:
options:
- "0"
- "1"
action_click_m1:
name: "[Mod.1] Click singolo"
default: []
selector:
action: {}
action_doppio_m1:
name: "[Mod.1] Doppio click"
default: []
selector:
action: {}
action_hold_m1:
name: "[Mod.1] Hold (pressione lunga)"
default: []
selector:
action: {}
action_rotate_dx_m1:
name: "[Mod.1] Rotazione destra"
default: []
selector:
action: {}
action_rotate_sx_m1:
name: "[Mod.1] Rotazione sinistra"
default: []
selector:
action: {}
action_click_m2:
name: "[Mod.2] Click singolo"
default: []
selector:
action: {}
action_doppio_m2:
name: "[Mod.2] Doppio click"
default: []
selector:
action: {}
action_rotate_dx_m2:
name: "[Mod.2] Rotazione destra"
default: []
selector:
action: {}
action_rotate_sx_m2:
name: "[Mod.2] Rotazione sinistra"
default: []
selector:
action: {}
variables:
mode_helper: !input mode_helper
mode2_attribute_value: !input mode2_attribute_value
trigger:
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: remote_button_short_press
id: click_singolo_m1
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: remote_button_double_press
id: click_doppio
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: remote_button_long_press
id: hold
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: right
id: rotate_destra_m1
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: left
id: rotate_sinistra_m1
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: toggle
id: click_singolo_m2
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: step
cluster_id: 8
id: rotate_m2
- platform: event
event_type: zha_event
event_data:
device_id: !input knob_device
command: attribute_updated
id: cambio_modo
condition: []
action:
- choose:
# ---------- MODALITA' 1 ----------
- conditions: "{{ trigger.id == 'click_singolo_m1' }}"
sequence: !input action_click_m1
- conditions: "{{ trigger.id == 'hold' }}"
sequence: !input action_hold_m1
- conditions: "{{ trigger.id == 'rotate_destra_m1' }}"
sequence: !input action_rotate_dx_m1
- conditions: "{{ trigger.id == 'rotate_sinistra_m1' }}"
sequence: !input action_rotate_sx_m1
# ---------- MODALITA' 2 ----------
- conditions: "{{ trigger.id == 'click_singolo_m2' }}"
sequence: !input action_click_m2
- conditions: "{{ trigger.id == 'rotate_m2' and trigger.event.data.params.step_mode == 0 }}"
sequence: !input action_rotate_dx_m2
- conditions: "{{ trigger.id == 'rotate_m2' and trigger.event.data.params.step_mode == 1 }}"
sequence: !input action_rotate_sx_m2
# ---------- DOPPIO CLICK: evento identico in entrambe le modalita', smistato via helper ----------
- conditions: "{{ trigger.id == 'click_doppio' and is_state(mode_helper, 'off') }}"
sequence: !input action_doppio_m1
- conditions: "{{ trigger.id == 'click_doppio' and is_state(mode_helper, 'on') }}"
sequence: !input action_doppio_m2
# ---------- TRIPLE CLICK: aggiorna l'helper leggendo il valore assoluto ----------
- conditions: >
{{ trigger.id == 'cambio_modo'
and (trigger.event.data.args.value | int) == (mode2_attribute_value | int) }}
sequence:
- service: input_boolean.turn_on
target:
entity_id: "{{ mode_helper }}"
- conditions: >
{{ trigger.id == 'cambio_modo'
and (trigger.event.data.args.value | int) != (mode2_attribute_value | int) }}
sequence:
- service: input_boolean.turn_off
target:
entity_id: "{{ mode_helper }}"
mode: queued
max: 10