In questa guida vedremo come integrare la wallbox Prism in Home Assistant.
In famiglia abbiamo recentemente acquistato un’auto elettrica e ci siamo quindi messi alla ricerca di una wallbox per la ricarica domestica. Dopo alcune ricerche online, ho scelto la wallbox Prism Solar di Silla Industries in quanto, oltre ad offrire la possibilità di ricaricare solamente con l’energia prodotta dal nostro impianto fotovoltaico, regola automaticamente la corrente di ricarica evitando di far scattare il contatore di casa. Inoltre è possibile avere accesso ai dati in tempo reale sulla potenza importata o immessa in rete grazie alle misurazioni effettuate da Prism tramite la pinza amperometrica posta presso la linea in ingresso dal contatore.
Altre wallbox offrono le stesse funzioni, ma ciò che mi ha fatto propendere per questo prodotto è stata la possibilità di comunicare con la Prism tramite protocollo MQTT, in modo tale da poter controllare la ricarica anche senza dover utilizzare esclusivamente l’interfaccia web fornita dal produttore.
Prerequisiti
Nel seguito di questa guida darò per scontato che abbiate già installato Home Assistant (potete trovare un sacco di guide online, quella ufficiale si può trovare qui [io ad esempio ho installato il sistema operativo di Home Assistant in una virtual machine]).
Sarà poi necessario installare l’integrazione MQTT di Home Assistant (qui la guida apposita). Per utilizzare questa integrazione deve essere già presente un broker MQTT (per crearne uno fare riferimento a questa guida).
Impostazione wallbox Prism per la connessione al broker MQTT
Prima di poter integrare la wallbox Prism in Home Assistant è necessario attivare la connessione MQTT tramite l’interfaccia web fornita dal produttore. Per fare questo è sufficiente seguire le istruzioni all’interno del manuale MQTT della wallbox Prism. Dopo aver inserito l’indirizzo IP della wallbox Prism in un Browser, sarà sufficiente andare nella relativa sezione delle impostazioni ed inserire i dati necessari come mostrato nell’immagine in basso (nel mio caso il base topic è solamente “/prism” differentemente da quanto mostrato nell’immagine).
Configurazione dei sensori per importare i dati della wallbox Prism in Home Assistant
Per prima cosa dobbiamo configurare dei sensori in home assistant che rilevino i dati inviati tramite MQTT dalla wallbox e li registrino sul server. Per fare questo dobbiamo aggiungere nella sottosezione sensor della sezione mqtt del file “configuration.yaml” di Home Assistant (se non sapete di cosa sto parlando potete leggere questa guida) il codice necessario per dichiarare i sensori. Il risultato sarà il seguente:
mqtt:
sensor:
##################################################################################
# WALLBOX PRISM #
##################################################################################
- state_topic: "prism/hello"
name: "Prism Hello"
- state_topic: "prism/1/state"
name: "Prism Stato"
value_template: >
{% set map = {
'1': 'Unplugged',
'2': 'Waiting',
'3': 'Charging',
'4': 'Pause'
} %}
{{ map[value] if value in map else 'Error' }}
- state_topic: "prism/1/amp"
name: "Prism Corrente"
unit_of_measurement: "mA"
- state_topic: "prism/1/wh"
name: "Prism Energia Erogata Sessione"
unit_of_measurement: "Wh"
- state_topic: "prism/1/pilot"
name: "Prism Corrente Pilotata dall'Auto"
unit_of_measurement: "A"
- state_topic: "prism/1/user_amp"
name: "Prism Corrente Impostata dell'Utente"
unit_of_measurement: "A"
- state_topic: "prism/1/volt"
name: "Prism Tensione Attuale"
unit_of_measurement: "V"
- state_topic: "prism/1/w"
name: "Prism Potenza"
unit_of_measurement: "W"
- state_topic: "prism/1/wh_total"
name: "Prism Energia Totale"
unit_of_measurement: "Wh"
- state_topic: "prism/1/session_time"
name: "Prism Durata Sessione"
value_template: "{{ value | int | timestamp_custom('%H:%M:%S', 0) }}"
- state_topic: "prism/1/error"
name: "Prism Error"
- state_topic: "prism/1/mode"
name: "Prism Mode"
value_template: >
{% set map = {
'1': 'solar',
'2': 'normal',
'3': 'pause',
'7': 'autolimit'
} %}
{{ map[value] if value in map else 'error'}}
- state_topic: "prism/1/input/touch"
name: "Prism Touch"
expire_after: 10
- state_topic: "prism/energy_data/power_grid"
name: "Prism Potenza Importata"
unit_of_measurement: "W"
expire_after: 5
Dopodichè inserire il codice seguente nella sezione sensor (diversa dalla sezione in cui è stato inserito il codice sopra [se non è presente createla]) del file “configuration.yaml” il codice seguente:
#Sensore custom per capire se la wallbox ha fermato la ricarica in automatico per limitare la corrente
- platform: template
sensors:
prism_autolimit:
friendly_name: 'Autolimit'
value_template: >-
{% if is_state('sensor.prism_mode', 'autolimit') %}
Attivo
{% else %}
Non Attivo
{% endif %}
#Sensore per rilevare gli input sul tasto touch della wallbox
- platform: mqtt
state_topic: "prism/1/input/touch"
name: "Prism Touch"
Dopo aver inserito il codice nel file di configurazione, sarà sufficiente riavviare Home Assistant tramite il comando in Impostazioni>Controlli del Server>Gestione del Server. Dopo il riavvio sarà possibile trovare i sensori e consultarne i dati in Impostazioni>Integrazioni>Entità.
Creazione aiutanti per impostazione modalità e corrente di ricarica
Per poter impostare la modalità della wallbox e la corrente di ricarica è necessario innanzitutto creare degli aiutanti dalle impostazioni di home assistant. Per prima cosa bisogna premere sul tasto Aggiungi Aiutante in Impostazioni>Aiutanti.
Dopodiché selezionare “Commutatore” come tipologia di input per le tre modalità della wallbox ed invece “Numero” come tipologia di input per la corrente di ricarica. Sarà quindi necessario creare 3 aiutanti di tipo Commutatore ed 1 di tipo numero. Nell’immagine seguente i parametri che ho utilizzato io per la loro configurazione:
Creazione delle automazioni per impostare la modalità della Wallbox Prism in Home Assistant
Abbiamo ora tutti gli elementi necessari per scrivere le prime automazioni per il controllo della Prism da Home Assistant (se non sai che cosa sono le automazioni di Home Assistant puoi leggere questa guida). Per prima cosa dobbiamo creare un’automazione in modo tale che all’interno di Home Assistant solo una modalità resti attiva. Per fare questo bisognerà aggiungere il seguente codice all’interno del file “automations.yaml“:
#Solo una modalità di funzionamento può essere attiva
- alias: Prism Mode set
trigger:
platform: state
entity_id: input_boolean.prism_solar_mode, input_boolean.prism_pause_mode, input_boolean.prism_normal_mode
to: 'on'
action:
- service: input_boolean.turn_off
data_template:
entity_id: '{% set booleans = [ ''input_boolean.prism_solar_mode'', ''input_boolean.prism_pause_mode'',
''input_boolean.prism_normal_mode''] | reject(''equalto'', trigger.entity_id)
%} {{ booleans | list | join('', '') }}'
#Se solo una modalità è attiva e viene spenta attiva la modalità pausa
- alias: Prism Mode reduntant
trigger:
platform: state
entity_id: input_boolean.prism_solar_mode, input_boolean.prism_pause_mode, input_boolean.prism_normal_mode
to: 'off'
condition:
- condition: state
entity_id: input_boolean.prism_solar_mode, input_boolean.prism_pause_mode, input_boolean.prism_normal_mode
state: "off"
action:
- service: input_boolean.turn_on
data_template:
entity_id: input_boolean.prism_pause_mode
Possiamo quindi scrivere le automazioni per impostare la modalità della Prism tramite MQTT quando uno dei relativi input di Home Assistant viene attivato. Il codice è il seguente:
- alias: Set Wallbox Mode Solar
trigger:
- platform: state
entity_id: input_boolean.prism_solar_mode
to: 'on'
action:
- service: mqtt.publish
data:
topic: prism/1/command/set_mode
retain: true
payload: '1'
mode: single
- alias: Set Wallbox Mode Normal
trigger:
- platform: state
entity_id: input_boolean.prism_normal_mode
to: 'on'
action:
- service: mqtt.publish
data:
topic: prism/1/command/set_mode
retain: true
payload: '2'
mode: single
- alias: Set Wallbox Mode Pause
trigger:
- platform: state
entity_id: input_boolean.prism_pause_mode
to: 'on'
action:
- service: mqtt.publish
data:
topic: prism/1/command/set_mode
retain: true
payload: '3'
mode: single
Infine scriviamo le automazioni per aggiornare la modalità attiva mostrata in Home Assistant quando viene cambiata nella Prism in altri modi. Il codice è il seguente:
- alias: Update Wallbox Mode Solar
description: ''
trigger:
- platform: mqtt
topic: prism/1/mode
payload: '1'
condition: []
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.prism_solar_mode
mode: single
- alias: Upadate Wallbox Mode Normal
description: ''
trigger:
- platform: mqtt
topic: prism/1/mode
payload: '2'
condition: []
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.prism_normal_mode
mode: single
- alias: Update Wallbox Mode Pause
description: ''
trigger:
- platform: mqtt
topic: prism/1/mode
payload: '3'
condition: []
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.prism_pause_mode
mode: single
Creazione delle automazioni per impostare la corrente di ricarica della Wallbox Prism in Home Assistant
Per concludere dobbiamo scrivere le automazioni per impostare la corrente di ricarica da Home Assitant:
- alias: Set Wallbox Max Current
description: ''
trigger:
- platform: state
entity_id: input_number.prism_max_current_set
condition: []
action:
- service: mqtt.publish
data:
topic: prism/1/command/set_current_user
retain: true
payload: '{{ states("input_number.prism_max_current_set") }}'
mode: single
Infine, come per la modalità, scriviamo un’automazione per aggiornare la corrente impostata in home assistant quando viene modificata tramite l’interfaccia web del produttore:
- alias: Update Wallbox Max Current
description: ''
trigger:
- platform: mqtt
topic: prism/1/user_amp
condition: []
action:
- service: input_number.set_value
target:
entity_id: input_number.prism_max_current_set
data:
value: "{{ trigger.payload }}"
mode: single
Conclusione
In questa guida abbiamo visto come configurare Home Assistant per poter ricevere dati sulla ricarica (ed anche sull’energia importata/esportata in rete) e per poter comandare la wallbox Prism. Il prossimo passo sarà quello di creare una plancia personalizzata per poter utilizzare l’interfaccia grafica di Home Assistant per il controllo della Prism. Questo sarà l’argomento della prossima guida.
Se questa guida ti è piaciuta segui il mio blog sui canali social (clicca sulle icone in fondo alla pagina) per essere informato su tutti i nuovi articoli che scriverò.