Satura rādītājs:

NEST savu veco termostatu: 4 soļi (ar attēliem)
NEST savu veco termostatu: 4 soļi (ar attēliem)

Video: NEST savu veco termostatu: 4 soļi (ar attēliem)

Video: NEST savu veco termostatu: 4 soļi (ar attēliem)
Video: Aqara S1 ZNCJMB14LM - interaktīvs skārienpanelis un trīs līniju slēdzis viedajai mājai 2024, Novembris
Anonim
Image
Image
Kā darbojas termostats
Kā darbojas termostats

Apkures sistēma manā mājā, iespējams, ir tikpat veca kā pati māja. Tas ir apmēram 30 gadus vecs, kas ir labi attiecībā uz mājas gadiem, bet, ciktāl tas attiecas uz tehnoloģiju, tas ir gandrīz iestrēdzis ledus laikmetā. Ar komerciāliem risinājumiem ir 2 galvenās problēmas:

  • pārmērīgas cenas
  • produkts kā pakalpojums

Mēs visi atceramies, kas notika ar Revolvu, un es neesmu pārāk ieinteresēts, lai tas notiktu ar mani ziemas vidū. Paturot to prātā, es iepazīstinu jūs ar neticami aizdomīga izskata, bet funkcionālu NEST-Alike kontrolieri jūsu vecajam termostatam. Neuztraucieties, es plānoju drīzumā pievienot daudz labāku korpusu!

Iespējas:

  • spēja izmantot esošo termostatu (ja sieva par to vaimanā)
  • attālā piekļuve
  • AWAY režīms
  • optimālais temperatūras indikators
  • Sadarbojas ar Alexa

Drīz (atjauninājumus skatiet šeit)

  • Google sākumlapa
  • Google kalendārs
  • Vairāki sensori
  • Radiatoru vadības ierīces
  • IFTT integrācija
  • Tasker atbalsts
  • HTTP pieprasījumi
  • Daudz labāk izskatīgs korpuss

1. darbība: kā darbojas termostats

Kā darbojas termostats
Kā darbojas termostats
Kā darbojas termostats
Kā darbojas termostats

Termostats, visticamāk, ir pievienots AUGSTAM SPRIEDZUMAM! Nemēģiniet neko darīt, ja neesat pārliecinājies, ka ķēde ir izslēgta. Jūs varat kaitēt sev un sabojāt pievienoto aprīkojumu. Apsveriet iespēju konsultēties ar kvalificētu elektriķi, lai pārliecinātos par savu drošību

Honeywell termostats ir pie sienas piestiprināta iekārta, ko darbina elektrotīkls (Sonoff pamatiem nepieciešams vismaz 90 V, manai shēmai ir 230 V). Kārba ir savienota ar galveno vadības bloku (kas ir modernāka kaste), un tā nosūta signālu, kad temperatūra nokrītas zem mērķa līmeņa. Lai gan jūsu vienība var būt atšķirīga, princips, visticamāk, ir vienāds. Ja jums ir 3 vadi un nav radio savienojuma starp sienas stiprinājumu-šī ir apmācība jums.

Es zinu, kā principā darbojas 3 vadu termostati, kas netraucēja man izpūst drošinātāju, nejauši saīsinot 2 vadus! Ierīcei ir pievienoti 3 vadi (ceturtais ir zeme). Mans Honeywell termostats nav bezvadu, tāpēc, lai pārslēgtu signālu, varu izmantot Sonoff Basic. Ir pienācis laiks to izjaukt un redzēt, kā signāls tiek nosūtīts uz ierīci. Pēc rūpīgākas pārbaudes terminālis ir savienots šādi:

  1. (zils) - zeme
  2. (dzeltens) - signāls, kad pacelts augsts, apkure ir ieslēgta
  3. netiek lietots
  4. (sarkans) - dzīvais vads, ko izmanto, lai paceltu signālu augstu

Lai sasniegtu savu mērķi, man ir jāsaīsina sprieguma vads ar signāla vadu, kad vēlos, lai mana apkure tiktu ieslēgta. Ja jums ir līdzīgi pievienots termostats, jums ir paveicies, jo Sonoff Basic būs pietiekami, lai veiktu šo triku.

2. darbība. Sagatavojiet Sonoff Basic

Gatavojamies Sonoff Basic
Gatavojamies Sonoff Basic
Gatavojamies Sonoff Basic
Gatavojamies Sonoff Basic
Gatavojamies Sonoff Basic
Gatavojamies Sonoff Basic

Pirms sākam savienot vadus, maisījumam jāpievieno temperatūras sensors (DHT11). Pārliecinieties, vai jūsu Sonoff ierīcē ir mirgo Tasmota programmaparatūra (šeit ir lielisks mirgošanas ceļvedis) un jūsu Tasmota iespējotais Sonoff ir pareizi konfigurēts (arī es jau to aptveru). Tagad jums atliek tikai savienot DHT11 sensoru ar Sonoff un konfigurēt to temperatūras ziņošanai.

DHT11 ir aprīkots ar 3 tapām ar vadu: signāls - GPIO14Vcc - 3.3VGND - GND

Es izurbju caurumu, mani neuztrauc tas, kā tas izskatās tagad, man vajag tikai koncepcijas pierādījumu un apstiprinājumu. Kad mans 3D printeris ieradīsies, es izveidošu jauku un spīdīgu korpusu. Es pievērsu īpašu uzmanību tam, kā es vadu Sonoff, jo man ir jāpārliecinās, ka strāvas vads ir savienots ar signāla vadu Sonoff ierīces otrā galā. Honeywell iekārtā ir iebūvēts slodzes rezistors (R), kas ierobežo strāvu. Lai gan ķēde ir aizsargāta ar 3A drošinātāju, papildu aizsardzībai ir prātīgi saskaņot to pašu pretestību. Kad vadi bija gatavi, bija pienācis laiks izslēgt galveno strāvu un pieslēgt Sonoff atpakaļ.

Sonoff Tasmota - Honeywell termostats

INPUT Live - 4. terminālis Live

INPUT GND - 1. terminālis GND

Izejas signāls - 2. termināļa signāls

Es jau iepriekš minēju, ka pagaidām es neņemos uzsvērt šo izskatu. Sieva ir pārliecināta, un es varu koncentrēties uz funkcionalitāti un visu iespējamo kļūdu novēršanu. Labi ir tas, ka oriģinālais termostats joprojām darbojas. Ja es to ieslēgšu, tas ignorēs uz Sonoff Tasmota balstīto. Tam vajadzētu būt lieliskai rezerves daļai neparedzētiem notikumiem.

3. darbība: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Lūdzu, ņemiet vērā, ka videoklipā var būt vecākas NodeRed atsauces, es pastāvīgi strādāju pie dizaina uzlabošanas. Šīs ir nelielas izmaiņas, un rakstu faili tiek pastāvīgi atjaunināti

Es saskāros ar šo dizainu tiešsaistē. Tas izskatās lieliski, taču, rūpīgi pārbaudot, logrīks nav īsti piemērots NodeRED. Tam ir jāiestata 5 lietderīgās slodzes, un tas nav veids, kā darbojas mezglu līdzīgs dizains. Pagāja kāds laiks, lai saprastu, kā vislabāk nodot visu šo informāciju, lai atjauninātu logrīku un saglabātu to funkcionālu. Esmu pārliecināts, ka laika gaitā es vairāk laika veltīšu dizainam, lai es varētu nospiest visus nepieciešamos atjauninājumus ar vienu ziņojuma objektu. Pagaidām tas ir tāds, kāds tas ir.

Temperatūras plūsma

DHT11 ik pēc X sekundēm ziņo NodeRED serverim. Es palielināju šo biežumu, izmantojot Tasmota konsoli. Vienkārši palaidiet komandu, lai iestatītu frekvenci sekundēs:

TelePeriod Iestatiet telemetrijas periodu no 10 līdz 3600 sekundēm

Tas tiek darīts galvenokārt testiem, jo es nevēlos gaidīt minūtes, lai redzētu, vai mani kļūdu labojumi darbojās. Ja frekvence tiek saglabāta augsta, apkures sistēma biežāk ieslēgsies īsāku laiku, tāpēc neatstājiet to uz 10 sekundēm, izņemot testēšanas nolūkos. MQTT mezgls iegūst datus no:

sonoff/tele/SENSOR

un saglabā visnoderīgākos datus šādos objektos:

msg.payload. DHT11. Temperatūra msg.payload. DHT11. Mitrums

Lai ierobežotu kļūdas, es pievienoju gludo mezglu, lai aprēķinātu rezultātus un atjauninātu plūsmas mainīgo: NodeRED:

Funkcijas mezgls - atjauniniet “TempAmbient”

flow.set ('TempAmbient', msg.payload. DHT11. Temperature); atgriezt ziņu;

Logrīka atjauninājums

Es nolēmu, ka 5 sekundes ir labs atsvaidzināšanas ātrums, tāpēc ar šo frekvenci nospiežu visas nepieciešamās vērtības. Vienīgais izņēmums ir slīdnis, kas acīmredzamu iemeslu dēļ reaģē uzreiz.

Katrs atbilstošais mezgls nosūta lietderīgo slodzi ar piešķirto tēmu uz ligzdai līdzīgo logrīku.

  • krāsa (apkure | dzesēšana*| izslēgta un hvac_state)
  • lapa (patiesa | nepatiesa un has_leaf)
  • prom (patiess | nepatiess un prom)
  • Apkārtējā temperatūra (skaitlis un apkārtējā temperatūra)
  • Mērķa temperatūra (skaitlis un mērķa temperatūra)

*netiek lietots

NodeRED: Funkcijas mezgls - logrīka atjauninājums

krāsa

x = plūsma.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // apkārtējais

ja (z = x) {

flow.set ('sildīšanas valsts', "izslēgts"); flow.set ('sildīšanas slēdzis', "IZSLĒGTS"); } msg.payload = z; msg.topic = "apkārtējās vides temperatūra"; atgriezt ziņu;

lapa

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = true; msg.topic = "has_leaf"; atgriezt ziņu; } else {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; atgriezt ziņu; }

Krāsu ignorēšana

x = flow.get ('prom'); ja (x === taisnība) {msg.topic = "hvac_state"; msg.payload = "izslēgts"; atgriezt ziņu; }

msg.topic = "hvac_state";

msg.payload = flow.get ('sildīšanas valsts');

atgriezt ziņu;

Prom

x = flow.get ('prom'); if (x === true) {flow.set ('sildīšanas slēdzis', "IZSLĒGTS"); flow.set ('sildīšanas valsts', "izslēgts"); }

msg.topic = "prom";

msg.payload = flow.get ('prom'); atgriezt ziņu;

Mērķa temp

if (msg.topic === "update") {msg.topic = "mērķa_temperatūra"; msg.payload = flow.get ('TempTarget'); atgriezt ziņu; }

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

flow.set ('prom', false); msg.topic = "mērķa_temperatūra"; flow.set ('TempTarget', msg.payload); }

ja (msg.topic === "slīdnis") {

flow.set ('prom', false); msg.topic = "mērķa_temperatūra"; flow.set ('TempTarget', msg.payload); }

ja (msg.command === "GetTemperatureReadingRequest") {}

atgriezt ziņu;

Kā redzat, es atteicos no plūsmas mainīgajiem, lai jebkurā brīdī varētu atcerēties vērtību. Man ir atkļūdošanas plūsma, kas būtībā nolasa visas saglabātās vērtības.

  • ‘TempAmbinet’ - saglabā pašreizējo temp
  • “TempTarget” - saglabā temp mērķa vērtību
  • “Lapa” - parāda lapu, ja nepieciešams
  • “Prom” - vajadzības gadījumā parāda statusu prom
  • “Sildīšanas valsts” - maina displeja krāsu
  • “Apsildes slēdzis” - kontrolē releja stāvokli.

Izaicinājums bija faktiski pārliecināties, ka informācija tiek atjaunināta “atjaunināšanas” laikā un pēc pieprasījuma, izmantojot citus līdzekļus (Alexa utt.). Tāpēc JavaScript redzēsit dažādus nosacījumus. Katru reizi, kad vērtības tiek atjauninātas, tās tiek nosūtītas plūsmas mainīgajam un logrīks tiek atsvaidzināts.

Slīdnis

Pārbaude atklāja, ka ir nepieciešams papildu slīdņa atjauninājums (slīdnis nospiež mērķa temperatūru). Slīdnis nosūta kravnesību (numuru) ar saistīto tēmu “slīdnis”, kad tā tiek pārvietota. Turklāt es vēlos, lai slīdnis nokļūtu pareizajā stāvoklī, ja ir izveidotas vairākas tīmekļa saskarnes. Lai to izdarītu, ik pēc 5 sekundēm es vienkārši atjauninu slīdņa pozīciju līdz pašreizējai mērķa temperatūrai.

NodeRED: Funkcijas mezgls - Atjaunināt slīdni"

msg.payload = flow.get ('TempTarget'); atgriezt ziņu;

Releja vadība

Releju kontrolieris ir vienkāršs, tas prasa (pagaidām) divas ieejas. Alexa true | false un mijiedarbība, kas seko plūsmas mainīgā “sildīšanas slēdzis” atjaunināšanai. Nav nepieciešama tūlītēja darbība, tāpēc vienkāršības labad tā darbojas tādā pašā 5 sekunžu atjaunināšanas frekvencē kā pārējā plūsma.

Relejs ir savienots, izmantojot MQTT. Mezgls publicē komandas IESLĒGTS tēmai:

sonoff/cmnd/POWER1

Funkcijas mezgls pieņem patieso | nepatieso no Alexa, kā arī maina ievades stāvokli saskaņā ar plūsmas mainīgo “HeatSwitch”.

NodeRED: Funkcijas mezgls - vadības relejs '

ja (msg.command === "TurnOffRequest") {msg.payload = "OFF"; atgriezt ziņu; }

ja (msg.command === "TurnOnRequest") {

msg.payload = "IESLĒGTS"; flow.set ('TempTarget', 21); atgriezt ziņu; } if (msg.topic === "update") {msg.payload = flow.get ('sildīšanas slēdzis'); } atgriezt ziņu;

Alexa integrācija

Šī ir pirmā ierīce, kurai bija jāizslēdz “automātiskā apstiprināšana”. Tā vietā, lai automātiski pieņemtu atbildi, esmu to ģenerējis, jo vēlos iespēju uzdot jautājumu par iestatīto temperatūru. Principā ziņojums msg.payload = true | false norāda, vai pieprasījums ir bijis veiksmīgs, un pārējās ir šeit atrastās veidnes. Ja esat jauns Alexa un NodeRed lietotājs, noteikti izlasiet šo.

Es nolēmu nodot pateicības atsevišķi (es zinu, ka tas nav labākais veids), lai varētu to visu mazliet labāk kontrolēt. Pareizi katra atbilde jāsniedz komandu ķēdes beigās. Manējais riskē neatgriezt kļūdas, ja tās notiks. Ņemiet vērā, ka, lai būtu konsekventi, es atjauninu tikai mainīgos, bet atsvaidzināšanas cilpa pārnes jaunās vērtības uz logrīku.

NodeRED: Funkcijas mezgls - apstrādājiet Alexa atbildes

// Kāda ir termostata mērķa temperatūraif (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": jauns datums (). toISOString ()}; msg.payload = true; atgriezt ziņu; } // Iestatiet temperatūru uz (ne zemāku par 10 vai vairāk par 30), ja (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10,0, max: 30,0} msg.payload = false; msg.extra = diapazons; } cits {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } atgriezt ziņu; } // Ieslēdziet to, ja (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('prom', false); flow.set ('TempTarget', 21); atgriezt ziņu; } // Izslēdziet to, ja (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('prom', true); atgriezt ziņu;

4. solis. Secinājums

Secinājums
Secinājums

Ja pakļaujat NodeRED informācijas paneli WAN, visu apkures sistēmu var vadīt attālināti. Es ieteiktu jums izlasīt šādus rakstus, lai ātrāk izmantotu NodeRED un NodeRED drošību.

  • NodeRED iesācējiem
  • NodeRED drošība

Turklāt, ja vēlaties saņemt informāciju par šī projekta atjauninājumiem - apsveriet iespēju sekot man izvēlētajā platformā:

  • Facebo labi
  • Tīters
  • Instagram
  • Esiet taču

Un, ja jums šķiet, ka vēlaties man nopirkt kafiju vai nepārtraukti atbalstīt:

  • Paypal
  • Patreons

Es ceru, ka jums patika projekts!

Ieteicams: