Volkswagen WeConnect ID in Home Assistant e Plancia Personalizzata per ID.3

davide Progetti

Volkswagen WeConnect ID in Home Assistant

In famiglia abbiamo acquistato di recente una Volkswagen ID.3 ed in questa guida vedremo come importare i dati visualizzati dall’app Volkswagen WeConnect ID in Home Assistant e come creare dei sensori per registrare diversi dati come ad esempio lo stato di carica della batteria, l’autonomia, la potenza di ricarica in Watt (che al momento non è possibile ricavare dall’infotainment dell’auto) e molto altro.

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, ma è anche possibile installarlo su un raspberry pi]).
Sarà poi necessario installare il componente “ha_vwid” disponibile sull’ “Home Assistant Community Store” (anche se si chiama store è tutto gratuito, tranquilli).
Per ottenerlo sarà necessario installare l’Home Assistant Community Store tramite questa guida e successivamente sarà necessario installare il componente “ha_vwid” seguendo la guida nella repository Github (oppure direttamente in HACS dopo aver aggiunto la repository nelle repository personalizzate).

Configurazione del componente Volkswagen ID in Home Assistant

La prima cosa da fare per integrare WeConnect ID in Home Assistant è attivare il componente scaricato al punto precedente inserendo le credenziali di accesso durante la procedura di configurazione. Per fare questo è necessario innanzitutto entrare nella sezione “Impostazioni>Integrazioni” ed in seguito cliccare su “Aggiungi Integrazione”. Cercare e cliccare su “Volkswagen ID”. Si dovrebbe aprire una finestra come questa:

Inserire quindi i dati di accesso all’applicazione WeConnect ID (username e password) e successivamente inserire il codice VIN del veicolo (è il numero di telaio).

ATTENZIONE:
Prima di attivare l’integrazione in Home Assistant sarà necessario collegare l’app ufficiale Volkswagen WeConnect ID al proprio veicolo).

Dopo aver riavviato il server di Home Assistant (nella sezione “Impostazioni>Controlli del Server>Gestione del Server” e cliccando “Riavvia”) sarà disponibile una nuova entità nella sezione “Impostazioni>Entità” chiamata “State of Charge” che indicherà lo stato di carica dell’auto ed avrà come attributi tutti gli altri dati rilevanti.

Creazione di sensori personalizzati per raccogliere tutti i dati di WeConnect ID in Home Assistant

Per raccogliere anche i dati mostrati come attributi dal sensore generato automaticamente dall’integrazione configurata sopra sarà necessario creare dei sensori personalizzati in Home Assistant. Per fare questo dobbiamo aggiungere nella sezione sensor del file “configuration.yaml” di Home Assistant (se non sapete di cosa sto parlando potete leggere questa guida) il codice seguente (al posto di “[vin]” dovrete scrivere il codice VIN del vostro veicolo):

  #ID3 Charge state
  - platform: template
    sensors:
      id3_charge_state:
        friendly_name: "State of Charge"
        unit_of_measurement: "%"
        value_template: '{{ states.sensor.[vin]_soc.attributes.CurrentSOCPct }}'

  #ID3 Charge Power
  - platform: template
    sensors:
      id3_charge_power:
        friendly_name: "Charging Power"
        unit_of_measurement: "kW"
        value_template: '{{ states.sensor.[vin]_soc.attributes.ChargePowerKW }}'

  #ID3 Climatization State
  - platform: template
    sensors:
      id3_climatization_state:
        friendly_name: "Climatization State"
        value_template: '{{ states.sensor.[vin]_soc.attributes.ClimatisationState }}'

  #ID3 Range
  - platform: template
    sensors:
      id3_range:
        friendly_name: "Range"
        unit_of_measurement: "Km"
        value_template: '{{ states.sensor.[vin]_soc.attributes.CruisingRangeElectricKm }}'

Dopo aver riavviato nuovamente il server i sensori saranno disponibili all’interno di Home Assistant (potete visualizzarli in “Impostazioni>Entità”).

Personalizzazione delle icone in base allo stato

Per rendere più accattivante l’interfaccia grafica dobbiamo fare in modo che le icone mostrate cambino in base ai dati importati da WeConnect ID in Home Assistant.

Per modificare le icone ed i colori delle icone in base ai dati di WeConnect ID in Home Assistant ho utilizzato il componente custom-ui disponibile sull’ “Home Assistant Community Store” (anche se si chiama store è tutto gratuito, tranquilli). Per ottenerlo sarà necessario installare il componente custom-ui seguendo la guida nella repository Github (nel mio caso è stato necessario anche installare questo altro componente per far funzionare tutto correttamente).

Dovremo poi inserire all’interno del file “configuration.yaml” nella sezione “homeassistant” il nome del file per le personalizzazioni che andrà inserito nella stessa cartella del file di configurazione (uso un file esterno per mantenere il tutto in ordine, ma le personalizzazioni si potrebbero anche scrivere direttamente nel file di configurazione). Il risultato è il seguente (nel mio caso ho chiamato il file “customizations.yaml”):

homeassistant:

  customize: !include customizations.yaml

Fatto questo sarà necessario inserire nella sezione “customize” del file di configurazione di Home Assistant (o nel file dedicato) il codice seguente:

sensor.id3_charge_state:
  templates:
    icon: >
      if (state < 10) return 'mdi:battery-alert-variant-outline';
      if (state < 15) return 'mdi:battery-10';
      if (state < 25) return 'mdi:battery-20';
      if (state < 35) return 'mdi:battery-30';
      if (state < 45) return 'mdi:battery-40';
      if (state < 55) return 'mdi:battery-50';
      if (state < 65) return 'mdi:battery-60';
      if (state < 75) return 'mdi:battery-70';
      if (state < 85) return 'mdi:battery-80';
      if (state < 95) return 'mdi:battery-90';
      if (state >= 95) return 'mdi:battery';
      else return 'mdi:alert-octagon';
    icon_color: >
      if (state < 10) return 'rgb(229,0,0)';
      if (state < 15) return 'rgb(253,101,40)';
      if (state < 25) return 'rgb(251,141,35)';
      if (state < 35) return 'rgb(249,183,30)';
      if (state < 45) return 'rgb(248,226,24)';
      if (state < 55) return 'rgb(222,246,19)';
      if (state < 65) return 'rgb(172,245,14)';
      if (state < 75) return 'rgb(122,243,9)';
      if (state < 85) return 'rgb(70,241,4)';
      if (state < 95) return 'rgb(17,239,0)';
      if (state >= 95) return 'rgb(0,255,0)';
      else return 'rgb(255,0,0)';

sensor.id3_charge_power:
  templates:
    icon: >
      if (state > 11) return 'mdi:ev-plug-ccs2';
      if (state > 0) return 'mdi:ev-plug-type2';
      else return 'mdi:power-plug-off';
    icon_color: >
      if (state > 0) return 'rgb(0,255,0)';

sensor.id3_climatization_state:
  templates:
    icon: >
      if (state === "ventilation") return 'mdi:fan';
      if (state === "cooling") return 'mdi:car-seat-cooler';
      if (state === "heating") return 'mdi:car-seat-heater';
      else return 'mdi:fan-off';
    icon_color: >
      if (state === "cooling") return 'rgb(62,219,240)';
      if (state === "heating") return 'rgb(207,0,0)';

Infine riavviare il server di Home Assistant per applicare le modifiche.

Creazione di una plancia personalizzata

Siccome ho intenzione di collegare anche una wallbox ad Home Assistant (scriverò una guida apposita a riguardo) ho deciso di creare una plancia dedicata alla gestione delle auto (se volete potete saltare questa sezione e passare alla successiva ). Per fare questo è sufficiente selezionare “modifica plancia” dalla sezione Panoramica di Home Assistant per entrare nell’editor.

Dopodiché basterà premere il tasto “aggiungi” (quello con l’icona “+” ) ed inserire le informazioni necessarie come in figura:

Infine premere “salva” e spostarsi nella plancia appena creata.

Creazione di una scheda personalizzata per Volkswagen ID.3 (e tutti gli altri veicoli della serie ID)

Prima di creare una scheda personalizzata sarà necessario, se volete mostrare un’immagine dell’auto nella parte superiore della scheda, importare un’immagine all’interno di Home Assistant.

Per fare questo sarà innanzitutto necessario importare l’immagine che desideriamo inserire all’interno di Home Assistant tramite l’add-on di Visual Studio Code. Sarà sufficiente creare una cartella nella cartella “www” (nel mio caso ho chiamato la cartella “myimages”) ed inserire al suo interno le immagini che desideriamo utilizzare in Home Assistant. Le immagini caricate saranno quindi disponibili all’interno di Home Assistant tramite il percorso “local/myimages/nomefile.estensione”.

Vi lascio disponibile per il download qui di seguito l’immagine che ho usato io (potete anche usarla come template per creare una vostra immagine personalizzata):

Sarà infine sufficiente creare una nuova scheda. Per fare questo è sufficiente cliccare su “Aggiungi Scheda” (se il tasto non è visibile guarda la sezione precedente per capire come aprire l’editor della plancia). Per usare la stessa plancia che utilizzo io basta selezionare l’opzione “Manuale” e copiare il codice seguente, per poi premere salva (do per scontato che l’immagine caricata all’inizio della guida sia salvata con lo stesso nome e nella stessa cartella del mio server):

type: entities
entities:
  - entity: sensor.id3_charge_state
    name: Stato di Carica
  - entity: sensor.id3_range
    icon: 'mdi:road-variant'
    name: Autonomia
  - entity: sensor.id3_charge_power
    name: Potenza di Ricarica
  - entity: sensor.id3_climatization_state
    name: Stato Clima
header:
  type: picture
  image: local/myimages/id3_business.png
  tap_action:
    action: none
  hold_action:
    action: none
title: ID.3
show_header_toggle: false
state_color: true

In alternativa è possibile anche creare la scheda usando l’editor visivo (potete anche modificare visivamente la scheda da me creata copiando il codice, salvandolo e premendo il tasto “Mostra Editor Visivo”).

Conclusione

In questa guida abbiamo visto come ottenere i dati dell’applicazione WeConnect ID in Home Assistant e come creare una plancia personalizzata per visualizzare lo stato dell’auto. Grazie a questi dati in futuro potremmo creare automazioni interessanti come ad esempio creare logiche di ricarica più complesse in combinazione con una wallbox connessa ad Home Assistant.

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ò.