GNU/Linux >> Linux Esercitazione >  >> Linux

Domotica:Running Home Assistant con Podman

I dispositivi intelligenti ci circondano e la lunga lista di dispositivi pronti per la connessione all'Internet delle cose (IoT) si allunga ogni giorno di più. Ad esempio, la popolarità delle lampadine intelligenti è aumentata rapidamente negli ultimi anni e il mercato continua a crescere, tanto che si prevede che sarà "il dispositivo per la casa intelligente in più rapida crescita nei prossimi cinque anni". Mentre alcuni grandi nomi del settore dominano il mercato, ci sono molti concorrenti più piccoli che si uniscono alla mischia e offrono alternative più economiche con ancora più funzionalità. Questo è ottimo per la concorrenza, ma solleva una seria preoccupazione e una situazione che molti amministratori di sistema conoscono fin troppo:un incubo di integrazione.

[ Potrebbe interessarti anche: Aiuta con la ricerca sul COVID-19 utilizzando Folding@home su Linux ]

Il problema è che ogni produttore tende a fornire la propria soluzione integrata e closed source per controllare i propri dispositivi, di solito sotto forma di app mobile. Ma cosa succede quando decidi di acquistare un nuovo dispositivo di un produttore diverso da quello che hai già integrato nella tua domotica? È probabile che finirai per dover utilizzare più app per controllare i dispositivi e non iniziamo a parlare di come farli funzionare insieme in una sorta di modo automatizzato. Sono disponibili servizi cloud per risolvere questo problema, fornendo un mezzo per la creazione di applicazioni e l'automazione per il controllo di dispositivi di vari produttori. Tali servizi offrono un'ottima piattaforma per iniziare il tuo viaggio nell'automazione dei dispositivi intelligenti, ma questi servizi tendono a funzionare con un abbonamento a pagamento o su modelli "freemium" molto limitati e ti ritroverai a fare sempre più affidamento su questo servizio basato su cloud .

Nel 2013 è stato avviato un progetto open source per affrontare questo tipo di problemi e portare il controllo locale dei dispositivi intelligenti dal cloud e di nuovo in casa. Oggi il progetto sta andando alla grande, con oltre 2.500 contributori e nuove integrazioni e funzionalità che vengono implementate frequentemente. In questo articolo ti presenterò la piattaforma di domotica open source chiamata Home Assistant.

Distribuzione del contenitore Home Assistant

Home Assistant può essere distribuito utilizzando vari metodi di installazione, di cui il modo consigliato è distribuire Home Assistant OS, che viene fornito con tutto il necessario. Tuttavia, utilizzeremo l'immagine del contenitore per questo assaggio, che ci fornirà una rapida panoramica su come funziona Home Assistant. I passaggi seguenti presuppongono che tu abbia già un runtime del contenitore distribuito sul tuo sistema, come Podman. Home Assistant funziona sulla porta TCP 8123, quindi devi assicurarti che questa porta non sia già in uso sul tuo sistema.

1. Inizia tirando l'immagine del contenitore:

$ podman pull docker.io/homeassistant/home-assistant:stable

2. Imposta una directory di configurazione:

$ mkdir ~/hass_config

3. Distribuisci il container utilizzando Podman:

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4. Una volta che il container è attivo e funzionante, apri il tuo browser web preferito e vai a http://127.0.0.1:8123/ . Crea il tuo account utente amministratore compilando i campi richiesti.

5. Se hai già dei dispositivi smart collegati alla tua rete domestica, potresti scoprire nella schermata successiva che Home Assistant li ha già scoperti e li presenta come integrazioni da installare subito. Salteremo questo passaggio e vedremo come impostare le integrazioni nella sezione successiva. Premi Fine per passare alla GUI Lovelace di Home Assistant ed esplorare un po' in giro per familiarizzare con la configurazione del terreno.

Nota :se noti che mancano alcune voci di menu o un messaggio di errore come il seguente nel registro dell'assistente domestico:

Impossibile impostare le dipendenze di default_config. Installazione non riuscita per le dipendenze:automazione.

Riavvia semplicemente Home Assistant tramite Configurazione -> Controlli del server -> Riavvia .

Integrazioni e automazione

Con il tuo contenitore Home Assistant distribuito, restiamo bloccati nella configurazione. Integrazioni in Home Assistant ci danno la possibilità di interfacciarci con ingressi esterni, siano essi un'API online come un orario dei trasporti pubblici o un dispositivo fisico smart come una striscia luminosa a LED o un umidificatore intelligente. Al momento in cui scrivo, Home Assistant offre una raccolta di 1.765 integrazioni e quella libreria sta crescendo rapidamente. Scoprirai che molti marchi importanti sono già supportati e se la tua casa contiene già una sorta di lampadina intelligente, TV o macchina per il caffè, allora c'è una forte possibilità che Home Assistant abbia già l'integrazione per questo. In caso contrario, e vuoi sporcarti le mani, il progetto è open source, ospitato su GitHub ed è sempre alla ricerca di contributi!

Per questo esempio, imposterò Met.no integrazione per il recupero delle previsioni meteorologiche nei paesi nordici. Sentiti libero di utilizzare un altro fornitore di servizi meteorologici, se lo desideri.

  1. Nella GUI di Home Assistant, vai a Configurazione -> Integrazioni -> Aggiungi integrazione . Cerca "Meteorologisk institutt (Met.no)" e inserisci le informazioni su nome, latitudine e longitudine desiderate. Questi potrebbero essere già stati compilati per te da Home Assistant, ma in caso contrario, puoi recuperarli altrove su Internet e inserirli tu stesso.
  2. Premi Invia e poi Fine per aggiungere l'integrazione alla configurazione dell'assistente domestico. Utilizzando il riquadro di navigazione a sinistra, fai clic su Panoramica per accedere alla GUI di Lovelace.
  3. Per impostazione predefinita, Home Assistant è configurato per popolare automaticamente la GUI di Lovelace, ma a un certo punto vorrai prendere il controllo e configurarlo come desideri. Fai clic sull'icona del menu kebab (tre punti verticali) in alto a destra e seleziona Modifica dashboard -> Prendi il controllo .
  4. Fai clic su Aggiungi carta e, per il tipo di carta, seleziona Previsioni meteo . Ti verranno quindi presentate le opzioni di configurazione per questa scheda. Nella maggior parte dei casi, Home Assistant avrà selezionato automaticamente l'entità corretta per te, ma puoi utilizzare il menu a discesa per modificare l'entità, se necessario. Nel mio caso, ho assegnato alla mia integrazione Met.no il nome "Casa", quindi l'entità viene denominata "weather.home" automaticamente. Ho anche impostato l'attributo secondario a "Velocità del vento".
  5. Dopo aver premuto Salva , la scheda viene aggiunta alla GUI di Lovelace. Puoi rimuovere le carte facendo clic sull'icona del menu kebab in basso a destra della rispettiva carta e selezionando Elimina carta . Quando hai finito di modificare la dashboard, premi la X in alto a sinistra per tornare alla modalità di visualizzazione.

Ora che abbiamo aggiunto un'integrazione, possiamo esaminare la configurazione di un'automazione. Creeremo un'automazione che invia ogni mattina un breve bollettino meteo al tuo telefono tramite notifica push. Affinché funzioni, dovrai installare l'app Home Assistant sul tuo dispositivo mobile ed effettuare l'accesso. Una volta effettuato l'accesso, il telefono inizierà a riferire al server Home Assistant. Guardando in Configurazione -> Entità , troverai un elenco dei vari sensori che il tuo telefono sta segnalando a Home Assistant. La comunicazione tramite la porta TCP 8123 deve essere consentita tra il telefono e il contenitore Home Assistant sulla rete locale, quindi potrebbe essere necessario modificare le regole del firewall di conseguenza.

1. Vai a Configurazione -> Automazioni -> Aggiungi automazione -> Inizia con un'automazione vuota .

2. Assegna un nome all'automazione "Bollettino meteorologico mattutino".

3. In Trigger , seleziona Dom per il tipo e assicurati Evento è impostato su Alba . Puoi aggiungere un offset come "01:00:00" per un'ora dopo l'alba o "-01:00:00" per un'ora prima dell'alba. Puoi anche impostare un orario fisso utilizzando il Ora digitare.

4. In Azioni , imposta il tipo su Servizio di chiamata e imposta il Servizio a "notify.mobile_app_your_phone_model" . Per Servizio data, dobbiamo scrivere la nostra configurazione in formato YAML e useremo il template Jinja2 per eseguire alcune istruzioni condizionali. Puoi trovare ulteriori informazioni sulla creazione di modelli in Home Assistant.

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5. Premi il pulsante blu Salva pulsante per salvare l'automazione. Sulle Automazioni pagina, puoi testare la tua nuova brillante automazione facendo clic su Esegui . Ora dovresti avere una notifica push sul tuo telefono con un breve bollettino meteo di Home Assistant che assomiglia a questo:

[ Hai bisogno di più su Ansible? Partecipa a un corso di panoramica tecnica gratuito di Red Hat. Ansible Essentials:Semplicità nell'automazione Panoramica tecnica. ] 

Concludi

Si tratta di un'installazione, configurazione e distribuzione di base di Home Assistant. Ho impostato una nuova integrazione sulla dashboard di Lovelace e ti ho dato un'anteprima delle automazioni. Anche se ho a malapena graffiato la superficie dell'abbondanza di integrazioni, automazioni e configurabilità di Home Assistant, dovrebbe almeno darti un assaggio di ciò che è possibile. Sfruttando appieno le offerte di Home Assistant, scoprirai un numero quasi infinito di possibilità; sei davvero limitato solo dalla tua immaginazione. Se ti è piaciuta questa breve introduzione, ti consiglio di continuare a giocare con l'immagine del contenitore per avere un'idea di ciò che Home Assistant può fare per te. Se desideri configurare un ambiente di produzione, dai un'occhiata al sistema operativo Home Assistant.


Linux
  1. Come eliminare gli account utente con Home Directory in Linux

  2. Anteprima della tecnologia:esecuzione di un contenitore all'interno di un contenitore

  3. pytest in esecuzione con un'altra versione di python

  4. Autorizzazioni di scrittura dell'utente SFTP con chroot

  5. L'impostazione dell'affinità del processo in esecuzione con il set di attività non riesce

Inizia con Sweet Home 3D su Linux

Tutorial Podman - Inizia con Podman

Automatizzare ServiceNow con Red Hat Ansible Automation Platform

Come eseguire i pod come servizi di sistema con Podman

Introduzione all'esecuzione di un server OpenVPN

Bash Beginner Series #10:Automazione con Bash