Progetto Home Automation: Home Assistant, monitoriamo il nostro router FRITZ!Box e impariamo i sensor template


Questo articolo vuole essere un po’ un “mapazzone” (cit.) di argomenti diversi (e in parte collegati tra loro) ma che sono utili in tutto l’ambiente di HomeAssistant: il Device Tracker, il Sensor Template e il FRITZ!Box NetMonitor (io posseggo un FRITZ!Box 7590 ma dovrebbero esserci diverse estensioni per altri modelli di monitor).

Prima di addentrarci nei dettagli vediamo a cosa servono i 3 componenti:

  • Device Tracker: questo componente solitamente viene utilizzato per identificare la presenza di dispositivi (e quindi anche di persone, nel caso di un telefono personale) in una determinata posizione, e solitamente (almeno nella configurazione che vi mostrerò) viene fatto guardando se un dispositivo è connesso o meno al router, con tutte le limitazioni del caso.
  • Sensor Template: questo componente vi permette di creare sensori relativi a un particolare dato e di trasformarlo nel formato che più vi fa comodo; in questa guida per esempio lo sfrutteremo per avere dei sensori che mostrino degli attributi del FRITZ!Box NetMonitor e ce li convertino da Bytes/s a KBytes/s.
  • FRITZ!Box NetMonitor: questo componente è molto semplice, si collega al vostro router e vi fornisce tutte le informazioni relative alla vostra connessione internet (se è connesso al provider, velocità massima U/D, velocità corrente U/D ecc).

Ora che abbiamo capito a cosa servono tutti i componenti procediamo ad utilizzarli al meglio!

Installiamo il Device Tracker relativo al il FRITZ!Box

L’installazione è molto semplice, basta aggiungere un paio di righe al vostro file configuration.yaml:

#fritzbox
device_tracker:
  - platform: fritz
    host: fritz.box
    new_device_defaults:
      track_new_devices: true

Ho messo volutamente visibile l’opzione track_new_devices (a true di default) perchè potreste non volere vedere aggiunti a homeassistante tutti i device collegati alla vostra rete ma usarne solamente alcuni (tipo i vostri telefoni cellullari). Quindi una volta che son stati aggiunti tutti i device con una prima scansione, potrete mettere quel valore a false ed editare il file known_devices.yaml per lasciare solamente quelli che vi interessano.

Installiamo FRITZ!Box Net Monitor

L’installazione del Net Monitor è altrettando semplice, dovrete aggiungere nella sezione sensor: (che nel mio caso si trova nel file sensors.yaml, ma potreste benissimo avere tutto nel file configuration.yaml)

# fritzbox netmonitor

    - platform: fritzbox_netmonitor
      name: 'FritbozNetMonitor'
      host: '192.168.1.1' #il vostro ip del router

Semplice no?

Scopriamo i Sensor Template

Infine non ci resta creare i relativi Sensor Template. Ma cosa sono di preciso?
Essi ci permettono di aggiungere dei sensori “virtuali” che ci presentano su Home Assistant i dati come se fossero dei sensori normali; il grosso vantaggio è che possiamo elaborarli come meglio ci piace.

In particolare li ho utilizzati per trasformare i dati prelevati (velocità di Upload e Download) dal NetMonitor da Bytes/s a KBytes/s.
Essendo questi dati degli attributi dell’entità Net Monitor senza questi Sensor Template potremmo aggiungerli a Home Assistant come dei sensori (e quindi utilizzare sensor card o gauge).

Ma veniamo al dunque, per passare da Byte/s a KByte/s bisogna dividere i valori originali per 1000 (e non perchè per 1024 come la logica ci direbbe vi chiederete voi? beh per rispondere vi rimando a questa discussione) e per farlo aggiungiamo sempre su sensor: (e quindi per me sensors.yaml) i nuovi sensori

- platform: template
      sensors:
        fritz_transmission_rate_up:
          friendly_name: "FRITZ!Box Upload"
          unit_of_measurement: 'Kb/s'
          value_template: "{{ (state_attr('sensor.fritboznetmonitor', 
 transmission_rate_up')| int / 1000 ) | round(1) }}"

        fritz_transmission_rate_down:
          friendly_name: "FRITZ!Box Download"
          unit_of_measurement: 'Kb/s'
          value_template: "{{ (state_attr('sensor.fritboznetmonitor', 'transmission_rate_down')| int / 1000 ) | round(1) }}"

        fritz_ext_ip:
          friendly_name: "FRITZ!Box External IP"
          value_template: "{{ state_attr('sensor.fritboznetmonitor', 'external_ip') }}"

In particolare dovrete definire il nome del nuovo sensore (esempio fritz_transmission_rate_up) e questo sarà quello visualizzato con sensor.nomesensore, poi potete definire un “friendly_name” cioè un nome bello che verrà visualizzato nella interfaccia grafica di HomeAssistant, infine l’unità di misura e il value_template dove andrete a scrivere cosa deve mostrare il vostro sensore.

In particolare

value_template: “{{ (state_attr(‘sensor.fritboznetmonitor’,
transmission_rate_up’)| int / 1000 ) | round(1) }}”


dice: visualizza l’attributo transmission_rate_up del sensore sensor.fritboznetmonitor, prendilo come intero e dividilo per mille (| int / 1000) e il risultato arrotondalo alla prima cifra decimale (round(1)).

Spero che questa breve spiegazione vi aiuti a capire il funzionamento di questi sensori e di poterli sfruttare al meglio che sono uno strumento davvero molto comodo 😉

Ecco fatto, ora non vi resta che riavviare HomeAssistant e avrete i nuovi sensori disponibili per creare le vostre interfacce nel migliore dei modi! Alla prossima!

Questa voce è stata pubblicata in Arch Linux, Home automation e contrassegnata con , , , , , , , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...