#14012
Alex
Participant

Cea mai stabila implementare e cea pentru lumini. Am o casa din lemn, iar toate firele pentru partea electrica le-am tras prin pod, acum 6 ani, cand am construit casa. Folosesc sonoff mini cu tasmota. Intrerupatorul (clasic, fara push) l-am legat pe bornele de intrerupator. Daca nu am internet, intrerupatorul merge fara probleme. Pentru partea smart, am instalat pe un cloud server de pe hetzner.com: apache + php + mysql + nodejs + pm2 + mosquitto + fail2ban. Aplicatia este o interfata web care comunica, prin intermediul socket.io, cu nodejs-ul. Initial se incarca cu toate state-urile device-urilor din baza de date mysql. Apoi cand vrea sa schimbe state-ul unui device, trimite comanda prin socket.io, nodejs-ul primeste comanda si o trimite prin mqtt pe topic-ul device-ului respectiv (sonoff in cazul asta). Sonoff-ul executa comanda, apoi trimite status-ul nou pe un alt topic. Nodejs-ul primeste noul status si trimite in 2 locuri: spre aplicatia web, prin socket.io si spre un mini api php, pentru a inregistra modificarea in baza de date. In mysql stochez ultimul status, dar si istoricul complet pentru loguri si grafice.

O data la 5 minute, sonoff-ul trimite un heartbeat prin mqtt, care ajunge apoi in mysql. Daca nu primesc 2 heartbeat-uri consecutive declar device-ul offline si il afisez intr-o pagina de health, dar si pe homepage, in header (Am o setare prin care pot dezactiva monitoring, in caz ca va fi offline mai mult timp).

Un alt feature pentru lumini este ca am facut o functionalitate de dezactivare buton fizic. Daca ai mei copii mici au chef de joaca cu luminile, in loc sa ma cert cu ei le dezactivez butonul fizic. Ca sa fac asta, suprascriu prin mqtt template-ul intrarilor si iesirilor digitale ale esp-ului, iar IO-ul care se ocupa de buton il setez ca nefolosit. Asta e un exemplu de feature pentru care iubesc faptul ca am o implementare complet custom. Ce developer de la ce firma se poate gandi ca cineva are nevoie de asa ceva.

Alt feature pentru lumini este programarea pentru pornire/oprire unde setez ora, zilele saptamanii in care ruleaza si actiunea (on/off). Un script php ruleaza la fiecare minut si executa toate programarile conectandu-se la mqtt si trimitand comanda programata catre device.

Alt feature ar fi o rutina creata prin care de fiecare data cand deschid poarta, luminile din exteriorul casei se aprind, doar daca ora este intre apusul si rasaritul soarelui (date_sun_info in php).

Pentru rgb am avut un singur bec, pe care il controlam doar din aplicatie (puteam porni/opri, seta temperatura de culoare pentru alb si putea seta culoarea printr-un color picker). Din pacate l-am stricat pe parte de software incercand sa-i actualizez tasmota, apoi am aflat ca avea o versiune modificata care nu era compatibila cu cea de baza. L-am stricat fizic incercand sa ajung la placuta de circuit pentru a-i rescrie softul prin serial.

Ultimul feature pe care-l mentionez este ca lumina o pot contra din telefon, pc, intrerupator fizic, google home si astazi (mi-am facut cadou un nest hub) o voi face si din noul smart display. Luminile de afara le controlez prin butoane wireless care trimit un cod pe frecventa de 433mhz catre sonoff rf bridge.

O sa mai revin cu detalii tehnice si pentru alte tipuri de device-uri, din cand in cand, cand imi mai fac timp sa scriu.

©2023 SmartHome360.ro Totul Despre si Pentru Smart Home! Partener LoxonePartener KNX

Conectați-vă cu datele de autentificare

sau    

Ați uitat datele dvs.?

Creează cont