Home Assistant: Gestire il Philips Hue Dimmer Switch con Zigbee2MQTT e Device Triggers
Scopri come ottimizzare il Philips Hue Dimmer Switch in Home Assistant usando Zigbee2MQTT e Device Triggers per un controllo avanzato e personalizzato.
Introduzione al Philips Hue Dimmer Switch e Zigbee2MQTT
Philips Hue Dimmer Switch Zigbee2MQTT è al centro della novità: Il Philips Hue Dimmer Switch è un accessorio versatile per la gestione dell'illuminazione smart, ma la sua piena potenzialità può essere sbloccata attraverso integrazioni avanzate. Utilizzando Zigbee2MQTT (Z2M) con Home Assistant, è possibile superare le limitazioni native del dispositivo e configurare azioni personalizzate. La community di Home Assistant ha sviluppato soluzioni innovative, tra cui la blueprint "Ultimate Hue Remote Controller", che sfrutta i Device Triggers per semplificare la configurazione e aggiungere funzionalità come il doppio click sintetico, una caratteristica non supportata nativamente dall'hardware. Questo approccio elimina la necessità di gestire manualmente gli argomenti MQTT o di abilitare sensori nascosti, rendendo l'integrazione più intuitiva e "frustration-free".
Risorse Utili
La Blueprint "Ultimate Hue Remote Controller"
Philips Hue Dimmer Switch Zigbee2MQTT - La blueprint "Ultimate Hue Remote Controller" è stata progettata specificamente per il Philips Hue Dimmer Switch (sia Gen 1 che Gen 2) e opera tramite Zigbee2MQTT. Il suo punto di forza risiede nell'utilizzo dei Device Triggers, che permettono di selezionare il telecomando direttamente da un elenco a discesa, semplificando notevolmente il processo di configurazione. A differenza delle soluzioni precedenti, non è più necessario inserire manualmente gli argomenti MQTT o attivare sensori legacy. La blueprint gestisce in modo intelligente le azioni dei quattro pulsanti (Superiore, Su, Giù, Inferiore), consentendo di assegnare funzioni sia al singolo click che al doppio click, oltre alla pressione prolungata (hold).
Prerequisiti per l'installazione
Per poter utilizzare questa blueprint, sono necessari alcuni prerequisiti fondamentali:
- Una installazione di Home Assistant (si raccomanda la versione 2024.x o più recente).
- Zigbee2MQTT configurato e funzionante.
- Un Philips Hue Dimmer Switch accoppiato correttamente tramite Zigbee2MQTT.

Configurazione della Blueprint
Philips Hue Dimmer Switch Zigbee2MQTT - Una volta soddisfatti i prerequisiti, è possibile importare la blueprint in Home Assistant. La configurazione è guidata e intuitiva. Si seleziona il dispositivo Philips Hue Remote dall'elenco dei dispositivi MQTT disponibili. Successivamente, è possibile personalizzare il ritardo per il doppio click (double_click_delay), regolando la sensibilità per facilitare l'esecuzione di questa azione. Infine, per ciascuno dei quattro pulsanti, si possono definire le azioni da eseguire con un singolo click, un doppio click o una pressione prolungata, utilizzando le opzioni di azione disponibili in Home Assistant.
blueprint:
name: Ultimate Hue Remote Controller via Z2M
description: >
Configure Hue Remote buttons via Zigbee2MQTT with Device Triggers.
**Features:**
- Synthetic Double Click
- Organized settings by button
- Visual Section Headers
**Compatible with:**
- Gen 1 (Labels: "I", "O")
- Gen 2 (Labels: "Power", "Hue")
domain: automation
input:
remote:
name: Philips Hue Remote
description: Select your remote device.
selector:
device:
integration: mqtt
manufacturer: Philips
model: Hue dimmer switch
double_click_delay:
name: Double Click Delay (ms)
description: >
Time to wait for a second click.
Lower = Lights turn on faster (less lag).
Higher = Easier to perform a double click.
Recommended: 400ms - 600ms.
default: 500
selector:
number:
min: 100
max: 2000
unit_of_measurement: ms
mode: box
# ----------------------------------------------------------------
# TOP BUTTON
# ----------------------------------------------------------------
on_single_press:
name: 🟢 Top Button - Single Click
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
on_double_press:
name: 🟢 Top Button - Double Click
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
on_hold:
name: 🟢 Top Button - Hold
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# UP BUTTON
# ----------------------------------------------------------------
up_single_press:
name: 🔆 Up Button - Single Click
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
up_double_press:
name: 🔆 Up Button - Double Click
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
up_hold:
name: 🔆 Up Button - Hold
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# DOWN BUTTON
# ----------------------------------------------------------------
down_single_press:
name: 🔅 Down Button - Single Click
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
down_double_press:
name: 🔅 Down Button - Double Click
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
down_hold:
name: 🔅 Down Button - Hold
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# BOTTOM BUTTON
# ----------------------------------------------------------------
off_single_press:
name: 🔴 Bottom Button - Single Click
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
off_double_press:
name: 🔴 Bottom Button - Double Click
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
off_hold:
name: 🔴 Bottom Button - Hold
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
# Mode Single is required to prevent "Ghost Clicks" during double click detection
mode: single
max_exceeded: silent
trigger:
# Triggers for Press (Release) and Hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_press_release
id: on_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_hold
id: on_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_press_release
id: up_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_hold
id: up_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_press_release
id: down_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_hold
id: down_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: off_press_release
id: off_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: off_hold
id: off_hold
action:
- choose:
# --- TOP BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'on_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input on_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input on_single_press
- conditions: "{{ trigger.id == 'on_hold' }}"
sequence: !input on_hold
# --- UP BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'up_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input up_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input up_single_press
- conditions: "{{ trigger.id == 'up_hold' }}"
sequence: !input up_hold
# --- DOWN BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'down_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input down_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input down_single_press
- conditions: "{{ trigger.id == 'down_hold' }}"
sequence: !input down_hold
# --- BOTTOM BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'off_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: off_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input off_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input off_single_press
- conditions: "{{ trigger.id == 'off_hold' }}"
sequence: !input off_hold
Funzionalità Avanzate: Double Click e Gestione Hold
Una delle caratteristiche più apprezzate di questa blueprint è la capacità di implementare il doppio click per tutti e quattro i pulsanti, una funzionalità che il telecomando di per sé non offre. Questo viene realizzato attraverso un meccanismo di attesa (wait_for_trigger) con un timeout configurabile. Se un secondo click viene rilevato entro questo intervallo di tempo, viene attivata l'azione di doppio click; altrimenti, viene eseguita l'azione di singolo click. Inoltre, la blueprint gestisce in modo intelligente il conflitto tra "pressione" (press) e "pressione prolungata" (hold), assicurando che i singoli click vengano attivati solo al rilascio del pulsante, evitando così attivazioni accidentali durante un'intenzione di hold. La modalità "single" è utilizzata per prevenire "ghost clicks" durante il rilevamento del doppio click.
blueprint:
name: Ultimate Hue Remote Controller via Z2M
description: >
Configure Hue Remote buttons via Zigbee2MQTT with Device Triggers.
**Features:**
- Synthetic Double Click
- Organized settings by button
- Visual Section Headers
**Compatible with:**
- Gen 1 (Labels: "I", "O")
- Gen 2 (Labels: "Power", "Hue")
domain: automation
input:
remote:
name: Philips Hue Remote
description: Select your remote device.
selector:
device:
manufacturer: Philips
double_click_delay:
name: Double Click Delay (ms)
description: >
Time to wait for a second click.
Lower = Lights turn on faster (less lag).
Higher = Easier to perform a double click.
Recommended: 400ms - 600ms.
default: 500
selector:
number:
min: 100
max: 2000
unit_of_measurement: ms
mode: box
# ----------------------------------------------------------------
# TOP BUTTON
# ----------------------------------------------------------------
on_single_press:
name: 🟢 Top Button - Single Click
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
on_double_press:
name: 🟢 Top Button - Double Click
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
on_hold:
name: 🟢 Top Button - Hold
description: 'Symbol: "I" or "Power"'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# UP BUTTON
# ----------------------------------------------------------------
up_single_press:
name: 🔆 Up Button - Single Click
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
up_double_press:
name: 🔆 Up Button - Double Click
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
up_hold:
name: 🔆 Up Button - Hold
description: 'Symbol: Large Sun (Brighten)'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# DOWN BUTTON
# ----------------------------------------------------------------
down_single_press:
name: 🔅 Down Button - Single Click
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
down_double_press:
name: 🔅 Down Button - Double Click
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
down_hold:
name: 🔅 Down Button - Hold
description: 'Symbol: Small Sun (Dim)'
default: []
selector: { action: {} }
# ----------------------------------------------------------------
# BOTTOM BUTTON
# ----------------------------------------------------------------
off_single_press:
name: 🔴 Bottom Button - Single Click
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
off_double_press:
name: 🔴 Bottom Button - Double Click
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
off_hold:
name: 🔴 Bottom Button - Hold
description: 'Symbol: "O" or "Hue" Logo'
default: []
selector: { action: {} }
# Mode Single is required to prevent "Ghost Clicks" during double click detection
mode: single
max_exceeded: silent
trigger:
# Triggers for Press (Release) and Hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_press_release
id: on_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_hold
id: on_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_press_release
id: up_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_hold
id: up_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_press_release
id: down_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_hold
id: down_hold
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: off_press_release
id: off_press
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: off_hold
id: off_hold
action:
- choose:
# --- TOP BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'on_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: on_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input on_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input on_single_press
- conditions: "{{ trigger.id == 'on_hold' }}"
sequence: !input on_hold
# --- UP BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'up_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: up_press_release
timeout:
milliseconds: !input double_click_delay
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger != none }}"
sequence: !input up_double_press
- conditions: "{{ wait.trigger == none }}"
sequence: !input up_single_press
- conditions: "{{ trigger.id == 'up_hold' }}"
sequence: !input up_hold
# --- DOWN BUTTON LOGIC ---
- conditions: "{{ trigger.id == 'down_press' }}"
sequence:
- wait_for_trigger:
- platform: device
domain: mqtt
device_id: !input remote
type: action
subtype: down_press_release
timeout:
milliseconds: !input dou
Integrazione con Home Assistant
L'integrazione della blueprint in Home Assistant è diretta. Dopo averla importata, si procede alla configurazione selezionando il proprio Philips Hue Dimmer Switch accoppiato tramite MQTT. La blueprint utilizza i Device Triggers specifici per il dominio MQTT, associando le azioni come `on_press_release`, `on_hold`, `up_press_release`, ecc., ai rispettivi input configurabili. Questo approccio basato sui Device Triggers rende la configurazione più robusta e meno soggetta a errori rispetto alla gestione diretta degli argomenti MQTT, garantendo un'esperienza utente fluida e personalizzabile per il controllo della domotica.
Aggiornamento e Personalizzazione
La blueprint "Ultimate Hue Remote Controller" offre un elevato grado di personalizzazione. Gli utenti possono definire liberamente le azioni per ogni tipo di pressione (singolo, doppio, hold) per ciascun pulsante, collegandole a scenari domotici complessi, all'attivazione di luci, alla regolazione della luminosità o a qualsiasi altra automazione disponibile in Home Assistant. La possibilità di regolare il ritardo del doppio click permette di adattare il comportamento del telecomando alle preferenze individuali.
Commenti
Ancora nessun commento. Sii il primo a partecipare.