De foarte multă vreme mi-am dorit să îmi automatizez casa, să pot controla temperatura apartamentului de la distanță, să pot controla întrerupătoarele prin comandă vocală (Alexa și Google Home), dar ca orice programator las proiectele personale ultimele în lista priorităților. Spre norocul meu, în această toamnă am dat din întâmplare peste o platformă foarte interesantă, Home Assitant, care la prima vedere poate să mă ajute să adun toate echipamentele sub aceeași platformă cu efort minim și, se pare că după patru ani, am reușit în sfârșit să conectez majoritatea aparatelor din casă. Mai jos se pot vedea echipamentele integrate.
Home Assitant este o platformă open source pentru automatizarea casei tale. Desigur nu este singura, dar am ales această platformă datorită simplității configurării acesteia și comunității destul de mare care o sprijină.
Prin intermediul platformei, majoritatea echipamentelor inteligente pe care le putem găsi într-o casă pot fi integrate printr-o simplă configurare. Datorită comunității din spate, sunt peste 1000 de componente pe care platforma le oferă în mod "oficial". Pe lângă componentele listate pe pagina oficială, sunt destul de multe alte repositories care pot fi folosite pentru diferite întrebuințări.
Însă destul cu poveștile la nivel de teorie. Cred că cea mai bună reclamă a platformei o constituie chiar partea de implementare.
Instalarea și pregătirea RPI-ul pentru sistem sunt foarte simple. Este nevoie de un SD Card preferabil de 32 GB pe care să copiem o imagine preconfigurată. Această opțiune este cea mai simplă soluție de a instala sistemul hass.io și totul merge ca pe roate. Există și variante pentru utilizatori avansați precum Hassbian, Docker image, Raspbian, Windows, Synology etc. . Eu am preferat versiunea cea mai simplă astfel încât să ajung la partea interesantă cât mai rapid.
După ce avem cardul SD pregătit, nu ne rămâne de făcut decât să conectăm RPI-ul la rețeaua locală și putem accesa platforma și crea primele configurări. Pagina de "Getting Started" de pe home-assistant.io este foarte utilă și foarte coerentă clar.
Alexa este cel mai popular VPĂ (Virtual Personal Assistant) și prin intermediul acestuia poți să interacționezi prin comenzi vocale cu sistemul "casa inteligentă".
Cel mai important pentru mine este să pot controla cu Alexa cât mai multe din echipamentele inteligente. Scenariul cu care am început a fost să închid lumina din dormitor cu Alexa. Echipamentele folosite pentru acest scenariu sunt : Alexa, RPI, Broadlink Remote Pro, Broadlink 2Gang Switch.
Broadlink Remote Pro este un echipament care poate recepționa și emite semnale IR (infraroșu) și RF (radio frecvente), iar Broadlink 2Gang Switch este un întrerupător cu două butoane care poate fi controlat prin RF.
Primul pas a fost să pot controla întrerupătorul de pe telefon cu aplicațiile pe care compania Broadlink le oferă. După aceasta, a trebuit să integrez Home Assistant de pe RPI cu platforma Broadlink. Totul se rezumă la niște configurări simple. În fișierul configuration.yaml (nucleul întregului sistem) trebuie să trecem ip-ul și MAC-ul echipamentului. După ce facem această configurare, putem recepționa și transmite prin platforma coduri RF/IR.
Pentru Broadlink, aşa arată configurarea:
Platforma folosește o componentă build-in pentru a se conecta la echipamentul Broadlink, iar prin UI am reușit să recepționez codul RF pe care întrerupătorul îl așteaptă la comenzile de pornit/oprit. Astfel Întrerupătorul ,,Bedroom" din platformă va trimite comenzile corespunzătoare.
Acum integrarea cu Alexa. Cel mai important este să pot controla lumina prin voce nu doar de pe telefon. Următorul pas este să facem platforma de Home Assistant disponibilă extern, astfel încât serverele Amazon să poată accesa sistemul. Tot API-ul de care are nevoie Alexa este built-in și nouă nu ne rămâne decât să adăugăm echipamentele pe care vrem să le controlăm prin Alexa.
Dat fiind faptul că folosesc un abonament de internet pentru acasă, nu am alocat un IP fix. Pentru a atribui o adresă fixă sistemului am folosit plug-in-ul DuckDNS care oferă pe lângă DDNS și certificat SSL gratuit. Acest certificat este necesar pentru a putea integra platforma cu Alexa. Din păcate, este puțin mai greu să configurăm totul cum trebuie, dar dacă urmăm pașii de pe site-ul oficial, totul ar trebui să funcționeze fără probleme. Important este numele pe care îl alegeți, după care se creează contul și tokenul de acces. Mai jos poate fi observat un screenshoot din configurarea plug in-ului folosit.
După aceste configurări am început să creez skilluri proprii pentru Alexa. Acest pas e destul de simplu, dar nu eram mulțumit de rezultat. Pentru a controla lumina, trebuia de fiecare dată să apelez skillul și după aceasta, să spun comanda (ex: "Alexa ask Home Assitatant to turn off bedroom lights"). Eu voiam să recunoască Alexa întrerupătorul ca echipament și să pot da comanda : "Alexa turn off bedroom lights".
După zece minute de căutat, am găsit soluția. Home Assistant oferă posibilitatea să simuleze un Philips Hue care este recunoscut de Alexa ca echipament. După o configurare foarte rapidă, am reușit să conectez Hue-ul emulat și să controlez lumina din dormitor. În continuare, este nevoie să activăm skillul de Hue în aplicația pentru Alexa și să creăm legătura dintre conturile Amazon și Philips. În Home Assistant trebuie doar să adăugăm emulated_hue: in configuration.yaml și se activeaze endpointurile care emulează hubul Philiphs Hue, astfel încât Alexa să detecteze echipamentele din sistemul Home Assistant.
Acum doi ani am cumpărat o stație meteo și un termostat NetAtmo pentru a controla temperatură din apartament. Integrarea echipamentelor Netatmo a fost foarte ușor de făcut. Prima dată, am schimbat numele echipamentelor din aplicația Netatmo, astfel încât să îmi fie facil de citit datele. După aceea, din aplicația celor de la Netatmo, am creat o "aplicație externă" pentru a primi un Client Id și Client Secret care trebuie folosite în Home Assistant. După un restart al sistemului, toate echipamentele Netatmo sunt disponibile în platformă, iar widgetul pentru termostat e chiar folositor.
Stația meteo măsoară temperatură și umiditatea interioară, iar prin intermediul senzorului extern poate măsura și temperatura exterioară. Având aceste date, m-am gândit că aș putea crea un senzor care să îmi indice posibilitatea apariției igrasiei în cameră. Spre norocul meu, nu a trebuit să fac nimic personalizat deoarece platforma are un senzor încorporat pentru acest calcul. Tot ceea ce a trebuit să fac, e să grupez senzorii din aceeași cameră și să calculez după o formulă "punctul critic" al camerei. Acesta se referă la diferența de temperatură a peretelui în funcție de temperatura de afară și din apartament. În treizeci de minute, am reușit să configurez senzorul de igrasie pentru trei camere, unde am diferiți senzori de temperatură/umiditate.
Dar la ce bun e să ai un indicator de igrasie, dacă nu te anunța în timp real când condițiile din cameră se schimbă. Pentru acest lucru, aș avea nevoie de notificări pe telefon astfel încât să nu tot verific dashboard-ul în fiecare oră. Sunt peste cincizeci de tipuri de notificări integrate în Home Assistant, iar cel pe care l-am ales a fost Telegram. Am ales Telegram, deoarece voiam să primesc notificările sub formă de push notification pe telefon. M-am gândit și la slack drept alternativă, dar am vrut să încerc ceva nou. Telegram este o aplicație de mesagerie pe telefoanele mobile care îți pune la dispoziție un API destul de vast pentru personalizare.
Integrarea a mers destul de simplu de realizat, fiind nevoie de crearea unui Telegram Bot și de configurarea sistemului Home Assistant cu cheile contului de telegram. Mai jos găsiți configurarea sistemului meu:
După aceasta am creat un script de automatizare simplu care trimite o notificare atunci când indicele de igrasie crește peste 80%.
Până acum totul a mers destul de ușor și a fost plin de recompense și am prins încredere că pot integra și senzori RF care sunt foarte accesibili. Home Assistant oferă componente și plug-in-uri pentru controlul echipamentelor pe RF și am început lungul drum de a configura platforma cât și echipamentele.
În trecut, am mai făcut acest lucru pe RPI, dar nu printr-o platformă, ci prin scripturi singulare, lucru care m-a ajutat destul de mult. Primul echipament pe care am vrut să îl configurez, este un senzor de mișcare. Scenariul la care mă gândeam e că seara când pe hol se detectează mișcare, să se aprindă o bandă led (lumină de veghe). Pentru recepționarea semnalelor RF folosesc un tunner DVB-T Realtek și un add-on RTL_433 to MQTT Bridge pentru prelucrarea semnalelor primite. Aici a fost nevoie de shell scripting să interpretez semnalele binare RF și să le transmit sub o formă "inteligibilă" prin MQTT platformei Home Assistant. După câteva zile de lucru, am reușit să integrez senzorul de mișcare și o stație Meteo pe 433Mhz. Home Assitant oferă o integrare foarte eficientă cu orice echipament care comunică pe MQTT pentru a fi transformat foarte ușor într-un senzor sau întrerupător. Astfel, toate datele primite pe 433Mhz sunt transmise prin MQTT.
Următorul pas a fost să controlez o priză inteligentă pe 433Mhz. Această priză are o telecomandă prin care se poate opri/porni priză de la distanță. Cu ajutorul platformei, am reușit să interceptez semnalul telecomenzii și prin componență rpi_rf am reușit să emit acel semnal. Pentru a emite semnale pe 433Mhz am cumpărat cu 1 USD un mic emițător RF.
După ce am reușit să integrez echipamentele în platformă, am folosit opțiunea de automatizare pe care Home assistant o oferă. Astfel, am creat următorul scenariu:
Dacă se detectează mișcare în hol între orele 00:30 și 16:00 pornește priză 1.
În perioada sărbătorilor am folosit instalația de brad, iar acum o bandă led.
Pe lângă cele enumerate mai sus am integrat și alte echipamente precum :
Televizor LG prin intermediul API-ul expus de sistemul WebOs;
Televizor Samsung prin copierea semnalelot IR ale telecomenzii cu ajutorului Broadlink Remote Pro;
Stație meteo Broadlink eAir;
Electronic Water Valve pentru a controla robinetul de apă. Integrarea se face foarte ușor prin API-ul celor de la Tuya;
Vrei să încerci platforma? În ziua de azi este destul de simplu și accesibil să ne echipăm casa cu echipamente inteligente, iar confortul pe care acestea ni-l oferă este din ce în ce mai important. Pentru a încerca o soluție simplă, avem nevoie de o investiție mică și de câteva ore de investit din partea noastră. Există diferite platforme disponibile pentru a conecta toate echipamentele sub aceeași umbrelă și pentru a valorifica potențialul maxim al unei case conectate din toate punctele de vedere. În opinia mea, deși există și alte platforme, Home Assistant este cea mai adecvată integrării a cât mai multor echipamente inteligente și diferite pentru casa ta.
Dacă dorești să încerci platforma, web site-ul oficial oferă foarte multe informații. Dacă ceva nu merge, poți să îmi scrii pe e-mail sau Linkedin. Împreună reușim să rezolvăm problema și putem totodată, să contribuim la realizarea unei platforme complete și cât mai complexe.
de Ovidiu Mățan
de Adrian Cozac
de Ovidiu Mățan