Satura rādītājs:
- 1. darbība: kā darbojas termostats
- 2. darbība. Sagatavojiet Sonoff Basic
- 3. darbība: NodeRED
- 4. solis. Secinājums
Video: NEST savu veco termostatu: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
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:
- (zils) - zeme
- (dzeltens) - signāls, kad pacelts augsts, apkure ir ieslēgta
- netiek lietots
- (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
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
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
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
- 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:
Izveidojiet savu pievienoto apkures termostatu un ietaupiet ar apkuri: 53 soļi (ar attēliem)
Izveidojiet savu pievienoto apkures termostatu un ietaupiet ar apkuri: kāds ir tā mērķis? Palieliniet komfortu, sildot māju tieši tā, kā vēlaties. Ietaupiet un samaziniet siltumnīcefekta gāzu emisijas, apsildot māju tikai tad, kad tas ir nepieciešams. Turpiniet kontrolēt apkuri, lai kur jūs būtu. Lepojieties, ka to izdarījāt
Pārveidojiet savu veco klēpjdatora akumulatoru Power Bank: 4 soļi (ar attēliem)
Pārveidojiet savu veco klēpjdatora akumulatoru par strāvas banku: Šajā projektā es jums parādīšu, kā pārvērst akumulatoru no vecā klēpjdatora par strāvas banku, kas ar vienu uzlādi var uzlādēt parastu tālruni 4 līdz 5 reizes. Sāksim
Pārveidojiet savu veco CFL lampu par LED lampu: 10 soļi
Pārvērtiet savu veco CFL lampu par LED lampu: vispirms noskatieties pilnu video, tad jūs sapratīsit visu
Pārveidojiet savu veco tālruni par tālvadības slēdzi: 7 soļi (ar attēliem)
Pārveidojiet savu veco tālruni par tālvadības slēdzi: vai esat kādreiz domājuši, ko darīt ar vecajiem pamata tālruņiem? Viedtālruņa parādīšanās pēdējā desmitgadē padarīja visus pamata tālruņus novecojušus. Lai gan tiem bija labs akumulatora darbības laiks un pienācīgs izskats, tie ir mazāki, salīdzinot ar lieliem viedtālruņiem, kuriem ir lielas s
Pārvērtiet savu veco CRT datora monitoru zivju tvertnē! ! !: 11 soļi (ar attēliem)
Pārvērtiet savu veco CRT datora monitoru zivju tvertnē! ! !: Runājiet par lielisku ekrānsaudzētāju! Es jau kādu laiku vēlējos veikt šo konstrukciju. Gandrīz katru reizi, kad atkritumu dienā ieraugu un veco CRT datora monitoru ceļa malā, es domāju sev … tas noteikti padarītu foršu zivju tvertni. Tātad