Sadržaj:

NEST Vaš stari termostat: 4 koraka (sa slikama)
NEST Vaš stari termostat: 4 koraka (sa slikama)

Video: NEST Vaš stari termostat: 4 koraka (sa slikama)

Video: NEST Vaš stari termostat: 4 koraka (sa slikama)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Srpanj
Anonim
Image
Image
Kako radi termostat
Kako radi termostat

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

Kako radi termostat
Kako radi termostat
Kako radi termostat
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:

  1. (plavo) - Uzemljenje
  2. (žuto) - signal, kada je grijanje visoko uključeno
  3. ne koristi se
  4. (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

Priprema Sonoff Basic -a
Priprema Sonoff Basic -a
Priprema Sonoff Basic -a
Priprema Sonoff Basic -a
Priprema Sonoff Basic -a
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

NODRED
NODRED
NODRED
NODRED
NODRED
NODRED

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

Zaključak
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
  • Instagram
  • 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: