Effetto WOW con un vecchio telecomando e Home Assistant

L'angolo dei lettori

Scritto da Vincenzo Caputo

Benvenuti nella rubrica "l'angolo dei lettori". Questo spazio è una sezione del blog che permette a chiunque di scrivere un articolo o realizzare un video, effettuare prove e test che riguardano il mondo della tecnologia e proporne la pubblicazione su queste pagine.

Oggi Nicola Bertelli, che ringraziamo per questa splendida guida, ci spiegherà come poter elaborare un segnale ir emesso da un telecomando di una televisione (o di altri elettrodomestici) per lanciare dei comandi al nostro Home Assistant in base alle nostre necessità.

Alla pressione di un tasto riusciremo così a richiamare script, accendere o spegnere degli switch, accendere luci del colore che più interessa, ma anche andare a dimmerare delle luci.

Insomma l’effetto meraviglia è garantito!!

Come leggerete poi, ho cercato di rendere il procedimento il più semplice e veloce possibile da settare, in modo che veramente tutti possano almeno provare questo progetto.

Lista della spesa:

Nulla vieta di utilizzare anche due telecomandi contemporaneamente !!

ATTENZIONE su alcuni telecomandi ad ogni tasto è assegnato più di un tipo di segnale, questi telecomandi non sono adattabili a questo progetto

Fase 1: programmazione del Nodemcu o dell’ Arduino

Scaricare la mia repository github (https://github.com/nicola-bertelli/ir_home_assistant) con questo link diretto: https://github.com/nicola-bertelli/ir_home_assistant/archive/master.zip

se utilizzate un Arduino entrate nella cartella Arduino, altrimenti aprite la cartella Nodemcu, al loro interno trovate lo sketch da caricare nella vostra schedina.

Per il Nodemcu dobbiamo anche scaricare la libreria IRremoteESP8266 con questo link diretto:

https://github.com/markszabo/IRremoteESP8266/archive/master.zip

I collegamenti sono a dir poco banali:

ATTENZIONE: quelli rappresentati sono i sensori più diffusi, controllate comunque lo schema di collegamento del prodotto acquistato

L’alimentazione  è il 5v per l’Arduino e 3.3v per il Nodemcu, (non usate il 5v per il nodemcu), per i segnali in uscita ho scelto il pin 11 per Arduino e pin D6 per Nodemcu.

Una volta  collegato il sensore e caricato lo sketch, verifichiamo dalla stampa seriale che, premendo un pulsante del telecomando in direzione della schedina, venga visualizzato il codice corrispondente al comando generato.

Per terminare non ci resta che collegare il microcontrollore al USB del Raspberry.

Ecco il risultato finale

Per il mini-pc:

Fase 2: programmazione del Raspberry o del nostro Debian-Hassio

Come sempre vi rimando a questa guida dove spiego approfonditamente come accedere da remoto e come modificare i file e le cartelle del Raspberry: GUIDA

 

Ciò non toglie che possiate utilizzare il Raspberry in locale o aprendo un collegamente VNC come spiega Vincenzo in quest’altra guida GUIDA .

 

Apriamo un terminale e digitiamo questi comandi per clonare la mia repository di Ghitub:

sudo apt-get install git python-pip

git clone     https://github.com/nicola-bertelli/ir_home_assistant.git

( 5 spazi dopo gitclone )

copiamo il contenuto della cartella  raspberry nella home:

cp -R ir_home_assistant/raspberry/telecomando/ ~/

ora installiamo le librerie mancanti:

sudo pip install requests pyserial pyaml

Su raspberry non è necessario, ma su altri sistemi linux potrebbe essere bloccata la comunicazione seriale per l’utente di default, bisogna quindi lanciare il seguente comando da root :

usermod -g dialout nome_utente

dove nome_utente è il nome utente impostato durante l’installazione

adesso entriamo nella cartella telecomando e lanciamo il primo dei tre script che ho creato:

cd ~/telecomando/python trova_seriale.py

Questo, dopo una breve elaborazione, ci mostrerà in quale porta seriale è state collegata la nostra scheda, confermeremo quindi con  s  se vogliamo che il file di configurazione venga aggiornato con tale valore (consigliato)

apriamo il file config.yaml, presente nella stessa cartella telecomando, con il nostro editor di testi preferito e verifichiamo che accanto a porta_seriale, sotto la chiave node_arduino, sia stato inserito il valore della porta occupata.

Non chiudiamo il file di configurazione, a breve ci tornerà nuovamente utile.

apriamo il nostro Home Assistant ed andiamo a richiedere  un tocken in modo da essere autorizzati all’utilizzo delle RESTapi:

Andiamo nella sezione utenti cliccando vicino ad “Home assistant”

 

Scorriamo fino alla fine della pagina e clicchiamo CREA TOCKEN

assegnamo un nome a piacere:

ci verrà restituito il tocken che inseriremo nel file di configurazione

quindi torniamo al nostro config.yaml ed incolliamo il codice accanto alla voce tocken e già che ci siamo compiliamo anche la sezione relativa all’ host di Home Assistant

salviamo, e teniamo ancora aperto il file di configurazione.

Torniamo al nostro terminale e lanciamo un secondo script:

python ir_arduino.py

lasciando lo script in esecuzione puntiamo il telecomando verso il sensore ir vedremo così comparire i codici che l’Arduino manda via seriale al Raspberry

mano a mano che proviamo tutti i pulsanti potremo così aggiornare il file di configurazione con i comandi che vogliamo lanciare.

Vi consiglio di provare più volte lo stesso pulsante per individuare il codice corretto e verificate soprattutto che il codice non subisca variazioni ad ogni pressione.

Fase 3: configurazione dei comandi

Facendo scorrere il config.yaml  avrete notato che ho inserito dei comandi di esempio, ora vi spiego come configurarli.

Potete utilizzare tre chiavi: comando, dimmer, comando_alternato.

La chiave comando permette di lanciare un servizio o di accendere una luce di cui si può impostare colore e luminosità ecco alcuni esempi:

nome_pulsante è un valore a nostro piacerecodice è il codice del segnale IR che ci trasmette l’Arduino ricavato lanciando lo script descritto precedentementeservizio è il servizio di Home Assistant che vogliamo richiamareentita è appunto l’entità di Home Assistant che subisce il servizioluminosita e colore sono settabili utilizzando il servizio light.turn_on , NON è obbligatorio utilizzarli

La chiave dimmer permette di impostare un tasto per aumentare o diminuire la luminosità di un punto luce compatibile: premendo un pulsante il sistema “chiede” ad Home Assistant il valore della luminosità dell’entità stabilita e, in base alle nostre necessità, aumenta o diminuisce l’intensità luminosa di un passo determinato.

Come vedete sotto ho impostato il bilanciere del volume per questa funzione

Dunque skip è il passo con la quale la luminosità aumenta o diminuisceentita è l’entità di Home Assistant compatibile con il dimmerdirezione “+” indica un aumento di luminostà  “-” una diminuzione

La chiave comando_alternato permette di usare un unico pulsante per due servizi differenti che vengono richiamati alternativamente

servizio_da_eseguire è il prossimo servizio che verrà lanciato alla pressione del pulsante settato, può essere servizio_uno o servizio_due.

Di conseguenza in servizio e entita del servizio_uno e del servizio_due imposteremo le azioni che verranno alternate.

Fase 4: avvio dei comandi

NB se non si sta usando il Raspberry o comunque l’utente non è “pi” è necessario editare il file telecomando.py e sostituire “/home/pi” con “home/nome_utente” nelle prime righe del file.

Questo, una volta premuto il tasto corrispondente, si occuperà della comunicazione con Home Assistant e stamperà a video i dettagli del servizio e dell’entità.Se il sistema riceve un segnale non elencato lo stamperà e se vogliamo, possiamo aggiungerlo e rappresentarlo a dovere.

NB: non è necessario riavviare lo script ogni volta che modifichiamo il file di configurazione, potremo cioè aggiungere pulsanti o cambiare caratteristiche alle entità in tempo reale.  Soprattutto, se più avanti lanciamo in autoavvio il nostro telecomando.py non saremo costretti a riavviare il sistema ad ogni modifica del file config.

Fase 5: auto-avvio dello script telecomando.py

Clonando la mia repository avete anche scaricato il file avvio.sh, se non avete un altro lanciatore di attività iniziale quindi digitiamo:

cp ~/ir_home_assistant/avvio.sh ~/

ora richiamiamo avvio.sh durante il boot del sistema:

sudo contab -e

andiamo in fondo al file mostrato e aggiungiamo la riga:

@reboot sh /home/pi/avvio.sh

per il mini-pc @reboot sh /home/nome_utente/avvio.sh

NB se non si sta usando il Raspberry o comunque l’utente non è “pi” è necessario editare il file avvio.sh e sostituire “/home/pi” con “home/nome_utente”

salviamo, usciamo e riavviamo con   

sudo reboot

Se avete qualsiasi tipo di proposta di miglioramento sarà ben accetta, se avete dubbi o perplessità non dovete far altro che commentare l’articolo o il video e sarà mia premura aiutarvi ad ultimare tutti i passaggi.

Ringraziamo ancora Nicola per questa e per tutte le guide che ci sta proponendo e godiamoci il video dove lo stesso Nicola ci mostrerà passo passo tutta la configurazione. Buona visione!

Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.

Vincenzo Caputo

Nato a Matera, il 1° novembre 1977. Sono da sempre appassionato di tecnologia e ho un'esperienza lavorativa ventennale nel settore IT. Mi piace sperimentare e cercare sempre nuove soluzioni e soprattutto mi piace comunicare le mie esperienze agli altri.


Vai ai commenti