De ceva timp cochetez acasa cu Home Assistant pe care îl folosesc pentru a monitoriza diferiți parametrii de mediu, funcționarea corecta a unor echipamente și automatizarea diferitelor lucruri de prin casa (lumi, ventilatoare etc).
Dacă inițial partea de monitorizare temperatura o făceam cu Sonoff Basic si senzor DS18B20, soluția „finala” la care am rămas și în ziua de astazi este Sonoff TH16 împreună cu SI7021:
Pentru a-l integra in Home Assistant am rescris firmware-ul lor care comunica cu cloud-ul producatorului Sonoff cu un firmware open-source: Tasmota. Am făcut acest lucru folosindu-ma de conexiunea seriala a unui Raspberry Pi 1 pe care am conectat-o la portul serial al Sonoff Th16, după ce în prealabil am lipit pe placa sa pinii necesari:
Atentie: La conectarea dispozitivului la Raspberry PI trebuie sa va asigurați ca acesta nu este alimentat și de la rețeaua electrică de 230V. Deasemenea, trebuie să acordați o importanța deosebită tensiunii de alimentare și anume 3.3V, nu 5V.
Pentru a putea activa modul de programare, se ține apăsat butonul (singurul pe care îl are) și apoi se cuplează alimentarea. Restul pașilor sunt identici cu cei descriși la Rescriere firmware Sonoff T1 EU 2C.
Dupa ce am setat prin portul serial SSD-idul și parola rețelei WiFi la care dorim să conectăm acest echipament, accesăm interfața web pe portul 80 (după ce în prealabil am aflat ce IP a obținut acest dispozitiv consultând inregistrarile de pe router/serverul DHCP din retea).
Vom accesa meniul Configuration – Configure Module si vom selecta la:
- Module Type valoarea Sonoff TH (4)
- GPIO14 valoarea SI7021
și ulterior apăsăm butonul Save.
Urmează să setăm datele necesare comunicării cu serverul MQTT prin care vom face integrarea cu Home Assistant. Astfel, vom accesa din interfata web meniul Configuration – Configure MQTT și vom completa cămpurile cu valorile corespunzătoare:
- Host: <adresa IP a serverului MQTT>
- Port: <portul pe care asculta serverul MQTT, implicit 1833>
- Client:<identificatorul clientului, implicit DVES_%06X>
- User: <utilizatorul folosit pentru autentificarea la serverul MQTT, daca este cazul>
- Password: <parola folosita pentru autentificarea la serverul MQTT, daca este cazul>
- Topic: <topic-ul MQTT unde se posteaza mesajele>
- Full topic: <calea completa a topic-ului MQTT>
In cazul meu punctual, pentru dispozitivul Sonoff TH16 programat pentru a fi instalat in balcon și a monitoriza temperatura si umiditatea acolo, setarile arată în modul următor:
Așadar, se conectează la serverul MQTT cu adresa IP 10.1.200.1 folosind portul 1883, cu utilizatorul DVES_USER si parola … și publică mesajele în topicul th16_balcon.
Alte setări pe care le recomand să le faceți pe acest dispozitiv sunt legate de setarea unei parole pentru accesarea interfeței web, a numelui dispozitivului pentru o identificare facilă, setări pe care le regăsiți în meniul Configuration – Configure Other. Deasemenea este recomandat să setați, daca este cazul, o a doua retea WiFI la care să se conecteze în cazul în care cea principala este indisponibila, operație care se face din meniul Configuration – Configure WiFi.
Informatiile despre temperatura și umiditatea citite de către senzor sunt afișate pe prima pagină atunci când accesați interfata web a dispozitivului, impreuna cu starea releului:
Pentru a verifica dacă mesajele sunt publicate in topic-ul specificat catre serverul MQTT putem folosi comanda mosquitto_sub daca folosim un sistem cu Linux sau putem apela la diversi clienti MQTT disponibili atat pentru Windows cat și pentru Linux și Android.
Se observă că regăsim in următoarele topic-uri informatii diverse:
- tele/th16_balcon/LWT – Last Will and Testament
- tele/th16_balcon/STATE – informatii despre dispozitiv (data/ora curenta, uptime, informatii despre WiFI etc)
- tele/th16_balcon/SENSOR – informatii despre valoarile oferite de senzor.
Observație: unele date sensibile au fost acoperite în imaginea prezentată.
Avand aceste informații disponibile în serverul MQTT, urmează să le preluam în Home Assistant și sa lă folosim acolo. Personal am ales următoarea metoda:
- folosesc editarea fisierelor YAML direct cu Studio Code Server (instalat ca AddOn);
- am creat in directorul packages fisierul sonoff_th16_balcon.yaml cu următorul conținut:
Aceste valori poti fi afisate intr-un card in interfata Home Assistant:
Graficele in timp ale valorile citite arată în modul următor:
Exista posibilitatea de a folosi functia de descoperire a dispozitivelor care ruleaza Tasmota și integrarea automata a acestora în Home Assistant, fara a scrie nici o line de cod. Se foloseste integrarea „Tasmota”:
Personal prefer configurarea manuala.
Observatie: Cu versiunile mai vechi de Tasmota nu este posibila descoperirea si integrarea automata.
Pe baza valorilor umiditatii/temperaturii citite in acest mod se pot defini diverse automatizări, ca de exemplu:
- pornire/oprire termostat
- pornire/oprire centrala termica
- avertizare vocala depasire prag temperatura
- avertizare vocala scadere prag temperatrua
- notificari in diverse moduri (sms/email etc) privind depasiri/crester bruste/scaderi bruste ale valorilor citite
Costul estimativ pentru un Sonoff TH16 este de 50-70 lei, iar a senzorului SI7021 este de 25 – 40 lei. Asta la magazinele online din România. Direct in China se găsesc mai ieftine, dar trebuie să fiți dispuși să așteptați. Plus să umblați pe la Posta/Vamă, să plătiți diverse taxe etc.
Personal folosesc in acest moment un numar de 8 dispozitive de acest fel amplasate in: balcon, bucatarie, sufragerie, debara, hol, baie, dormitor, camera copil. Toate funcționează de peste un an făra probleme.
Articole asemanatoare:
- Au apărut
- Home Assistant – Monitorizare consum energie electrică
- Control temperatură în fiecare cameră
- ZTE ZXR 10 2609
- Tasmota pe Sonoff T1 EU 2C
- Primii pasi in lumea FreeBSD-ului
- Senzori de temperatură și umiditate pentru Raspberry Pi
- Intrebări examen Proiectant sisteme de securitate -I
- FreeBSD – Interconectare VLAN-uri switch-uri cu management Allied Telesis
- FreeBSD – Monitorizare temperatura procesor si placa de baza folosind mrtg