Home Assistant: Gestione tramite le API ufficiali

Autore: Vito
849 visite
Home Assistant API - Featured Image

Home Assistant fornisce ufficialmente delle API per integrarsi con applicazioni esterne.

Tramite questo breve articolo vedremo come abilitarle e sfruttarle per eseguire azioni tramite un sistema operativo Linux, principalmente Debian/Ubuntu, ed in quali casi questo può tornarci utile.

Abilitazione

Il primo passaggio da eseguire è abilitare le API come indicato nella documentazione ufficiale, quindi aggiungere al  file “configuration.yaml”:

# API
api:

Riavviare Home Assistant e dal proprio profilo creare un token a lunga vita. Verrà fornita una stringa da annotarsi:

Utilizzo delle API

Per sfruttare le API ho realizzato un semplice script Bash scaricabile qui, da posizionare in qualsiasi directory del proprio server Linux (consigliabile in “/sbin/”).

Installare i pacchetti necessari ed associargli i corretti permessi di esecuzione:

# sudo apt-get install curl
# chmod 755 /sbin/cmd_hass

Editare il file impostando i seguenti valori:

api_token="<YOUR TOKEN>"              // Token a lunga vita generato
server="<YOUR HASS SERVER IP>"        // Indirizzo IP di Home Assistant
port="8123"                           // Porta di Home Assistant

Tramite questo script è possibile:

  • Eseguire servizi:
    • Esempi: Accendere una luce, eseguire uno script.
    • Sintassi: cmd_hass service <entità> <dominio/azione>
  • Scrivere valori:
    • Esempi: Scrivere un valore in un campo di testo.
    • Sintassi: cmd_hass write <entità> <valore>
  • Leggere valori:
    • Scopo: leggere lo stato di un’entità.
    • Sintassi: cmd_hass read <entità> <extract>

Notare nell’immagine sottostante che il valore indicato nel comando “write” è stato scritto all’interno del campo di testo:

L’utilizzo del parametro “extract” nella lettura dei valori è particolarmente utile nel caso sì volesse estrapolare lo specifico stato dell’entità.

Per eseguire questa operazione, essendo l’output in JSON, è necessario installare il seguente tool:

# sudo apt-get install jq

Quindi estrapolare lo stato dell’entità:

# echo $(cmd_hass read switch.luce_corridoio extract | jq '.state' | tr -d \")

Estrapolato il valore è possibile sfruttarlo in altri script per eseguire delle analisi o qualsiasi altra operazione sì desideri.

Nei prossimi articoli vedremo come sfruttare a livello pratico questo strumento.

Se ti è stato utile, perché non...
Mi offri un caffè?

Post correlati

Lascia un commento

* Utilizzando questo modulo accetti la memorizzazione e la gestione dei tuoi dati da questo sito web.