Interruttore intelligente per riscaldamento
Motivazione
La mia famiglia ed io viviamo in una casa unifamiliare nel Saarland, in Germania, da circa vent'anni. Oltre a una caldaia a condensazione a gas, riscaldiamo l'acqua calda con un impianto solare termico. Per risparmiare i 12 watt di consumo in standby, spengo completamente il riscaldamento in estate, poiché la produzione dell'impianto solare termico è solitamente sufficiente a mantenere l'acqua calda. Ci sono stati anni in cui l'ho spento alla fine di aprile e non l'ho riacceso fino ai primi di novembre. Quest'anno è stato diverso. Ci sono stati molti periodi di maltempo che mi hanno costretto ad accendere il riscaldamento di tanto in tanto. Il problema è che a volte dimentico di accenderlo - me ne accorgo solo quando qualcuno vuole fare la doccia e l'acqua non è abbastanza calda. Può anche succedere che dimentichi di spegnerlo quando il sole ha già splendente da molto tempo. Ho pensato che fosse il momento di automatizzare tutto.
Precondizioni
- Uso già alcuni interruttori intelligenti Shelly per controllare le tapparelle e le luci, quindi è naturale per me usare anche i dispositivi Shelly per questo progetto.
- La mia casa ha già un sistema di monitoraggio dell'edificio fatto in casa con circa 25 sensori, principalmente di temperatura ma anche altri sensori ambientali.
- Il sistema di monitoraggio si basa su MQTT e un broker cloud serverless gratuito di HiveMQ, che voglio usare anche per comunicare con il dispositivo Shelly.
- Ho già sperimentato con Node-Red e ho pensato che questo potesse essere un buon caso d'uso per un primo progetto serio.
Installazione dell'interruttore intelligente Shelly
Poiché la corrente massima della caldaia a condensazione a gas è ben al di sotto di 8A, ho scelto il Shelly 1PM Mini Gen3, che ha il vantaggio aggiuntivo di permettermi di misurare il consumo energetico quando il riscaldamento è acceso. L'installazione è stata abbastanza semplice, poiché c'è abbastanza spazio nel vano della caldaia. Il riscaldamento è collegato direttamente alla rete elettrica, appena dietro un interruttore di emergenza nella stanza accanto. La foto qui sotto mostra l'installazione dell'interruttore.

Una volta configurata la connessione MQTT nell'app Shelly Smart Control, tutto dovrebbe essere pronto per i passaggi successivi. L'ho configurata come mostrato nella finestra di dialogo qui sotto (scusate per l'interfaccia in tedesco), e un primo test con il client web fornito da HiveMQ ha funzionato immediatamente.Sensori coinvolti
Almeno per la configurazione iniziale, ho iniziato con tre sensori per la logica di commutazione:
La
- temperatura esterna sul lato nord della casa. Voglio che il riscaldamento si accenda quando la temperatura scende sotto un certo livello.La
- temperatura del serbatoio dell'acqua calda. Ho tre sensori attaccati al serbatoio, ma per questo caso d'uso ho selezionato solo quello centrale. Come prima, voglio che il riscaldamento si accenda quando la temperatura dell'acqua calda scende sotto un certo livello. Il riscaldamento inizierà quindi immediatamente a caricare il serbatoio.Il terzo è la
- temperatura del ritorno del circuito di carica. Se questa temperatura scende di nuovo sotto i 50°C, la carica è terminata.Il primo sensore menzionato è un sensore wireless di temperatura e umidità che leggo tramite hardware Tinkerforge. Gli ultimi due sensori sono DS18B20 One-Wire collegati a un Raspberry Pi Pico W. La logica dettagliata sarà mostrata più avanti nella funzione corrispondente del flusso Node-Red.
Node-Red
Tutti i dati dei sensori del sistema di monitoraggio dell'edificio menzionato sono raccolti da un dispositivo edge basato su Raspberry Pi Zero che produce un pacchetto JSON compresso. I dispositivi Shelly pubblicano e consumano i loro payload specifici su topic MQTT specifici. Ora serve qualcosa in mezzo per collegare tutto. La mia prima impressione di Node-Red è stata che potesse fare proprio questo. Node-Red attualmente gira su Kubernetes (vedi
NodeRed-On-Rancher) ma per l'uso in produzione probabilmente lo sposterò su un Raspberry Pi. Questo è il flusso che ho creato per consumare i dati dei sensori, applicare la logica di commutazione e inviare i comandi al Shelly PM1 Mini Gen3Spiegazione:

I
- nodi viola sono i connettori MQTT. Tutti sono collegati allo stesso broker, ma quello a sinistra si iscrive al monitoraggio domestico, e i due a destra pubblicano sul topic comando specifico Shelly.Il
- nodo rosso è un sotto-flusso che elabora il messaggio in arrivo. I dati grezzi sono una struttura JSON compressa e codificata in Base64. L'output del nodo è il JSON originale.I
- nodi giallastri semplicemente convertono l'output della logica di commutazione (0/1) in messaggi MQTT regolari che possono essere consumati dall'interruttore Shelly. Questo potrebbe essere semplificato in un solo ramo, ma per facilità di comprensione e debug ho mantenuto due rami per l'accensione e lo spegnimento.Lo scopo unico dei
- nodi verdi è produrre l'output di debug a destra.Il
- nodo arancione chiamato "Heater Switching Logic" è il nodo operativo che decide se accendere o spegnere il riscaldamento. Vedi la sua funzione JavaScript qui sotto!Funzione operativa
Messaggi comando Shelly

Per completezza, voglio spiegare meglio i comandi MQTT Shelly che controllano l'interruttore di alimentazione del riscaldamento. Puoi vederli anche nella finestra di debug accanto al flusso Node-Red.
Topic: shelly1pmmini3-
Payload: on|off
Ulteriori informazioni sui comandi MQTT nella
Documentazione tecnica ShellyConclusione.
Questa combinazione di componenti, cioè
- MQTT, Node-Red e dispositivi Shelly, è piuttosto potente.Uso da anni il broker cloud serverless gratuito di
- HiveMQe lo trovo molto sicuro, affidabile e comodo.Per quanto riguarda
- Node-Red, sono un principiante, ma penso che abbia un grande potenziale per questo tipo di connettività, ed è divertente da usare.Nel frattempo, sono diventato un grande fan dei dispositivi
- Shelly. Il Shelly 1PM MINI Gen3 che ho usato per questo progetto è davvero piccolo ma comunque potente. Guarda tutte le opzioni che hai in termini di logica di commutazione, programmatore, misurazione del consumo, controllo esterno via MQTT, solo per citare le più importanti per me.Prospettive
Come ho detto prima, il set di strumenti che ho usato per questo progetto è piuttosto potente e mi ha dato molte nuove idee su come automatizzare la nostra casa. Solo per citarne alcune:
Una sorta di geofencing che apre il garage per me quando arrivo in auto. La porta è già dotata di un
- Shelly 1 MINI Gen3..
- Potrei controllare la tenda da sole sul nostro patio con un Shelly Plus 2PM e un Shelly Plus AddOn collegato e alcuni sensori (velocità del vento, radiazione solare, pioggia).
- Sarebbe anche interessante aggiungere i sensori sul Shelly AddOn al mio sistema di monitoraggio dell'edificio esistente. Questo dovrebbe essere possibile usando MQTT.
Per quanto riguarda il progetto attuale, dovrò sicuramente modificare la mia logica di commutazione per il riscaldamento in inverno. Potrebbe essere sufficiente per l'estate, ma sospetto che avrò bisogno di una logica più sofisticata per l'inverno.