Domotica

Oramai quasi tutti, per automatizzare casa, si rivolgono a servizi in cloud. Gli utenti più "avanzati" (e/o che hanno un minimo di considerazione per la propria privacy) preferiscono soluzioni con un hub locale (quasi sempre un broker MQTT) su RPi... Ma tutte queste soluzioni hanno un problema in comune: il malfunzionamento di un unico dispositivo può bloccare tutto. Come fare?

Perché se premo l'interruttore della luce della cucina questo deve mandare un messaggio ad un server che sta in America che poi lo deve rigirare al relè che accende la lampadina a 5m dall'interruttore? Se mi cade la ADSL non posso più andare a prendermi un bicchiere d'acqua a mezzanotte? O sono costretto a rifare l'impianto elettrico di casa perché il produttore dei nodi, magari dopo solo 3 anni, ha deciso che non sono sufficientemente redditizi e chiude il servizio? Non mi pare una cosa molto sensata... Eppure è quanto succede regolarmente, ma gli utenti continuano a non imparare Sad

La mia idea è un sistema a logica distribuita, coi nodi che dialogano direttamente tra di loro senza bisogno ne di "coordinatori" ne di servizi nel cloud: premo l'interruttore e questo manda un messaggio a tutti gli altri nodi; il relè della lampada riceve il messaggio dell'interruttore e cambia il suo stato, accendendo la luce. Il tutto ha coinvolto solo due nodi e l'AP (attualmente mi sto basando su ESP8266 e WiFi).

Su questa logica distribuita è poi possibile aggiungere uno o più nodi di coordinamento, che possono gestire scenari più complessi e/o anche le richieste provenienti da Internet, o esportare (anche solo parzialmente) i dati nel cloud. Il tutto sotto il controllo diretto dell'utente.

È da un po' che ci lavoro (con qualcosa già pubblicato, sia come specifiche e HW che come codice (lib per Arduino IDE). In queste pagine raccolgo un po' di appunti preparatori e di approfondimenti anche su cose che magari non arrivano poi alla pubblicazione.

0
Il tuo voto: Nessuna
Realizzato con Drupal, un sistema open source per la gestione dei contenuti