D’estate ormai il caldo è diventato insostenibile, rendendo necessario l’utilizzo di un condizionatore, specialmente nelle città.
Vivendo in un condominio ho dovuto ripiegare su un pinguino, in quanto installare una pompa di calore classica (con unità esterna e interna) è un procedimento costoso se non si ha un balcone nelle vicinanze.
Fortunatamente nel muro della stanza che mi interessa rinfrescare è già presente un foro di ventilazione del diametro corretto per posizionare il tubo di scarico dell’aria calda.
I problemi del pinguino, che alla fine è una pompa di calore in miniatura (nel mio caso però fa solamente refrigerazione perché non è provvisto della valvola invertente a quattro vie) sono noti: innanzitutto il rumore causato dal compressore e dalle due ventole (una per radiatore), poi l’occupazione di spazio e infine la necessità di avere un modo per scaricare l’aria calda. Si va anche a perdere in efficienza a causa del fatto che si genera una pressione negativa all’interno della stanza per via dello scarico dell’aria calda, e questo causa un continuo ricircolo d’aria che riduce l’effetto del raffreddamento.
A questi problemi mi sono abituato in fretta, ma non sono riuscito a fare altrettanto con un altro aspetto di questo impianto: non c’è modo di temporizzare l’accensione e quindi spesso al rientro a casa trovavo la stanza calda.
Serviva un modo per poter accendere da remoto il pinguino in maniera da rinfrescare l’ambiente quei dieci minuti prima del mio rientro.
Inizialmente ho pensato di emulare il tocco del tasto di accensione, che come moltissimi elettrodomestici è un semplice touch capacitivo. L’idea era di attaccarci sopra del nastro in rame collegato al GND tramite un optoisolatore (per l’isolamento galvanico) controllato da un ESP32, ma non mi sembrava una soluzione molto pulita e in ogni caso sarebbe stato un controllo stateless: non avrei avuto modo di impostare la temperatura, la modalità o la velocità della ventola, il pinguino si sarebbe riacceso con le impostazioni dell’ultimo utilizzo.
L’unica alternativa rimanente era quindi il controllo tramite infrarossi (IR), lo stesso metodo usato dal telecomando in dotazione.
I telecomandi dei condizionatori attuano un controllo stateful, ovvero alla pressione di un qualsiasi tasto viene inviata un pacchetto dati contenente tutte le informazioni dello stato di controllo, non solo quella relativa al tasto premuto: modalità, temperatura, velocità della ventola, timer spegnimento, stato modalità notte.
Questo evita una possibile desincronizzazione tra il telecomando e il condizionatore.
I telecomandi dei televisori, viceversa, attuano un controllo stateless (un comando secco per alzare/abbassare il volume o cambiare canale).
La buona notizia del controllo stateful è che basta memorizzare un solo pacchetto dati (i.e. una sola trasmissione IR) per dare un’impostazione completa alla macchina (es. “Acceso, Modalità refrigerazione, Temperatura 26 gradi, Ventola al massimo”), per farlo però bisogna clonare il codice inviato dal telecomando per quella specifica impostazione, e ritrasmetterlo con un modulo IR.
Se si volesse clonare l’intero telecomando bisognerebbe clonare ogni singola combinazione di impostazioni oppure decodificare il protocollo di comunicazione e i singoli codici associati ad ogni impostazione, e poi creare un codificatore che metta tutto assieme.
Mi limito quindi a clonare l’unico pacchetto dati di mio interesse.
Iniziamo quindi con lo shopping: come emettitore IR ho scelto questo “Smart IR” della Tuya modello S06 che costa circa €6 (in realtà la mia scelta è stata abbastanza avventata, probabilmente esistono modelli integrabili più facilmente).
Ho scelto la versione WiFi perché attualmente non ho un gateway Zigbee.

Nonostante il basso costo, l’accoppiamento con l’app Smart Life è stato semplicissimo e tramite questa app ho subito trovato l’opzione per registrare il codice di un telecomando e riprodurlo per testare se il prodotto funzionasse correttamente.
L’idea di passare dai server dell’app Smart Life e di dover tenere l’ennesima app sul mio cellulare non mi entusiasmava: mi sono immerso quindi nella ricerca di un modo per integrare questo “Smart IR” della Tuya su Home Assistant e dopo diversi mal di testa ne sono uscito vittorioso, vi riporto qui il mio percorso:
Integrazione in Home Assistant
Prima di buttarci nell’integrazione dello Smart IR su Home Assistant devo fare una precisazione: affinché questa operazione funzioni bisogna effettuare diversi passaggi ed è necessario creare un’account sull’app Smart Life citata prima, per associare lo Smart IR. Alla fine di questa procedura, potremo disinstallare l’app dal cellulare.
Se la vostra installazione di Home Assistant è vergine, bisognerà procedere con l’installazione di HACS che è una specie di App Store aggiuntivo.

Successivamente utilzzeremo HACS per scaricare l’integrazione Tuya Local. Le istruzioni per farlo le trovate nella loro repository oppure continuate a leggere qui.
Selezioniamo “HACS” dal menu laterale.
Poi clicchiamo sui tre puntini in alto a destra, si aprirà un piccolo menu e dovremo selezionare Archivi digitali personalizzati.
Nella finestra che appare dovremo inserire “make-all/tuya-local” (senza le virgolette) nel campo di testo “Archivio digitale”, e come Tipo selezioniamo Integrazione. Terminiamo cliccando su Aggiungi e riavviando il server.
Ora procediamo con l’aggiunta del nostro Smart IR, andiamo nelle Impostazioni di Home Assistant usando il menu laterale, poi clicchiamo su Aggiungi integrazione in basso a destra e cerchiamo Tuya Local. Seguiamo la guida sul repository per aggiungere lo Smart IR.
A questo punto non rimane altro che registrare su Home Assistant il comando che vogliamo inviare. Torniamo nelle Impostazioni di Home Assistant, clicchiamo su “Strumenti per sviluppatori” e poi spostiamoci nella scheda “Azioni”.
Qui cerchiamo “learn remote” e clicchiamo sulla prima voce suggerita, dovrebbe aprirsi questa pagina:

Compiliamo i campi come nell’immagine, dando un nome al dispositivo e un nome al comando che vogliamo registrare (ad esempio “on_26” lo associamo al comando per accendere il condizionatore a 26 gradi).
Clicchiamo in basso a destra sul tasto blu Esegui azione e, dopo aver avvicinato il telecomando allo Smart IR, premiamo il tasto di accensione sul telecomando assicurandoci di aver preventivamente selezionato le impostazioni desiderate (ricordiamoci che il controllo è di tipo stateful).
Il tasto Esegui azione divenderà una spunta verde per qualche secondo, assicurandoci che il comando è stato registrato.
Ripetiamo la procedura stavolta modificando il comando in “off” e premendo il tasto di spegnimento sul telecomando.
Ora possiamo andare sulla Dashboard e aggiungere un pulsante per l’accensione e uno per lo spegnimento, sfruttando l’entità Ir intelligente (Telecomando) creata da Local Tuya precedentemente, e inserendo lo stesso nome del dispositivo e del comando che abbiamo usato durante la fase di registrazione del comando.
Come comportamento specifichiamo Esegui azione e come azione selezioniamo Send remote command.


Facciamo lo stesso anche per il comando di spegnimento ed ecco che ora possiamo controllare l’accensione e lo spegnimento del pinguino da una semplice app.

In un futuro mi piacerebbe tentare di riprogrammare questo Smart IR in maniera da staccarmi completamente dal sistema della Tuya e flashare un firmware custom (magari della ESPhome) che mi permetta di avere controllo totale e in locale di questo dispositivo.