Dimmer per lampade smart con Home Assistant
In questo articolo vedremo come, grazie al mio ultimo progetto, è possibile creare un dimmer compatibile con tutte le lampade smart collegate ad Home Assistant. L’esigenza nasce dal momento che i dimmer classici, presenti da sempre nelle nostre case, non sono compatibili con le lampade smart, e, collegare una di queste lampadine ad un dimmer, lo danneggerebbe. Per poter superare questa limitazione, il nostro dimmer dovrà agire a livello software invece che direttamente sull’alimentazione della lampadina, che resterà inalterata.
Il progetto è molto semplice da realizzare, infatti l’unico hardware richiesto è un pulsante collegato ad un microcontrollore. Si possono usare Sonoff modificati con Tasmota o ESPHome, moduli ESP8266 / ESP32 (come NodeMCU o Wemos D1), alcuni pulsanti smart presenti sul mercato (da verificare la compatibilità) o più semplicemente si può collegare il pulsante direttamente alla GPIO del Raspberry con Hass.io. Possiamo usare un qualsiasi pulsante che venga riconosciuto da Home Assistant come binary_sensor.
Ecco alcune delle funzioni del dimmer:
- Basterà mantenere premuto il pulsante per aumentare o diminuire l’intensità della luce emessa dalla lampadina e rilasciarlo al raggiungimento della luminosità desiderata, proprio come nei dimmer che conosciamo e usiamo da sempre
- Possibilità di lavorare con gruppi di luci e regolarne l’intensità anche se esse si trovano a luminosità diverse, l’intensità varierà in percentuale alla luminosità iniziale di ogni lampadina
- Se in un gruppo una lampadina è spenta, rimarrà spenta e verrà esclusa automaticamente dal dimmer
- Compatibilità con le strisce led RGB e RGBW (regola anche l’intensità del canale bianco)
- Il dimmer sceglie in maniera intelligente se aumentare o diminuire la luminosità.
Il dimmer si presenta sotto forma di package (scaricabile qui), la sua installazione è quindi molto semplice: come sempre basterà estrarre tutto quanto nelle apposite cartelle nel percorso /config. Bisogna tenere a mente un solo accorgimento: siccome il dimmer si basa su uno script in Python, è necessario attivare il componente python_script dal configuration.yaml. Per farlo è necessario aggiungere in fondo al file una linea con scritto python_script:
.
All’inizio del file light_dimmer.py troviamo due parametri da poter configurare:
- TIME_INTERVAL: il tempo (espresso in secondi) che deve passare tra uno step e l’altro, più basso è, più preciso sarà il dimmer, ma un valore troppo basso può creare problemi con alcuni tipi di lampadine, mentre un valore troppo alto può rendere il dimmer molto lento e impreciso. Il valore predefinito è di 0,2 secondi.
- STEP_INTERVAL: quanto deve variare l’intensità della luce ad ogni step, il valore può andare da un minimo di 1 (più preciso, ma troppo lento e può causare problemi) ad un massimo di 255 (che non ha senso perché trasformerebbe il dimmer in un interruttore). Il valore predefinito è di 25, consigliamo di tenerlo tra i 10 e i 40.
Una volta attivati i Pythons scripts, installato il package e riavviato Home Assistant, siamo pronti a configurare il dimmer. Per farlo ci basterà aggiungere un’automazione per ogni pulsante da voler trasformare in dimmer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
- alias: 'dimmer luce 1' trigger: - platform: state entity_id: binary_sensor.pulsante_1 from: 'off' to: 'on' for: '00:00:01' condition: [] action: - service: python_script.light_dimmer data_template: dimmer_switch: binary_sensor.pulsante_1 dimmer_lights: - light.luce_1 - light.luce_2 |
Quando binary_sensor.pulsante_1 cambierà di stato da off a on per almeno un secondo (questo per permettergli di avere anche altre funzioni oltre al dimmer quando viene premuto per meno tempo) l’automazione verrà eseguita e andrà a chiamare uno script in Python (python_script.light_dimmer) passandogli i parametri:
- dimmer_switch: l’entity_id del pulsante
- dimmer_lights: tutte le luci che vogliamo controllare.
Fatto questo ci basterà riavviare Home Assistant nuovamente per avere il nostro dimmer perfettamente configurato. Ci basterà infatti mantenere premuto il pulsante per più di un secondo ed osservare la magia.
Articolo scritto da Marco Realacci | marcorealacci.me | [email protected] | telegram.me/notherealmarco | @notherealmarco
7 risposte
Ciao, come si può integrare un tasto zigbee ikea che è già previsto per fare da dimmer? il pulsante ha due livelli e quando premi poco manda un on, premuto più a fondo manda un Brightness up o down, rilasciato brightness stop.
ciao, non è direttamente integrabile. Necessita o di una semplice modifica allo script in Python, o di un binary sensor.
Puoi creare un binary sensor con piattaforma template che diventa on mentre mantieni premuto il pulsante e torna off appena lo rilasci. Puoi farlo con due semplici automazioni.
ottima guida. complimenti.
il sonoff come lo devo impostare perché se attivo il binary.sensor ad esso collegato mi rimane su on
immagino tu stia utilizzando Tasmota, puoi configurare il pulsante come Switch con una rule:
Rule1 on switch1#state do publish cmnd/custom-topic/pulsante %value% endon
Rule1 1
Da Home Assistant ti crei un input_boolean e tramite due automazioni aggiorni il suo stato in base al valore che Tasmota trasmette in MQTT.
Per ulteriori dubbi ti suggerisco di aprire una discussione sul forum o scrivere sul gruppo Telegram.
salve, si può implementare per utilizzare questo progetto anche per comandare un dimmer ac? https://robotdyn.com/ac-light-dimmer-module-1-channel-3-3v-5v-logic-ac-50-60hz-220v-110v.html
ciao ma il package non è piu disponibile?
Grazie
anche io lo sto cercando ma sembra non essere piu disponibile