Alla fine ho domotizzato casa
Il mio hobby è il mio lavoro (e viceversa).
Stanco di pagare licenze annuali ed essere vincolato a device che comunicano dati chissà dove, ho deciso di domotizzare casa e scrivermi un'app per gestire luci, serrande e altro.
Inoltre, la maggior parte delle app in commercio richiedono due click per poter accendere o spegnere una luce. Quello che voglio invece è una dashboard che mi consente di comandare luci e serrande con un solo click.
Si, sono esigente e pigro... ma soprattutto nerd e mi piace sviluppare anche nel tempo libero.
Ho realizzato un hub con un Raspberry Pi Zero2W e un'app mobile con MAUI Blazor che si presenta così:
Per comandare luci e tapparelle ho utilizzato dei dispositivi Shelly (Shelly Plus 1, Shelly Plus Dimmer, Shelly Plus 2PM).
Il Raspberry Pi Zero2W avvia un Broker MQTT al quale sono connessi gli Shelly. Questi ricevono i comandi di accensione/spegnimento, azionamento delle tapparelle e luminosità del dimmer e inviano dati in corrispondenza di eventi se comandati dai pulsanti/interruttori fisici.
Il Raspberry Pi Zero2W è connesso ad HiveMq per ricevere e inoltrare comandi. Tale componente ha il ruolo di Hub e di fatto connette bidirezionalmente i device interni alla rete con il mondo esterno.
L'app Mobile, realizzata con MAUI Blazor, tramite HiveMq riceve e invia comandi all'Hub (il Raspberry Pi Zero2W).
Il risultato è che posso:
- Visualizzare lo stato di luci e tapparelle anche quando sono fuori casa
- Comandare luci e tapparelle anche quando sono fuori casi
- Impostare delle azioni custom. Ad esempio "Chiudi tutte le tapparelle e spegni tutte le luci quando esco di casa"
- Più persone possono comandare e visualizzare lo stato di luci e tapparelle contemporaneamente
- Continuare ad utilizzare pulsanti e interruttori fisici anche se l'hub dovesse avere malfunzionamenti o in caso di WiFi non disponibile (questo è il punto cruciale per la tranquillità famigliare :P )
Ho scelto il Raspberry Pi Zero2W perchè consuma e scalda poco.
Ho scelto gli Shelly perchè sono davvero "open". Comunicano via HTTP e MQTT. Si, ho docuto fare un po di reverse engineering sul JSON che mi arrivava, ma anche questo è stato "divertente". Ad ogni modo sono ben documentati (Gen1, Gen2)
Ho scelto di sviluppare l'app Mobile in Maui Blazor perchè volevo un'app multipiattaforma (iOS e Android) e svilupparla velocemente (lo faccio per lavoro).
Ho sviluppato inoltre dei device basati su degli ESP-01 che rilevano l'interruzione di corrente su alcuni elettrodomestici che se spenti è un vero problema (non fatemi ricordare quando per errore abbiamo staccato la presa del freezer e siamo andati in vacanza per 20 giorni!).
Se anche tu sei alla ricerca di informazioni utili puoi leggere questi articoli 'Domotizzare' casa con Esp-01, Raspberry Pi Pico W e Shelly e Playing with MQTT, Esp8266 and Rasberry
Se hai voglia di lasciarmi un commento mi trovi su Linkedin.