Përmbajtje:

NEST Termostati juaj i vjetër: 4 hapa (me fotografi)
NEST Termostati juaj i vjetër: 4 hapa (me fotografi)

Video: NEST Termostati juaj i vjetër: 4 hapa (me fotografi)

Video: NEST Termostati juaj i vjetër: 4 hapa (me fotografi)
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Korrik
Anonim
Image
Image
Si funksionon një termostat
Si funksionon një termostat

Sistemi i ngrohjes në shtëpinë time është ndoshta aq i vjetër sa vetë shtëpia. Aboutshtë rreth 30 vjeç, e cila është mirë për sa i përket viteve të shtëpisë, por shumë e mbërthyer në epokën e akullit për sa i përket teknologjisë. Ekzistojnë 2 probleme kryesore me zgjidhjet komerciale:

  • çmimi ndalues
  • produkt si shërbim

Ne të gjithë e mbajmë mend atë që ndodhi me Revolv dhe nuk jam shumë i interesuar që kjo të më ndodhë mua në mes të dimrit. Me këtë në mendje, unë ju paraqes një kontrollues tepër të dyshimtë, por funksional NEST-Alike për termostatin tuaj të vjetër. Mos u shqetësoni, unë po planifikoj një rrethim shumë më të mirë që do të shtohet së shpejti!

Karakteristikat:

  • aftësia për të përdorur një termostat ekzistues (në rast se gruaja rënkon për këtë)
  • qasje në distancë
  • Mënyra larg
  • Treguesi optimal i temperaturës
  • Punon me Alexa

Së shpejti (kontrolloni këtu për përditësime)

  • Google Home
  • Kalendari Google
  • Sensorë të Shumëfishtë
  • Kontrollet e radiatorëve
  • Integrimet IFTT
  • Mbështetje për detyrat
  • Kërkesat
  • Një rrethim shumë më i bukur

Hapi 1: Si funksionon një termostat

Si funksionon një termostat
Si funksionon një termostat
Si funksionon një termostat
Si funksionon një termostat

Termostati ka të ngjarë të jetë i lidhur me Tensionin e Lartë! Mos u përpiqni të bëni asgjë nëse nuk jeni siguruar që qarku është i fikur. Ju mund të dëmtoni veten dhe të shkaktoni dëme në pajisjet e lidhura. Merrni parasysh të konsultoheni me një elektricist të kualifikuar për të siguruar sigurinë tuaj

Termostati Honeywell është një njësi e montuar në mur, e mundësuar nga rrjeti elektrik (bazat e Sonoff kanë nevojë për min 90V, qarku im ka 230V). Kutia është e lidhur me njësinë kryesore kontrolluese (e cila është një kuti më e avancuar) dhe ajo dërgon sinjal kur temperatura bie nën nivelin e synuar. Ndërsa njësia juaj mund të jetë e ndryshme, parimi ka shumë mundësi të jetë i njëjtë. Nëse keni 3 tela dhe nuk keni lidhje radio midis njësisë së montuar në mur-ky është mësimi për ju.

Unë e di se si funksionojnë termostatët me 3 tela në parim, gjë që nuk më ndaloi të fryja një siguresë duke shkurtuar 2 tela rastësisht! Unë kam 3 tela të lidhura me njësinë (me 4 -ën është toka). Termostati im Honeywell nuk është pa tel, kështu që për të ndërruar sinjalin, mund të përdor Sonoff Basic. Timeshtë koha për ta ndarë atë dhe për të parë se si sinjali dërgohet në njësi. Pas një inspektimi më të afërt, terminali lidhet në mënyrën e mëposhtme:

  1. (blu) - Tokë
  2. (e verdhë) - sinjal, kur tërhiqet lart ngrohja është e ndezur
  3. jo në përdorim
  4. (e kuqe) - tela e drejtpërdrejtë e përdorur për të tërhequr sinjalin lartë

Për të arritur qëllimin tim, duhet të shkurtoj tela të drejtpërdrejtë me tela sinjali kur dua që ngrohja ime të ndizet. Nëse keni një termostat të lidhur në mënyrë të ngjashme, ju jeni me fat pasi Sonoff Basic do të jetë e mjaftueshme për të bërë mashtrimin.

Hapi 2: Përgatitja e Sonoff Basic

Përgatitja e Sonoff Basic
Përgatitja e Sonoff Basic
Përgatitja e Sonoff Basic
Përgatitja e Sonoff Basic
Përgatitja e Sonoff Basic
Përgatitja e Sonoff Basic

Para se të fillojmë lidhjen e telave, duhet të shtojmë një sensor të temperaturës (DHT11) në përzierje. Sigurohuni që firmware-i Tasmota të jetë ndezur në pajisjen tuaj Sonoff (kam një udhëzues të shkëlqyeshëm ndezës këtu) dhe Sonoff-i juaj i aktivizuar nga Tasmota është konfiguruar saktë (gjithashtu i mbuluar tashmë nga unë). Tani, gjithçka që ju ka mbetur është të lidhni sensorin DHT11 me Sonoff dhe ta konfiguroni atë për raportimin e temperaturës.

DHT11 vjen me 3 kunja me tela: Sinjal - GPIO14Vcc - 3.3VGND - GND

Kam hapur një vrimë, nuk jam i shqetësuar se si duket tani, gjithçka që më duhet është prova e konceptit dhe vërtetimi. Unë do të bëj një rrethim të bukur dhe me shkëlqim sapo të vijë printeri im 3D. I kushtova vëmendje shtesë sesi lidh tela Sonoff, pasi duhet të sigurohem që tela e drejtpërdrejtë të lidhet me tela sinjali në skajin tjetër të pajisjes Sonoff. Njësia Honeywell ka rezistencën e ngarkesës (R) të ndërtuar brenda e cila kufizon rrymën. Ndërsa qarku mbrohet nga siguresa 3A, është e zgjuar të përputhet me të njëjtën rezistencë për mbrojtje shtesë. Pasi i kisha bërë telat gati, ishte koha për të fikur energjinë kryesore dhe për të lidhur përsëri Sonoff.

Sonoff Tasmota - Termostat Honeywell

INPUT Live - Terminali i 4 -të Live

INPUT GND - GND terminali i parë

Sinjali OUTPUT - Sinjali i 2 -të i terminalit

E përmenda më parë se tani për tani, nuk do të theksohem për pamjen e kësaj. Gruaja është e bindur dhe unë mund të përqendrohem në funksionalitetin dhe pastrimin e çdo defekti që do të ndodhë. Gjëja e mirë është se termostati origjinal është ende duke punuar. Nëse e shfaq, do të anashkalojë atë të bazuar në Sonoff Tasmota. Ky duhet të jetë një rezervë e shkëlqyeshme për çdo ngjarje të papritur.

Hapi 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Ju lutemi vini re se videoja mund të përmbajë referenca më të vjetra NodeRed, unë jam duke punuar vazhdimisht në përmirësimin e modelit. Këto janë ndryshime të vogla dhe skedarët e artikujve mbahen të përditësuar

Kam hasur në këtë dizajn në internet. Duket e mrekullueshme, megjithatë pas inspektimit të ngushtë, widget nuk është vërtet i përshtatshëm për NodeRED. Duhen 5 ngarkesa për t'u vendosur, gjë që nuk është se si funksionon dizajni i nyjeve. M'u desh pak kohë për të gjetur mënyrën më të mirë të kalimit të gjithë atij informacioni për të azhurnuar widget -in dhe për ta mbajtur atë funksional. Jam i sigurt se me kalimin e kohës do të kaloj më shumë kohë në dizajn, në mënyrë që të shtyj të gjitha përditësimet e nevojshme me një objekt të vetëm msg. Tani për tani, është ajo që është.

Rrjedha e temperaturës

DHT11 raporton çdo X sekonda përsëri në serverin NodeRED. Unë e rrita këtë frekuencë përmes tastierës së Tasmota. Thjesht ekzekutoni komandën për të vendosur frekuencën në sek:

TelePeriod Vendosni periudhën e telemetrisë midis 10 dhe 3600 sekonda

Kjo është bërë kryesisht për teste, pasi nuk dua të pres për minuta për të parë nëse rregullimet e mia të defekteve kanë funksionuar. Mbajtja e frekuencës së lartë do të bëjë që ngrohja të ndizet më shpesh për periudha më të shkurtra kohore, kështu që përmbaheni nga vendosja e saj në 10 sekonda për qëllime të tjera përveç testimit. Nyja MQTT tërheq të dhënat nga:

sonoff/tele/SENSOR

dhe ruan të dhënat më të dobishme në objektet e mëposhtme:

msg.payload. DHT11. Temperature msg.payload. DHT11. Hidratësia

Për të kufizuar gabimet, shtova nyjen e qetë në mesataren e rezultateve dhe azhurnova ndryshoren e rrjedhës: NodeRED:

Nyja e funksionit - Përditësoni 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperature); kthimi i msg;

Përditësimi i widget -it

Vendosa që 5 sekonda është një normë e mirë rifreskimi, prandaj unë po shtyj të gjitha vlerat e nevojshme me këtë frekuencë. Përjashtimi i vetëm është rrëshqitësi, i cili për arsye të dukshme përgjigjet menjëherë.

Çdo nyje përkatëse dërgon ngarkesën e ngarkuar me temën e caktuar në widget-in e ngjashëm me folenë.

  • ngjyra (ngrohje | ftohje*| off & hvac_state)
  • fletë (e vërtetë | e pavërtetë & fletë ka]
  • larg (e vërtetë | e rreme dhe larg)
  • Temperatura e ambientit (numri dhe temperatura e ambientit)
  • Temperatura e synuar (numri dhe temperatura e synuar)

*nuk është në përdorim

NodeRED: Nyja e funksionit - Përditësimi i widget -it

ngjyrë

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

nëse (z = x) {

flow.set ('heatState', "off"); flow.set ('ngrohjeQelës', "OFF"); } msg.payload = z; msg.topic = "temperatura e ambientit"; kthe mesazh;

gjethe

x = flow.get ('TempAmbient'); nëse (x> 17 && x <23) {flow.set ("fletë", e vërtetë); msg.payload = true; msg.topic = "ka_fletë"; kthe mesazh; } else {flow.set ('gjethe', false); msg.payload = false; msg.topic = "ka_fletë"; kthe mesazh; }

Ngjyra anashkalon

x = flow.get ('larg'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "joaktiv"; kthe mesazh; }

msg.topic = "shteti hvac";

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

kthe mesazh;

Larg

x = flow.get ('larg'); nëse (x === e vërtetë) {flow.set ('switchSwitch', "OFF"); flow.set ('heatState', "off"); }

msg.topic = "larg";

msg.payload = flow.get ('larg'); kthe mesazh;

Temperatura e synuar

if (msg.topic === "përditësim") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); kthe mesazh; }

nëse (msg.command === "SetTargetTemperatureRequest") {

flow.set ('larg', false); msg.topic = "temperatura_e synuar"; flow.set ('TempTarget', msg.payload); }

nëse (msg.topic === "rrëshqitës") {

flow.set ('larg', false); msg.topic = "temperatura_e synuar"; flow.set ('TempTarget', msg.payload); }

nëse (msg.command === "GetTemperatureReadingRequest") {}

kthe mesazh;

Siç e shihni, unë zgjodha variablat e rrjedhës, kështu që mund të kujtoja vlerën në çdo kohë të caktuar. Unë kam një rrjedhje të korrigjimit e cila në thelb lexon të gjitha vlerat e ruajtura.

  • ‘TempAmbinet’ - ruan temperaturën aktuale
  • 'TempTarget' - mban vlerën e synuar të temp
  • "Fletë" - shfaq fletën nëse është e nevojshme
  • "Larg" - shfaq statusin e largimit nëse është e nevojshme
  • 'HeatState' - ndryshon ngjyrën e ekranit
  • 'SwitchSwitch' - kontrollon gjendjen e stafetës.

Sfida ishte të siguroheshim që informacioni azhurnohet në "përditësim" dhe kur kërkohet me mjete të tjera (Alexa, etj). Kjo është arsyeja pse do të shihni kushte të ndryshme në JavaScript. Sa herë që vlerat azhurnohen, dërgohen te ndryshorja e rrjedhës dhe widget -i rifreskohet.

Rrëshqitës

Testimi zbuloi se nevojitet një përditësim shtesë i rrëshqitësit (rrëshqitësi shtyn temperaturën e synuar). Rrëshqitësi dërgon ngarkesën (numrin) me temën e lidhur "rrëshqitës" kur zhvendoset. Për më tepër, unë dua që rrëshqitësi të hyjë në pozicionin e duhur nëse ka shumë ndërfaqe në internet. Për ta bërë këtë, çdo 5 sekonda thjesht azhurnoj pozicionin e rrëshqitësit në një temperaturë aktuale të synuar.

NodeRED: Nyja e funksionit - Rrëshqitësi i azhurnimit '

msg.payload = flow.get ('TempTarget'); kthe mesazhin;

Kontrolli i stafetës

Kontrolluesi i stafetës është i thjeshtë, kërkon (tani për tani) dy hyrje. E vërtetë | e rreme e Alexa dhe ndërveprimi që pason një azhurnim të ndryshores së rrjedhës "Ndërprerësi i ngrohjes". Nuk ka nevojë për një veprim të menjëhershëm, kështu që për thjeshtësinë, ai funksionon në të njëjtën frekuencë azhurnimi 5 sekonda si pjesa tjetër e rrjedhës.

Stafeta është e lidhur përmes MQTT. Nyja po poston komandat ON | OFF në temën:

sonoff/cmnd/POWER1

Nyja e funksionit pranon true | false nga Alexa dhe gjithashtu ndryshon gjendjen e hyrjes sipas ndryshores së rrjedhës 'heatSwitch'.

NodeRED: Nyja e Funksionit - Rele e Kontrollit '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; kthe mesazh; }

nëse (msg.command === "TurnOnRequest") {

msg.payload = "ON"; flow.set ('TempTarget', 21); kthe mesazh; } if (msg.topic === "përditësim") {msg.payload = flow.get ('heatSwitch'); } kthimi i mesazhit;

Integrimi Alexa

Kjo është pajisja e parë që më duhej për të fikur "njohjen automatike". Në vend që të supozoj automatikisht një përgjigje, unë kam krijuar një ashtu siç dua aftësinë për të kërkuar temperaturën e caktuar. Në parim, msg.payload = true | false tregon nëse kërkesa ka qenë e suksesshme, dhe modelet e gjetura këtu bëjnë pjesën tjetër. Nëse jeni i ri në Alexa dhe NodeRed, sigurohuni që ta lexoni këtë.

Vendosa t'i kaloj mirënjohjet veç e veç (e di që kjo nuk është mënyra më e mirë) për të qenë në gjendje t'i kontrolloj të gjitha pak më mirë. Si duhet çdo përgjigje duhet të jepet në fund të zinxhirit komandues. I imi po rrezikon të mos kthejë gabimet nëse këto ndodhin. Vini re, që për të qenë konsistent, unë azhurnoj vetëm variablat, ndërsa cikli i rifreskimit, i shtyn vlerat e reja në widget.

NodeRED: Nyja e funksionit - Përgjigjet e procesit Alexa '

// Cila është temperatura e synuar e termostatit nëse (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"vlera": x}, "applianceResponseTimestamp": Data e re (). toISOString ()}; msg.payload = true; kthe mesazh; } // Vendosni temperaturën në (jo më të ulët se 10 ose më shumë se 30) nëse (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var variazhi = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = diapazoni; } else {msg.extra = {targetTemperature: {vlera: msg.payload}}; msg.payload = true; } kthimi i mesazhit; } // Ndizeni nëse (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('larg', false); flow.set ('TempTarget', 21); kthe mesazh; } // Fikeni nëse (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('larg', e vërtetë); kthe mesazh;

Hapi 4: Përfundimi

Përfundim
Përfundim

Nëse e ekspozoni pultin NodeRED në WAN i gjithë sistemi i ngrohjes mund të kontrollohet nga distanca. Unë do t'ju rekomandoja të lexoni artikujt e mëposhtëm për të shpejtuar me sigurinë NodeRED dhe NodeRED.

  • NodeRED për fillestarët
  • Siguria NodeRED

Për më tepër, nëse doni të informoheni për përditësimet e këtij projekti - merrni parasysh të më ndiqni në platformën e zgjedhur nga ju:

  • Facebo në rregull
  • Cicëroj
  • Instagram
  • YouTube

Dhe nëse ndiheni sikur më blini një kafe ose më mbështesni në një mënyrë më të vazhdueshme:

  • Paypal
  • Patreon

Shpresoj se ju ka pëlqyer projekti!

Recommended: