Sadržaj:
Video: NEST Vaš stari termostat: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Sustav grijanja u mojoj kući vjerojatno je star koliko i sama kuća. Star je oko 30 godina, što je u redu što se tiče kućnih godina, ali prilično je zaglavljeno u ledenom dobu što se tehnologije tiče. Postoje dva glavna problema s komercijalnim rješenjima:
- zabranjene cijene
- proizvod kao uslugu
Svi se sjećamo što se dogodilo s Revolvom i nisam baš željan da mi se to dogodi usred zime. S tim na umu, predstavljam vam nevjerojatno sumnjiv, ali funkcionalan NEST-Alike kontroler za vaš stari termostat. Ne brinite, planiram uskoro dodati mnogo bolje kućište!
Značajke:
- mogućnost korištenja postojećeg termostata (u slučaju da supruga stenje zbog toga)
- daljinski pristup
- Način AWAY
- pokazatelj optimalne temperature
- Radi s Alexa
Uskoro (ažuriranja provjerite ovdje)
- Google početna
- Google kalendar
- Više senzora
- Upravljanje radijatorom
- IFTT integracije
- Podrška za Tasker
- HTTP zahtjevi
- Puno bolje izgleda kućište
Korak 1: Kako radi termostat
Termostat je vjerojatno spojen na VISAK NAPON! Ne pokušavajte ništa učiniti ako niste provjerili je li krug isključen. Možete se ozlijediti i oštetiti priključenu opremu. Razmislite o konzultiranju kvalificiranog električara kako biste osigurali svoju sigurnost
Honeywell termostat je zidna jedinica koja se napaja iz mreže (za osnove Sonoffa potrebno je minimalno 90 V, moj krug ima 230 V). Okvir je spojen na glavnu upravljačku jedinicu (koja je naprednija kutija) i šalje signal kada temperatura padne ispod ciljane razine. Iako se vaša jedinica može razlikovati, princip je najvjerojatnije isti. Ako imate 3 žice i nemate radio vezu između zidne jedinice-ovo je vodič za vas.
Znam kako u principu rade trožilni termostati, koji me nisu spriječili da puknem osigurač tako što sam slučajno spojio 2 žice! Imam 3 žice spojene na jedinicu (četvrta je uzemljenje). Moj Honeywell termostat nije bežičan, pa za promjenu signala mogu koristiti Sonoff Basic. Vrijeme je da ga rastavite i vidite kako se signal šalje u jedinicu. Nakon pomnijeg pregleda, terminal je spojen na sljedeći način:
- (plavo) - Uzemljenje
- (žuto) - signal, kada je grijanje visoko uključeno
- ne koristi se
- (crveno) - žica pod naponom koja se koristi za visoko podizanje signala
Da bih postigao svoj cilj, moram spojiti žicu pod naponom sa signalnom žicom kad želim da mi se uključi grijanje. Ako imate slično povezan termostat, imate sreće jer će Sonoff Basic biti dovoljan za trik.
Korak 2: Priprema Sonoff Basic -a
Prije nego što počnemo spajati žice, moramo mješavini dodati temperaturni senzor (DHT11). Provjerite je li na vašem Sonoff uređaju instaliran Tasmota firmver (ovdje imam izvrstan vodič za treperenje) i je li vaš Sonoff s omogućenim Tasmotom ispravno konfiguriran (također već pokrivam). Sada vam preostaje samo spojiti senzor DHT11 na Sonoff i konfigurirati ga za izvještavanje o temperaturi.
DHT11 dolazi s 3 ožičena pina: Signal - GPIO14Vcc - 3,3VGND - GND
Probio sam rupu, ne muči me kako to sada izgleda, sve što mi treba je dokaz koncepta i potvrda. Napravit ću lijepo i sjajno kućište kad stigne moj 3D pisač. Obratio sam dodatnu pozornost na način na koji povezujem Sonoff, jer moram paziti da se žica pod naponom spoji sa signalnom žicom na drugom kraju Sonoff uređaja. Jedinica Honeywell ima unutar ugrađen otpornik opterećenja (R) koji ograničava struju. Iako je krug zaštićen 3A osiguračem, pametno je uskladiti isti otpor za dodatnu zaštitu. Kad sam pripremio žice, došlo je vrijeme da isključim glavno napajanje i povežem Sonoff.
Sonoff Tasmota - Honeywell termostat
INPUT Live - četvrti terminal uživo
INPUT GND - prvi terminal GND
OUTPUT Signal - signal drugog terminala
Već sam spomenuo da za sada neću naglašavati kako ovo izgleda. Supruga je bila uvjerena i mogu se usredotočiti na funkcionalnost i uklanjanje svih grešaka koje će se dogoditi. Dobra stvar je što originalni termostat još uvijek radi. Ako ga pojačam, nadjačat će onaj baziran na Sonoff Tasmoti. Ovo bi trebao biti izvrstan backup za sve neočekivane događaje.
Korak 3: NodeRED
Imajte na umu da videozapis može sadržavati starije NodeRed reference, stalno radim na poboljšanju dizajna. To su male izmjene, a datoteke članaka ažurirane su
Na ovaj sam dizajn naišao na internetu. Izgleda sjajno, no nakon pomnog pregleda widget nije baš prikladan za NodeRED. Za postavljanje mu je potrebno 5 korisnih podataka, što jednostavno ne funkcionira na čvoru. Trebalo mi je neko vrijeme da smislim najbolji način prenošenja svih tih podataka kako bih ažurirao widget i održao ga funkcionalnim. Siguran sam da ću s vremenom potrošiti više vremena na dizajn kako bih mogao poslati sva potrebna ažuriranja jednim objektom poruke. Za sada je to što jest.
Temperaturni tok
DHT11 izvještava svakih X sekundi natrag na poslužitelj NodeRED. Povećao sam ovu frekvenciju putem Tasmotine konzole. Samo pokrenite naredbu za postavljanje frekvencije u sekundama:
TelePeriod Podesite razdoblje telemetrije između 10 i 3600 sekundi
To se uglavnom radi za testove, jer ne želim čekati minute da vidim jesu li moji ispravci grešaka uspjeli. Održavanje visoke frekvencije uzrokovat će zagrijavanje češće u kraćim vremenskim razdobljima, stoga se suzdržite od postavljanja na 10 sekundi za druge svrhe osim za potrebe ispitivanja. Čvor MQTT izvlači podatke iz:
sonoff/tele/SENZOR
i čuva najkorisnije podatke u sljedećim objektima:
msg.payload. DHT11. Temperatura msg.payload. DHT11. Vlažnost
Da bih ograničio pogreške, dodao sam glatki čvor u prosjek rezultata i ažurirao varijablu protoka: NodeRED:
Funkcijski čvor - ažurirajte "TempAmbient"
flow.set ('TempAmbient', msg.payload. DHT11. Temperature); return msg;
Ažuriranje widgeta
Odlučio sam da je 5 sekundi dobra brzina osvježavanja, stoga guram sve potrebne vrijednosti ovom frekvencijom. Jedina iznimka je klizač koji iz očiglednog razloga reagira trenutačno.
Svaki odgovarajući čvor šalje korisni teret s dodijeljenom temom na widget sličan gnijezdu.
- boja (grijanje | hlađenje*| isključeno & hvac_state)
- list (true | false & has_leaf)
- daleko (istina | netočno i daleko)
- Temperatura okoline (broj i temperatura okoline)
- Ciljna temperatura (broj i ciljna_temperatura)
*ne koristi se
NodeRED: Čvor funkcije - ažuriranje widgeta
boja
x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); //ambijentalni
ako je (z = x) {
flow.set ('grijanjeStavljeno', "isključeno"); flow.set ('prekidač grijanja', "ISKLJUČENO"); } msg.payload = z; msg.topic = "temperatura okoline"; return msg;
list
x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('list', istina); msg.payload = true; msg.topic = "has_leaf"; return msg; } else {flow.set ('list', lažno); msg.payload = false; msg.topic = "has_leaf"; return msg; }
Poništavanje boje
x = flow.get ('daleko'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "isključeno"; return msg; }
msg.topic = "hvac_state";
msg.payload = flow.get ('heatState');
return msg;
Daleko
x = flow.get ('daleko'); if (x === true) {flow.set ('heatSwitch', "OFF"); flow.set ('grijanjeStavljeno', "isključeno"); }
msg.topic = "daleko";
msg.payload = flow.get ('daleko'); return msg;
Ciljna temp
if (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); return msg; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set ('daleko', lažno); msg.topic = "ciljna_temperatura"; flow.set ('TempTarget', msg.payload); }
if (msg.topic === "klizač") {
flow.set ('daleko', lažno); msg.topic = "ciljna_temperatura"; flow.set ('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest") {}
return msg;
Kao što vidite, odlučio sam se za varijable protoka, tako da sam se mogao sjetiti vrijednosti u bilo kojem trenutku. Imam tok ispravljanja pogrešaka koji u osnovi čita sve pohranjene vrijednosti.
- ‘TempAmbinet’ - pohranjuje trenutnu temp
- "TempTarget" - sadrži vrijednost temp temp
- ‘List’ - prikazuje list ako je potrebno
- ‘Daleko’ - prikazuje stanje odsutnosti ako je potrebno
- ‘HeatState’ - mijenja boju zaslona
- ‘HeatSwitch’ - kontrolira stanje releja.
Izazov je bio osigurati da se podaci ažuriraju nakon „ažuriranja“i kada se to zatraži na druge načine (Alexa, itd.). Zbog toga ćete vidjeti različite uvjete u JavaScriptu. Svaki put kada se vrijednosti ažuriraju, šalju se varijabli toka i widget se osvježava.
Klizač
Testiranje je otkrilo da je potrebno dodatno ažuriranje klizača (klizač pomiče ciljnu temperaturu). Klizač šalje korisni teret (broj) s pridruženom temom "klizač" kada se pomakne. Povrh svega, želim da klizač dođe u pravilan položaj ako je postavljeno više web sučelja. Da bih to učinio, svakih 5 sekundi jednostavno ažuriram položaj klizača na trenutnu ciljanu temperaturu.
NodeRED: Funkcijski čvor - klizač za ažuriranje '
msg.payload = flow.get ('TempTarget'); return msg;
Upravljanje relejem
Relejni regulator je jednostavan, zauzima (za sada) dva ulaza. Alexa's true | false i interakcija koja slijedi nakon ažuriranja varijable protoka "prekidača grijanja". Nema potrebe za trenutnom radnjom, pa zbog jednostavnosti radi na istoj frekvenciji ažuriranja od 5 sekundi kao i ostatak toka.
Relej je spojen preko MQTT -a. Čvor objavljuje naredbe ON | OFF na temu:
sonoff/cmnd/POWER1
Čvor funkcije prihvaća true | false iz Alexa, a također mijenja stanje ulaza prema varijabli protoka ‘heatSwitch’.
NodeRED: Funkcijski čvor - upravljački relej '
if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; return msg; }
if (msg.command === "TurnOnRequest") {
msg.payload = "ON"; flow.set ('TempTarget', 21); return msg; } if (msg.topic === "update") {msg.payload = flow.get ('heatSwitch'); } return msg;
Integracija Alexa
Ovo je prvi uređaj na kojem sam morao isključiti "automatsko potvrđivanje". Umjesto automatskog pretpostavljanja odgovora, generirao sam odgovor jer želim mogućnost upita postavljene temperature. U načelu, msg.payload = true | false označava je li zahtjev bio uspješan, a ostalo predlošci koji se ovdje nalaze. Ako ste tek počeli koristiti Alexa i NodeRed, svakako ovo pročitajte.
Odlučio sam proslijediti priznanja odvojeno (znam da to nije najbolji način) kako bih sve to mogao malo bolje kontrolirati. Ispravno svaki odgovor treba dati na kraju naredbenog lanca. Moj riskira da ne vrati greške ako se to dogodi. Imajte na umu da za dosljednost ažuriram samo varijable, dok petlja osvježavanja gura nove vrijednosti u widget.
NodeRED: Funkcijski čvor - Obradi Alexa odgovore '
// Koja je ciljana temperatura termostataif (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"vrijednost": x}, "deviceResponseTimestamp": novi datum (). toISOString ()}; msg.payload = true; return msg; } // Postavite temperaturu na (ne nižu od 10 ili više od 30) if (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = raspon; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } return msg; } // Uključite ga ako (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('daleko', lažno); flow.set ('TempTarget', 21); return msg; } // Isključite ako (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('daleko', točno); return msg;
Korak 4: Zaključak
Ako nadzornu ploču NodeRED izložite WAN -u, cijeli sustav grijanja može se upravljati daljinski. Preporučio bih vam da pročitate sljedeće članke kako biste ubrzali rad sa NodeRED i NodeRED sigurnošću.
- NodeRED za početnike
- NODRED sigurnost
Osim toga, ako želite biti informirani o ažuriranjima ovog projekta - slijedite me na platformi po vašem izboru:
- Facebo ok
- Twit tter
- YouTu budi
A ako želite kupiti mi kavu ili me podržati na stalniji način:
- Paypal
- Patreon
Nadam se da ste uživali u projektu!
Preporučeni:
Nest termostat, praćenje zauzetosti: 12 koraka
Nest termostat, praćenje zauzetosti: Mojom automatizacijom kućnog hlađenja pomoću mog Nest termostata do nedavno je upravljao IFTTT koristeći Life360 -ove "prve stigle kući" i " zadnji napustio dom " okidači. Ovo je bilo sjajno jer sam mogao dodati članove obitelji u svoj Li
Stari punjač? Ne, to su pojačalo i pedala za gitare sa cijevi RealTube18: 8 koraka (sa slikama)
Stari punjač? Ne, radi se o pojačalu i pedali za cijelu cijev s gitarama RealTube18 za gitaru: PREGLED: Što učiniti tijekom pandemije, sa zastarjelim punjačem baterija od nikal-kadmija i 60-godišnjim zastarjelim vakuumskim cijevima za radio, koje je potrebno reciklirati? Što kažete na projektiranje i izgradnju niskonaponske, uobičajene baterije samo za cijevi
Popravite stari prijenosni računar!: 6 koraka (sa slikama)
Popravite stari prijenosni računar!: Hej! Danas ću vam pokazati kako popraviti stari laptop. Zašto želite to učiniti? Pa računala doista nisu postala toliko bolja (barem što se tiče procesora) u posljednjem desetljeću pa stara prijenosna računala mogu biti iznenađujuće korisna. Također ponekad vi
Najveće dionice: Hakirao sam stari telefon za reprodukciju najveće glazbe na čekanju .: 13 koraka (sa slikama)
Najveće dionice: Hakirao sam stari telefon za reprodukciju najveće glazbe na čekanju .: https: //youtu.be/Ma4QnfQ7DxoPa postoji bezbroj drugih uzbudljivih projekata koje možete napraviti s ovim vrlo jednostavnim hakiranjem ovih lako dostupnih "stola" telefoni
Žute točke misterije: špijunira li vas vaš pisač?: 5 koraka (sa slikama)
Žute tajanstvene točke: Špijunira li vas vaš pisač ?: Zamislite da svaki put kada ispisujete dokument, on automatski uključuje tajni kôd koji bi se mogao koristiti za identifikaciju pisača - i, potencijalno, osobe koja ga je koristila. Zvuči kao nešto iz špijunskog filma, zar ne? Nažalost, scenarij