Sommario:
- Passaggio 1: come funziona un termostato
- Passaggio 2: Preparare Sonoff Basic
- Passaggio 3: NodeRED
- Passaggio 4: conclusione
Video: NEST Il tuo vecchio termostato: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
L'impianto di riscaldamento di casa mia è probabilmente vecchio quanto la casa stessa. Ha circa 30 anni, il che va bene in termini di anni domestici, ma praticamente bloccato nell'era glaciale per quanto riguarda la tecnologia. Ci sono 2 problemi principali con le soluzioni commerciali:
- prezzi proibitivi
- prodotto come servizio
Tutti ricordiamo cosa è successo a Revolv e non sono molto entusiasta che mi succeda nel bel mezzo dell'inverno. Con questo in mente, ti presento un controller NEST-Alike dall'aspetto incredibilmente sospetto ma funzionale per il tuo vecchio termostato. Non preoccuparti, sto progettando di aggiungere presto un recinto molto migliore!
Caratteristiche:
- possibilità di utilizzare un termostato esistente (nel caso in cui la moglie si lamenti)
- accesso remoto
- Modalità ASSENTE
- indicatore della temperatura ottimale
- Funziona con Alexa
Presto (controlla qui per gli aggiornamenti)
- Google Home
- Google Calendar
- Sensori multipli
- Comandi del radiatore
- Integrazioni IFTT
- Supporto Tasker
- Richieste
- Un recinto molto più bello
Passaggio 1: come funziona un termostato
Il termostato è probabilmente collegato all'ALTA TENSIONE! Non tentare di fare nulla se non ti sei assicurato che il circuito sia spento. Puoi farti del male e causare danni all'apparecchiatura collegata. Considera la possibilità di consultare un elettricista qualificato per garantire la tua sicurezza
Il termostato Honeywell è un'unità montata a parete, alimentata dalla rete elettrica (le basi Sonoff richiedono almeno 90 V, il mio circuito ha 230 V). La scatola è collegata all'unità di controllo principale (che è una scatola più avanzata) e invia il segnale quando la temperatura scende al di sotto del livello target. Sebbene la tua unità possa essere diversa, il principio è molto probabilmente lo stesso. Se hai 3 fili e nessuna connessione radio tra l'unità a parete, questo è il tutorial che fa per te.
So come funzionano i termostati a 3 fili secondo un principio, che non mi ha impedito di far saltare un fusibile cortocircuitando 2 fili per sbaglio! Ho 3 fili collegati all'unità (il 4° è la terra). Il mio termostato Honeywell non è wireless, quindi per cambiare il segnale posso usare Sonoff Basic. È ora di smontarlo e vedere come viene inviato il segnale all'unità. A un'ispezione più attenta, il terminale è collegato nel modo seguente:
- (blu) – Terra
- (giallo) – segnale, quando tirato in alto il riscaldamento è acceso
- non in uso
- (rosso) – il cavo sotto tensione utilizzato per portare il segnale alto
Per raggiungere il mio obiettivo, devo cortocircuitare il cavo in tensione con il cavo del segnale quando voglio che il mio riscaldamento si accenda. Se hai un termostato collegato in modo simile, sei fortunato perché Sonoff Basic sarà sufficiente per fare il trucco.
Passaggio 2: Preparare Sonoff Basic
Prima di iniziare a collegare i fili, dobbiamo aggiungere un sensore di temperatura (DHT11) al mix. Assicurati di avere il firmware Tasmota flashato sul tuo dispositivo Sonoff (ho un'eccellente guida al flashing qui) e che il tuo Sonoff abilitato per Tasmota sia configurato correttamente (anch'esso già coperto da me). Ora non ti resta che collegare il sensore DHT11 al Sonoff e configurarlo per la segnalazione della temperatura.
DHT11 viene fornito con 3 pin cablati: Segnale - GPIO14Vcc - 3.3VGND - GND
Ho fatto un buco, non mi interessa come sembra ora, tutto ciò di cui ho bisogno è la prova del concetto e la convalida. Farò una custodia bella e lucida una volta arrivata la mia stampante 3D. Ho prestato particolare attenzione a come collego il Sonoff, poiché devo assicurarmi che il cavo in tensione si colleghi al cavo del segnale all'altra estremità del dispositivo Sonoff. L'unità Honeywell ha al suo interno la resistenza di carico (R) che limita la corrente. Mentre il circuito è protetto dal fusibile 3A, è intelligente abbinare la stessa resistenza per una protezione extra. Una volta pronti i cavi, è arrivato il momento di spegnere l'alimentazione principale e ricollegare il Sonoff.
Sonoff Tasmota - Termostato Honeywell
INGRESSO Live - 4° terminale Live
INGRESSO GND - 1° terminale GND
Segnale di USCITA - Segnale del 2° terminale
L'ho menzionato prima per ora, non ho intenzione di sottolineare l'aspetto di questo. La moglie è stata convinta e posso concentrarmi sulla funzionalità e sull'eliminazione di eventuali bug che accadranno. La cosa buona è che il termostato originale funziona ancora. Se lo alzo, sovrascriverà quello basato su Sonoff Tasmota. Questo dovrebbe essere un ottimo backup per eventuali eventi imprevisti.
Passaggio 3: NodeRED
Tieni presente che il video potrebbe contenere riferimenti a NodeRed precedenti, lavoro costantemente per migliorare il design. Queste sono piccole modifiche e i file degli articoli vengono mantenuti aggiornati
Mi sono imbattuto in questo disegno online. Sembra fantastico, tuttavia, a un'attenta ispezione, il widget non è proprio adatto per NodeRED. Ha bisogno di 5 payload da impostare, che non è semplicemente il modo in cui funziona il design del nodo. Mi ci è voluto del tempo per capire il modo migliore per passare tutte quelle informazioni per aggiornare il widget e mantenerlo funzionante. Sono sicuro che con il tempo dedicherò più tempo al design in modo da poter inviare tutti gli aggiornamenti necessari con un singolo oggetto msg. Per ora è quello che è.
Flusso di temperatura
DHT11 riporta ogni X secondi al server NodeRED. Ho aumentato questa frequenza attraverso la console del Tasmota. Basta eseguire il comando per impostare la frequenza in secondi:
TelePeriod Imposta il periodo di telemetria tra 10 e 3600 secondi
Questo viene fatto principalmente per i test, poiché non voglio aspettare minuti per vedere se le mie correzioni di bug hanno funzionato. Mantenendo alta la frequenza, il riscaldamento si accenderà più frequentemente per periodi di tempo più brevi, quindi evita di impostarlo su 10 secondi per scopi diversi dai test. Il nodo MQTT estrae i dati da:
sonoff/tele/SENSOR
e conserva i dati più utili nei seguenti oggetti:
msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity
Per limitare gli errori, ho aggiunto il nodo smooth per fare la media dei risultati e aggiornato la variabile di flusso: NodeRED:
Nodo funzione - Aggiorna 'TempAmbient'
flow.set('TempAmbient', msg.payload. DHT11. Temperature);return msg;
Aggiornamento widget
Ho deciso che 5 secondi sono una buona frequenza di aggiornamento, quindi sto spingendo tutti i valori necessari con questa frequenza. L'unica eccezione è lo slider, che per ovvi motivi risponde istantaneamente.
Ciascun nodo corrispondente invia il payload con l'argomento assegnato al widget simile al nido.
- colore (riscaldamento|raffreddamento*|off & hvac_state)
- foglia (vero|falso & ha_foglia)
- lontano (vero|falso & lontano)
- Temperatura ambiente (numero e temperatura_ambiente)
- Temperatura target (numero e temperatura_obiettivo)
*non in uso
NodeRED: Function Node - Widget Update
colore
x = flusso.get('TempTarget'); //targetz = flow.get('TempAmbient'); //ambiente
se (z = x){
flow.set('heatingState', "off"); flow.set('riscaldamento', "OFF"); } msg.payload = z; msg.topic = "temperatura_ambiente"; messaggio di ritorno;
foglia
x = flusso.get('TempAmbient'); if (x > 17 && x < 23){ flow.set('leaf', true); msg.payload = vero; msg.topic = "has_leaf"; messaggio di ritorno; } else{flow.set('foglia', false); msg.payload = falso; msg.topic = "has_leaf"; messaggio di ritorno; }
Esclusione del colore away
x = flusso.get('via'); if (x === true){ msg.topic = "hvac_state"; msg.payload = "spento"; messaggio di ritorno; }
msg.topic = "hvac_state";
msg.payload = flow.get('heatingState');
messaggio di ritorno;
Via
x = flusso.get('via'); if (x === true){ flow.set('heatingSwitch', "OFF"); flow.set('heatingState', "off"); }
msg.topic = "via";
msg.payload = flow.get('away'); messaggio di ritorno;
Temp. obiettivo
if (msg.topic === "aggiorna"){ msg.topic = "target_temperature"; msg.payload = flow.get('TempTarget'); messaggio di ritorno; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set('via', falso); msg.topic = "temperatura_target"; flow.set('TempTarget', msg.payload); }
if (msg.topic === "slider") {
flow.set('via', falso); msg.topic = "temperatura_target"; flow.set('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest"){}
messaggio di ritorno;
Come vedi, ho scelto di non utilizzare le variabili di flusso, in modo da poter richiamare il valore in qualsiasi momento. Ho un flusso di debug che in pratica legge tutti i valori memorizzati.
- 'TempAmbinet' – memorizza la temperatura attuale
- 'TempTarget': mantiene il valore target temporaneo
- 'leaf' – visualizza la foglia se necessario
- 'away': visualizza lo stato di assenza se necessario
- ‘heatingState‘– cambia il colore del display
- 'heatingSwitch' – controlla lo stato del relè.
La sfida era quella di assicurarsi effettivamente che le informazioni fossero aggiornate su "aggiornamento" e quando richiesto tramite altri mezzi (Alexa, ecc.). Questo è il motivo per cui vedrai condizioni diverse nel JavaScript. Ogni volta che i valori vengono aggiornati, inviati alla variabile di flusso e il widget viene aggiornato.
dispositivo di scorrimento
I test hanno rivelato che è necessario un ulteriore aggiornamento del dispositivo di scorrimento (il dispositivo di scorrimento spinge la temperatura target). Slider invia il payload (numero) con l'argomento associato slider) quando viene spostato. Inoltre, voglio che il dispositivo di scorrimento si inserisca nella posizione corretta se sono presenti più interfacce Web. Per fare ciò, ogni 5 secondi aggiorno semplicemente la posizione del cursore a una temperatura target corrente.
NodeRED: Function Node - Update slider'
msg.payload = flow.get('TempTarget');return msg;
Controllo relè
Il controller del relè è semplice, richiede (per ora) due ingressi. Vero|falso di Alexa e l'interazione che segue un aggiornamento alla variabile di flusso "interruttore di riscaldamento". Non è necessaria un'azione istantanea, quindi, per semplicità, viene eseguito con la stessa frequenza di aggiornamento di 5 secondi del resto del flusso.
Il relè è collegato tramite MQTT. Il nodo sta inviando comandi ON|OFF all'argomento:
sonoff/cmnd/POWER1
Il nodo della funzione accetta il true|false da Alexa e cambia anche lo stato dell'input in base alla variabile di flusso "heatingSwitch".
NodeRED: Nodo funzione - Relè di controllo'
if (msg.command === "TurnOffRequest"){ msg.payload = "OFF"; messaggio di ritorno; }
if (msg.command === "TurnOnRequest"){
msg.payload = "ON"; flow.set('TempTarget', 21); messaggio di ritorno; } if (msg.topic === "update"){ msg.payload = flow.get('heatingSwitch'); } restituisce il messaggio;
Integrazione con Alexa
Questo è il primo dispositivo che ho dovuto disattivare il "riconoscimento automatico". Invece di assumere automaticamente una risposta, ne ho generata una poiché desidero la possibilità di interrogare la temperatura impostata. In linea di principio, msg.payload = true|false indica se la richiesta è andata a buon fine, ei modelli qui trovati fanno il resto. Se non conosci Alexa e NodeRed, assicurati di leggere questo.
Ho deciso di passare i riconoscimenti a parte (so che questo non è il modo migliore) per poter controllare tutto un po' meglio. Correttamente ogni risposta dovrebbe essere data alla fine della catena di comando. Il mio rischia di non restituire errori nel caso si verificassero. Nota che per essere coerente, aggiorno solo le variabili, mentre il ciclo di aggiornamento invia i nuovi valori al widget.
NodeRED: Function Node - Elabora le risposte di Alexa'
// Qual è la temperatura target del termostatoif (msg.command === "GetTemperatureReadingRequest"){ x =flow.get('TempTarget'); msg.extra = { "temperatureReading": { "value": x}, "applianceResponseTimestamp": new Date().toISOString()}; msg.payload = vero; messaggio di ritorno; } // Imposta la temperatura su (non inferiore a 10 o superiore a 30) if (msg.command === "SetTargetTemperatureRequest"){ if (msg.payload 30) { var range = { min: 10.0, max: 30.0 } msg.payload = falso; msg.extra = intervallo; } else { msg.extra = { targetTemperature: { valore: msg.payload } }; msg.payload = vero; } restituisce il messaggio; } // Attivalo if (msg.command === "TurnOnRequest"){ msg.payload = true; flow.set('via', falso); flow.set('TempTarget', 21); messaggio di ritorno; } // Disattivalo if (msg.command === "TurnOffRequest"){ msg.payload = true; flow.set('via', vero); messaggio di ritorno;
Passaggio 4: conclusione
Se esponi la dashboard di NodeRED alla WAN, l'intero sistema di riscaldamento può essere controllato da remoto. Ti consiglio di leggere i seguenti articoli per essere al passo con la sicurezza di NodeRED e NodeRED.
- NodeRED per principianti
- Sicurezza NodeRED
Inoltre, se vuoi essere informato sugli aggiornamenti di questo progetto, considera di seguirmi sulla piattaforma che preferisci:
- Youtube
E se hai voglia di offrirmi un caffè o di sostenermi in modo più continuo:
- Paypal
- Patreon
Spero che il progetto vi sia piaciuto!
Consigliato:
Crea il tuo termostato di riscaldamento connesso e risparmia con il riscaldamento: 53 passaggi (con immagini)
Crea il tuo termostato di riscaldamento connesso e risparmia con il riscaldamento: qual è lo scopo? Aumenta il comfort riscaldando la tua casa esattamente come vuoi Risparmia e riduci le emissioni di gas serra riscaldando la tua casa solo quando ne hai bisogno Mantieni il controllo sul riscaldamento ovunque tu sia Sii orgoglioso di averlo fatto y
Registratore di dati cronologico del termostato Nest: 6 passaggi (con immagini)
Data logger cronologia termostato Nest: il termostato Nest tiene traccia della temperatura, dell'umidità e dell'utilizzo del forno/aria condizionata e gli utenti sono in grado di visualizzare i dati storici solo per 10 giorni. Volevo raccogliere dati storici (>10 giorni) e mi sono imbattuto nello script di fogli di calcolo di Google che nidifica i ping ogni volta che si imposta
Converti il tuo vecchio telefono in un interruttore remoto: 7 passaggi (con immagini)
Converti il tuo vecchio telefono in un interruttore remoto: ti sei mai chiesto cosa fare con i tuoi vecchi telefoni di base? L'avvento di uno smartphone nell'ultimo decennio ha reso obsoleti tutti i telefoni di base. Anche se avevano una buona durata della batteria e un aspetto decente, sono meno rispetto ai grandi smartphone che hanno grandi s
Trasforma il tuo vecchio monitor del computer CRT in un acquario! ! !: 11 passaggi (con immagini)
Trasforma il tuo vecchio monitor del computer CRT in un acquario! ! !: Parliamo di un ottimo salvaschermo! Era da un po' che volevo realizzare questa build. Quasi ogni volta che vedo un vecchio monitor di computer CRT sul ciglio della strada nel giorno della spazzatura penso tra me e me… che sarebbe sicuramente un acquario dall'aspetto interessante. Così
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: 7 passaggi
Riciclaggio del tuo vecchio interruttore dimmer come controllo della temperatura variabile per il tuo saldatore: ho visto un sacco di controllo della temperatura variabile professionale per il saldatore, ma troppo costoso. Quindi ne ho ricavato uno da un vecchio interruttore dimmer, presa, piastra e spina che erano già spazzatura e una vecchia scatola di interruttori in PVC fornita con esso e così