Uno dei sistemi d’illuminazione smart più diffuso e famoso è sicuramente Philips Hue, che sì basa sulla tecnologia di comunicazione wireless ZigBee.
L’integrazione ufficiale per Home Assistant però presenta un piccolo difetto, il polling che gestisce l’aggiornamento degli elementi, è impostato fisso ogni 5 secondi rendendone problematico l’utilizzo in alcune situazioni.
In questo articolo vedremo come ridurlo per ottimizzare questa integrazione in Home Assistant.
Sommario
Gli elementi
Per poter sfruttare questo tutorial è necessario aver già aggiunto l’integrazione Philips Hue nell’installazione di Home Assistant.
Per aggiungerla è necessario possedere il bridge ed almeno un paio di elementi per verificare l’ottimizzazione, come un sensore ed una lampadina o striscia LED.
Ecco alcuni elementi che fanno al caso nostro:
Materiale necessario
Per seguire questo tutorial è necessario aver strutturato il proprio sistema per la gestione dei packages ed HACS come indicato in questo articolo.
Una volta predisposto il sistema, scarichiamo questo pacchetto contenente il materiale che utilizzeremo nei vari passaggi:
I componenti aggiuntivi
Per ottimizzare il polling dell’integrazione nativa, che detto in parole semplici è ogni quanto (in secondi) l’integrazione aggiornerà lo stato degli elementi gestiti dal bridge ZigBee, sfrutteremo un’integrazione non ufficiale disponibile su HACS (installabile come indicato in questo articolo).
L’integrazione non ufficiale in questione è Fast-Hue poling.
Dopo averla installata, come indicato da HACS, sarà necessario riavviare Home Assistant per caricarla correttamente.
Procedere aggiungendo l’integrazione tramite l’apposita sezione nelle impostazioni.
Inserire nel campo “Intervallo iniziale di aggiornamento” un valore predefinito per l’integrazione, inferiore ai 5 secondi dell’integrazione ufficiale.
La gestione
Integrato tutto il necessario creiamo una piccola automazione per gestire l’aggiornamento automatico del valore di polling, che definiremo sull’interfaccia utente come “Intervallo Richieste Dinamico”.
Creare un package philips_hue_polling.yaml e definire gli input di controllo:
- input_boolean.philips_hue_custom_polling_automation: Abilita l’aggiornamento automatico;
- input_number.philips_hue_custom_polling_interval: Definisce il valore di aggiornamento (polling) in secondi.
# Inputs
input_boolean:
# Polling
philips_hue_custom_polling_automation:
name: 'Intervallo Richieste Dinamico'
icon: mdi:rotate-left
# -------------------------------------------------------------------------------------------------------------------
input_number:
# Polling
philips_hue_custom_polling_interval:
name: 'Intervallo Richieste'
icon: mdi:arrow-expand-horizontal
min: 1
max: 20
step: 1
unit_of_measurement: 'secondi'
# -------------------------------------------------------------------------------------------------------------------
Definiti gli elementi di controllo passiamo all’automazione di gestione.
L’automazione sì occuperà di aggiornare automaticamente il valore impostato tramite il selettore “Intervallo Richieste” nei seguenti casi:
- All’avvio di Home Assistant;
- Quando viene attivata la gestione;
- Quando sì modifica il valore “Intervallo Richieste”, ma solo se la gestione è attiva.
Per modificare il polling viene eseguito lo script script.philips_hue_custom_polling_interval_setup che è possibile richiamare anche manualmente da interfaccia utente o in altre automazioni personali.
Lo script esegue la modifica anche nel caso in cui l’aggiornamento automatico fosse disabilitato.
# Automations
automation:
# Polling
- alias: 'Philips HUE Polling - Aggiornamento Intervallo Richieste Dinamico'
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: homeassistant
event: start
- platform: state
entity_id:
- input_number.philips_hue_custom_polling_interval
- input_boolean.philips_hue_custom_polling_automation
condition:
- condition: state
entity_id: input_boolean.philips_hue_custom_polling_automation
state: 'on'
action:
- service: script.turn_on
entity_id: script.philips_hue_custom_polling_interval_setup
# -------------------------------------------------------------------------------------------------------------------
# Scripts
script:
# Polling
philips_hue_custom_polling_interval_setup:
alias: 'Aggiornamento Intervallo Richieste'
icon: mdi:sync
sequence:
- service: fasthue.set_update_interval
entity_id: sensor.hue_polling_interval
data_template:
scan_interval:
seconds: '{{ states("input_number.philips_hue_custom_polling_interval") | int }}'
# -------------------------------------------------------------------------------------------------------------------
L'interfaccia utente
La card di gestione:
type: entities
title: Gestione Philips Hue
show_header_toggle: false
entities:
- entity: input_boolean.philips_hue_custom_polling_automation
- entity: input_number.philips_hue_custom_polling_interval
- entity: sensor.hue_polling_interval
- entity: script.philips_hue_custom_polling_interval_setup
La personalizzazione dell’entità generata dall’integrazione Fast-Hue polling da inserire all’interno del file customize.yaml:
sensor.hue_polling_interval:
friendly_name: 'Intervallo Richieste Attuale'
icon: mdi:av-timer
Quindi impostare i valori secondo le proprie preferenze:
Conclusione
Tramite questo semplice tutorial è quindi possibile velocizzare o rallentare l’interazione con qualsiasi elemento gestito dall’integrazione Philips Hue ufficiale, in particolare comodo per avere una risposta veloce dai sensori di movimento.
Un esempio pratico, dove ridurre il polling può generare benefici, è ad esempio l’automazione indicata in questo articolo.