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, Juli
Anonim
Image
Image
Kako radi termostat
Kako radi termostat

Sustav grijanja u mojoj kući je vjerovatno star koliko i sama kuća. Star je oko 30 godina, što je u redu s obzirom na kućne godine, ali prilično je zaglavljeno u ledenom dobu što se tehnologije tiče. Postoje 2 glavna problema s komercijalnim rješenjima:

  • zabranjene cijene
  • proizvod kao uslugu

Svi se sjećamo šta 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!

Karakteristike:

  • mogućnost korištenja postojećeg termostata (u slučaju da supruga stenje zbog toga)
  • daljinski pristup
  • AWAY način rada
  • indikator optimalne temperature
  • Radi sa Alexa

Uskoro (ažuriranja provjerite ovdje)

  • Google Home
  • Google kalendar
  • Više senzora
  • Komande radijatora
  • IFTT integracije
  • Podrška za Tasker
  • HTTP zahtevi
  • Mnogo bolje izgleda kućište

Korak 1: Kako funkcionira termostat

Kako radi termostat
Kako radi termostat
Kako radi termostat
Kako radi termostat

Termostat je vjerojatno povezan na VISOKI NAPON! Ne pokušavajte ništa učiniti ako se niste uvjerili da je krug isključen. Možete se ozlijediti i oštetiti priključenu opremu. Posavjetujte se s kvalificiranim električarom 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). Kutija je spojena na glavnu upravljačku jedinicu (koja je naprednija kutija) i šalje signal kada temperatura padne ispod ciljnog nivoa. 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 trožilni termostati rade u principu, što me nije spriječilo da puknem osigurač tako što sam slučajno spojio 2 žice! Imam 3 žice spojene na jedinicu (od kojih je četvrta 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 povezan na sljedeći način:

  1. (plavo) - Uzemljenje
  2. (žuto) - signal, kada je grijanje visoko uključeno
  3. nije u upotrebi
  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 kada ž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). Uvjerite se da je Tasmota firmver postavljen na vaš Sonoff uređaj (ovdje imam odličan vodič za treperenje) i da je vaš Sonoff s omogućenim Tasmotom ispravno konfiguriran (također već pokrivam). Sada vam preostaje samo spojiti DHT11 senzor na Sonoff i konfigurirati ga za izvještavanje o temperaturi.

DHT11 dolazi sa 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 čim mi 3D štampač stigne. Obratio sam dodatnu pažnju na to kako povezujem Sonoff, jer moram paziti da se žica pod naponom poveže sa signalnom žicom na drugom kraju Sonoff uređaja. Honeywell jedinica ima otpornik opterećenja (R) ugrađen unutra 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 i dalje radi. Ako ga pojačam, on će nadjačati onaj baziran na Sonoff Tasmoti. Ovo bi trebao biti odličan backup za sve neočekivane događaje.

Korak 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Imajte na umu da videozapis može sadržavati starije NodeRed reference, stalno radim na poboljšanju dizajna. Ovo su male izmjene i datoteke članaka se ažuriraju

Na ovaj dizajn sam naišao na internetu. Izgleda odlično, međutim nakon pomnog pregleda widget nije baš pogodan za NodeRED. Za postavljanje mu je potrebno 5 korisnih podataka, ali dizajn čvorova na sličan način ne funkcionira. Trebalo mi je neko vrijeme da smislim najbolji način prenošenja svih tih informacija radi ažuriranja widgeta i održavanja njegove funkcionalnosti. Siguran sam da ću s vremenom potrošiti više vremena na dizajn kako bih mogao progurati sva potrebna ažuriranja jednim objektom poruke. Za sada je to što jeste.

Temperaturni tok

DHT11 izvještava svakih X sekundi natrag na NodeRED poslužitelj. Povećao sam ovu frekvenciju putem Tasmotine konzole. Samo pokrenite naredbu za postavljanje frekvencije u sekundama:

TelePeriod Podesite period telemetrije između 10 i 3600 sekundi

To se uglavnom radi za testove, jer ne želim čekati minute da vidim da li su mi ispravci grešaka uspjeli. Održavanje visoke frekvencije uzrokovat će zagrijavanje češće na kraće vremenske periode, pa se suzdržite od postavljanja na 10 sekundi za druge svrhe osim za testiranje. Čvor MQTT izvlači podatke iz:

sonoff/tele/SENSOR

i čuva najkorisnije podatke u sljedećim objektima:

msg.payload. DHT11. Temperatura msg.payload. DHT11. Humidity

Da bih ograničio greške, dodao sam glatki čvor u prosjek rezultata i ažurirao varijablu toka: 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. Jedini izuzetak je klizač, koji iz očiglednog razloga reagira trenutno.

Svaki odgovarajući čvor šalje korisni teret s dodijeljenom temom na widget sličan gnijezdu.

  • boja (grijanje | hlađenje*| isključeno & hvac_state)
  • list (istinito | lažno i has_leaf)
  • daleko (istina | lažno i odsutno)
  • Temperatura okoline (broj i temperatura okoline)
  • Ciljna temperatura (broj i ciljna_temperatura)

*nije u upotrebi

NodeRED: Čvor funkcije - Ažuriranje widgeta

boja

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // ambijent

ako je (z = x) {

flow.set ('heatState', "off"); flow.set ('grijanjeprekidač', "ISKLJUČENO"); } msg.payload = z; msg.topic = "ambijentalna_temperatura"; return msg;

list

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('list', tačno); 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 ('away'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "isključeno"; return msg; }

msg.topic = "hvac_state";

msg.payload = flow.get ('heatState');

return msg;

Away

x = flow.get ('away'); if (x === true) {flow.set ('heatSwitch', "OFF"); flow.set ('heatState', "off"); }

msg.topic = "daleko";

msg.payload = flow.get ('away'); return msg;

Target Temp

if (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); return msg; }

if (msg.command === "SetTargetTemperatureRequest") {

flow.set ('away', false); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }

if (msg.topic === "klizač") {

flow.set ('away', false); msg.topic = "target_temperature"; 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 grešaka koji u osnovi čita sve uskladištene vrijednosti.

  • 'TempAmbinet' - pohranjuje trenutnu temp
  • „TempTarget“- sadrži vrijednost cilja temp
  • ‘List’ - prikazuje list ako je potrebno
  • ‘Daleko’ - prikazuje stanje odsutnosti ako je potrebno
  • ‘HeatState’ - mijenja boju ekrana
  • ‘HeatSwitch’ - kontrolira stanje releja.

Izazov je bio osigurati da se informacije ažuriraju nakon „ažuriranja“i kada se to zatraži na druge načine (Alexa, itd.). Zbog toga ćete u JavaScript -u vidjeti različite uslove. Svaki put kada se vrijednosti ažuriraju, šalju se varijabli protoka i widget se osvježava.

Slider

Testiranje je otkrilo da je potrebno dodatno ažuriranje klizača (klizač pomiče ciljnu temperaturu). Klizač šalje korisni teret (broj) sa pridruženom temom „klizač“kada se premjesti. Povrh svega, želim da klizač dođe u pravilan položaj ako je postavljeno više web sučelja. Da biste to učinili, svakih 5 sekundi jednostavno ažuriram položaj klizača na trenutnu ciljnu temperaturu.

NodeRED: Čvor funkcije - klizač za ažuriranje '

msg.payload = flow.get ('TempTarget'); return msg;

Upravljanje relejem

Relejni regulator je jednostavan, zauzima (za sada) dva ulaza. Alexa je istina | lažno i interakcija koja slijedi nakon ažuriranja varijable protoka "prekidač grijanja". Nema potrebe za trenutnom radnjom, pa zbog jednostavnosti radi na istoj frekvenciji ažuriranja od 5 sekundi kao i ostatak toka.

Relej je povezan preko MQTT -a. Node postavlja naredbe ON | OFF na temu:

sonoff/cmnd/POWER1

Čvor funkcije prihvaća true | false od Alexa, a također mijenja stanje ulaza prema varijabli protoka ‘heatSwitch’.

NodeRED: Funkcijski čvor - kontrolni 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 principu, msg.payload = true | false označava je li zahtjev bio uspješan, a preostali predlošci rade ovdje. 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. Pravilno svaki odgovor treba dati na kraju komandnog lanca. Moj riskira da ne vrati greške ako se to dogodi. Imajte na umu da ja, radi dosljednosti, 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": {"value": x}, "deviceResponseTimestamp": novi datum (). toISOString ()}; msg.payload = true; return msg; } // Podesite 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 ako (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('away', false); flow.set ('TempTarget', 21); return msg; } // Isključite ako (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('away', true); return msg;

Korak 4: Zaključak

Zaključak
Zaključak

Ako NodeRED nadzornu ploču izložite WAN -u, cijeli sustav grijanja može se kontrolirati 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
  • NodeRED sigurnost

Osim toga, ako želite biti informirani o ažuriranjima ovog projekta - slijedite me na platformi po vašem izboru:

  • Facebo ok
  • Twi tter
  • Instagram
  • YouTu be

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čuje se: