Мазмұны:

Ескі термостатты NEST: 4 қадам (суреттермен)
Ескі термостатты NEST: 4 қадам (суреттермен)

Бейне: Ескі термостатты NEST: 4 қадам (суреттермен)

Бейне: Ескі термостатты NEST: 4 қадам (суреттермен)
Бейне: Мифы в Реальности #3 - [Локи По-Скандинавски] 2024, Шілде
Anonim
Image
Image
Термостат қалай жұмыс істейді
Термостат қалай жұмыс істейді

Менің үйдегі жылу жүйесі үйдің өзі сияқты ескі болса керек. Бұл шамамен 30 жаста, бұл үйдегі жылдар бойынша жақсы, бірақ технологияға қатысты мұз дәуірінде қалды. Коммерциялық шешімдердің 2 негізгі мәселесі бар:

  • тыйым салынған баға
  • өнім қызмет ретінде

Біз бәріміз Револвпен не болғанын есімізде сақтаймыз және мен қыстың ортасында менде де осылай болатынын білгім келмейді. Осыны ескере отырып, мен сізге ескі термостатқа арналған күдікті көрінетін, бірақ функционалды NEST-Alike контроллерін ұсынамын. Уайымдамаңыз, мен жақында жақсы корпусты қосуды жоспарлап отырмын!

Ерекше өзгешеліктері:

  • қолданыстағы термостатты қолдану мүмкіндігі (егер әйелі бұл туралы жыласа)
  • қашықтан қол жеткізу
  • AWAY режимі
  • оңтайлы температура индикаторы
  • Alexa -мен жұмыс істейді

Жақында (жаңартуларды мына жерден қараңыз)

  • Google үйі
  • Google күнтізбесі
  • Бірнеше сенсорлар
  • Радиаторды басқару
  • IFTT интеграциясы
  • Tasker қолдау
  • HTTP сұраулары
  • Жақсы көрінетін қоршау

1 -қадам: Термостат қалай жұмыс істейді

Термостат қалай жұмыс істейді
Термостат қалай жұмыс істейді
Термостат қалай жұмыс істейді
Термостат қалай жұмыс істейді

Термостат жоғары кернеуге қосылған болуы мүмкін! Электр тізбегі өшірілгеніне сенімді болмасаңыз, ештеңе жасауға тырыспаңыз. Сіз өзіңізге зиян келтіре аласыз және қосылған жабдыққа зақым келтіре аласыз. Сіздің қауіпсіздігіңізді қамтамасыз ету үшін білікті электрикпен кеңесуді қарастырыңыз

Honeywell термостаты - қабырғаға бекітілген қондырғы, ол электр желісінен жұмыс істейді (Sonoff негізіне мин 90 В қажет, менің тізбегімде 230 В). Қорап негізгі басқару блогына қосылады (бұл неғұрлым жетілдірілген қорап) және ол температура мақсатты деңгейден төмен түскенде сигнал жібереді. Сіздің қондырғыңыз басқаша болуы мүмкін, бірақ принцип бірдей. Егер сізде 3 сым болса және қабырғаға бекітілген құрылғы арасында радио байланысы болмаса-бұл сізге арналған оқулық.

Мен 3 сымды термостаттардың қалай жұмыс істейтінін білемін, бұл кездейсоқ 2 сымды қысқарту арқылы сақтандырғышты өшіруге кедергі болмады! Менде құрылғыға қосылған 3 сым бар (4 -ші жер - жер). Менің Honeywell термостатым сымсыз емес, сондықтан сигналды ауыстыру үшін Sonoff Basic қолдана аламын. Оны ажырату және сигналдың құрылғыға қалай жіберілетінін көру уақыты келді. Жақынырақ тексерген кезде терминал келесі түрде қосылады:

  1. (көк) - Жер
  2. (сары) - сигнал, жоғары тартылғанда қыздыру қосылады
  3. қолданылмайды
  4. (қызыл) - сигналды жоғары тарту үшін қолданылатын ток сымы

Мақсатыма жету үшін жылытуды қосқыңыз келген кезде сигнал сымымен кернеулі сымды қысқартуға тура келеді. Егер сізде ұқсас термостат болса, онда сіз сәттілікке жетесіз, себебі Sonoff Basic бұл әрекетті жасауға жеткілікті.

2 -қадам: Sonoff негізгі дайындығын алу

Sonoff негізгі дайындығын алу
Sonoff негізгі дайындығын алу
Sonoff негізгі дайындығын алу
Sonoff негізгі дайындығын алу
Sonoff негізгі дайындығын алу
Sonoff негізгі дайындығын алу

Сымдарды қосуды бастамас бұрын, қоспаға температура сенсорын (DHT11) қосу керек. Сіздің Sonoff құрылғыңызда Tasmota микробағдарламасы бар екеніне көз жеткізіңіз (менде бұл жерде керемет жыпылықтайтын нұсқаулық бар) және сіздің Тасмота қосылған Sonoff дұрыс конфигурацияланғанына көз жеткізіңіз (менде де қарастырылған). Енді DHT11 сенсорын Sonoff -қа қосып, оны температура туралы есепке конфигурациялау ғана қалды.

DHT11 сымды 3 түйреуішпен келеді: сигнал - GPIO14Vcc - 3.3VGND - GND

Мен тесік жасадым, мен қазір оның қалай көрінетініне алаңдамаймын, маған тек тұжырымдаманың дәлелі мен растауы қажет. Мен 3D принтер келгеннен кейін жақсы және жылтыр қоршау жасаймын. Мен Соноффты қалай қосатыныма ерекше назар аудардым, өйткені мен сымның Sonoff құрылғысының екінші шетіндегі сигнал сымына қосылатынына көз жеткізуім керек. Honeywell қондырғысында жүктеме кедергісі (R) орнатылған, ол токты шектейді. Схема 3А сақтандырғышпен қорғалған болса да, қосымша қорғаныс үшін сол қарсылыққа сәйкес келу ақылды. Мен сымдарды дайындап болғаннан кейін, негізгі қуатты өшіріп, Сонофоны сыммен қосатын уақыт келді.

Сонофф Тасмота - Honeywell термостаты

INPUT Live - 4 -ші терминал Live

INPUT GND - GND 1 -ші терминалы

OUTPUT сигналы - 2 терминалды сигнал

Мен бұған дейін айттым, мен оның сыртқы келбеті туралы айтпаймын. Әйелі сенімді болды, мен функционалдылыққа және кез келген қателерді жоюға баса назар аудара аламын. Жақсы нәрсе - бастапқы термостат әлі де жұмыс істейді. Егер мен оны қоссам, ол Sonoff Tasmota негізіндегі нұсқаны алмастырады. Бұл кез келген күтпеген оқиғаларға тамаша резерв болуы керек.

3 -қадам: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

Назар аударыңыз, бейнеде ескі NodeRed сілтемелері болуы мүмкін, мен дизайнды жақсарту үшін үнемі жұмыс жасаймын. Бұл шағын өзгерістер және мақала файлдары жаңартылып отырады

Мен бұл дизайнды желіде кездестірдім. Бұл керемет көрінеді, бірақ мұқият тексергенде виджет NodeRED үшін мүлдем сәйкес келмейді. Орнату үшін оған 5 пайдалы жүктеме қажет, бұл түйіннің дизайны сияқты жұмыс істемейді. Виджетті жаңарту және оның жұмыс істеуін қамтамасыз ету үшін барлық ақпаратты берудің ең жақсы әдісін анықтау үшін маған біраз уақыт қажет болды. Уақыт өте келе дизайнға көбірек уақыт бөлетініме сенімдімін, осылайша мен барлық қажетті жаңартуларды бір ғана msg объектімен жібере аламын. Әзірше, бұл солай.

Температура ағыны

DHT11 әр X секунд сайын NodeRED серверіне хабарлайды. Мен бұл жиілікті Тасмота консолі арқылы арттырдым. Жиілікті секунд ішінде орнату үшін пәрменді орындаңыз:

TelePeriod Телеметрия кезеңін 10 мен 3600 секунд аралығында орнатыңыз

Бұл көбінесе тесттер үшін жасалады, өйткені мен қателерді түзету жұмыс істегенін көру үшін бірнеше минут күткім келмейді. Жиілікті жоғары ұстау қыздырудың қысқа уақыт ішінде жиі өртенуіне әкеледі, сондықтан оны тестілеу мақсатынан басқа 10 секундқа қоймаңыз. MQTT түйіні деректерді келесі жерден алады:

sonoff/tele/SENSOR

және келесі объектілерде ең пайдалы деректерді сақтайды:

msg.payload. DHT11. Температура msg.payload. DHT11. Ылғалдылық

Қателерді шектеу үшін мен нәтижелерді орташа деңгейге жеткізу үшін тегіс түйінді қостым және ағынның айнымалысын жаңарттым: NodeRED:

Функция түйіні - «TempAmbient» жаңарту

flow.set ('TempAmbient', msg.payload. DHT11. Температура); хабарды қайтару;

Виджетті жаңарту

Мен 5 секунд - бұл жақсы жаңарту жылдамдығы деп шештім, сондықтан мен осы жиілікте барлық қажетті мәндерді итермелеймін. Жалғыз ерекшелік - бұл анық себеппен бірден жауап беретін жүгірткі.

Әр сәйкес түйін тағайындалған тақырыппен пайдалы жүктемені ұяға ұқсас виджетке жібереді.

  • түс (қыздыру | салқындату*| өшіру & hvac_state)
  • жапырақ (шын | жалған және жапырақты)
  • алыс (шын | жалған және алыс)
  • Қоршаған орта температурасы (сан және қоршаған орта температурасы)
  • Мақсатты температура (сан және мақсатты температура)

*қолданылмайды

NodeRED: функция түйіні - виджетті жаңарту

түс

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // қоршаған орта

егер (z = x) {

flow.set ('heatState', «off»); flow.set ('heatSwitch', «OFF»); } msg.payload = z; msg.topic = «қоршаған орта температурасы»; хабарды қайтару;

жапырақ

x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('leaf', true); msg.payload = ақиқат; msg.topic = «has_leaf»; хабарды қайтару; } else {flow.set ('жапырақ', жалған); msg.payload = жалған; msg.topic = «has_leaf»; хабарды қайтару; }

Түсті жоққа шығару

x = flow.get ('алыс'); if (x === true) {msg.topic = «hvac_state»; msg.payload = «өшірулі»; хабарды қайтару; }

msg.topic = «hvac_state»;

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

хабарды қайтару;

Алыста

x = flow.get ('алыс'); if (x === true) {flow.set ('heatSwitch', «OFF»); flow.set ('heatState', «off»); }

msg.topic = «алыс»;

msg.payload = flow.get («алыс»); хабарды қайтару;

Мақсатты темп

if (msg.topic === «update») {msg.topic = «target_temperature»; msg.payload = flow.get ('TempTarget'); хабарды қайтару; }

егер (msg.command === «SetTargetTemperatureRequest») {

flow.set ('алыс', жалған); msg.topic = «target_temperature»; flow.set ('TempTarget', msg.payload); }

егер (msg.topic === «сырғытпасы») {

flow.set ('алыста', жалған); msg.topic = «target_temperature»; flow.set ('TempTarget', msg.payload); }

егер (msg.command === «GetTemperatureReadingRequest») {}

хабарды қайтару;

Көріп отырғаныңыздай, мен ағымдық айнымалыларды таңдадым, сондықтан кез келген уақытта мәнді еске түсіре аламын. Менде барлық сақталған мәндерді оқитын отладтау ағыны бар.

  • 'TempAmbinet' - ағымдағы температураны сақтайды
  • 'TempTarget' - уақытша мақсатты мәнді ұстайды
  • 'Жапырақ' - қажет болған жағдайда жапырақты көрсетеді
  • «Алыс» - қажет болған жағдайда қашықтағы күйді көрсетеді
  • 'HeatState' - дисплей түсін өзгертеді
  • 'HeatSwitch' - реле күйін басқарады.

Ақпарат «жаңарту» туралы және басқа құралдар арқылы сұралған кезде (Alexa, т.б.) жаңартылғанына көз жеткізу қиын болды. Сондықтан сіз JavaScript -те әртүрлі шарттарды көресіз. Мәндер жаңартылған сайын ағын айнымалысына жіберіледі және виджет жаңартылады.

Слайдер

Тестілеу қосымша жүгірткі жаңартуы қажет екенін көрсетті (сырғытпа мақсатты температураны итереді). Слайдер пайдалы жүктемені (нөмірді) «жүгірткі» тақырыбымен жылжытқанда жібереді. Бұған қоса, егер бірнеше веб -интерфейстер бар болса, жүгірткі дұрыс күйге оралуын қалаймын. Мұны істеу үшін мен әр 5 секунд сайын жүгірткі орнын ағымдағы мақсатты температураға дейін жаңартып отырамын.

NodeRED: Функционалды түйін - жүгірткіні жаңарту

msg.payload = flow.get ('TempTarget'); хабарды қайтару;

Релелік бақылау

Реле реттегіші қарапайым, оған екі кіріс қажет (әзірше). Alexa шын | жалған және «жылытқыш қосқыш» ағынының айнымалысын жаңартудан кейінгі өзара әрекеттесу. Жедел әрекет етудің қажеті жоқ, сондықтан қарапайымдылық үшін ол ағымның қалған бөлігіндей 5 секундтық жаңарту жиілігінде жұмыс істейді.

Реле MQTT арқылы қосылады. Түйін тақырыпқа ON | OFF пәрмендерін жібереді:

sonoff/cmnd/POWER1

Функционалды түйін Alexa -дан true | false қабылдайды, сонымен қатар «heatSwitch» ағынының айнымалы мәніне сәйкес кіріс күйін өзгертеді.

NodeRED: Функционалды түйін - басқару релесі

if (msg.command === «TurnOffRequest») {msg.payload = «ӨШІРУ»; хабарды қайтару; }

егер (msg.command === «TurnOnRequest») {

msg.payload = «ҚОСУЛЫ»; flow.set ('TempTarget', 21); хабарды қайтару; } if (msg.topic === «update») {msg.payload = flow.get ('heatSwitch'); } хабарды қайтару;

Alexa интеграциясы

Бұл «автоматты растауды» өшіруім керек болған бірінші құрылғы. Жауапты автоматты түрде қабылдамаудың орнына, мен орнатылған температураны сұрау мүмкіндігін қалағандай жауап бердім. Негізінде, msg.payload = true | false сұраныстың сәтті болғанын көрсетеді, ал қалғандарын осы жерден табады. Егер сіз Alexa мен NodeRed -те жаңадан болсаңыз, оны міндетті түрде оқыңыз.

Мен бәрін сәл жақсырақ басқара алу үшін растауды бөлек жіберуді шештім (бұл ең жақсы әдіс емес екенін білемін). Әр жауап командалық тізбектің соңында дұрыс берілуі керек. Егер мен қателіктер орын алса, менің қателіктерімді қайтармауға қауіп төндіремін. Назар аударыңыз, мен дәйекті болу үшін мен айнымалыларды ғана жаңартамын, ал жаңарту циклі жаңа мәндерді виджетке итермелейді.

NodeRED: Функционалды түйін - Alexa жауаптарын өңдеу

// Термостаттың мақсатты температурасы қандай (msg.command === «GetTemperatureReadingRequest») {x = flow.get ('TempTarget'); msg.extra = {«temperaturReading»: {«мәні»: x}, «applianceResponseTimestamp»: жаңа Date (). toISOString ()}; msg.payload = ақиқат; хабарды қайтару; } // Температураны орнатыңыз (10 -дан төмен емес немесе 30 -дан жоғары емес), егер (msg.command === «SetTargetTemperatureRequest») {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = жалған; msg.extra = ауқым; } басқа {msg.extra = {targetTemperature: {мән: msg.payload}}; msg.payload = ақиқат; } хабарды қайтару; } // Оны қосыңыз, егер (msg.command === «TurnOnRequest») {msg.payload = true; flow.set ('алыста', жалған); flow.set ('TempTarget', 21); хабарды қайтару; } // Оны өшіріңіз, егер (msg.command === «TurnOffRequest») {msg.payload = true; flow.set («алыс», шын); хабарды қайтару;

4 -қадам: Қорытынды

Қорытынды
Қорытынды

Егер сіз NodeRED бақылау тақтасын WAN -ға шығарсаңыз, бүкіл жылыту жүйесін қашықтан басқаруға болады. Мен сізге NodeRED және NodeRED қауіпсіздігімен жылдам жұмыс жасау үшін келесі мақалаларды оқуды ұсынамын.

  • Жаңадан бастаушыларға арналған NodeRED
  • NodeRED қауіпсіздігі

Сонымен қатар, егер сіз осы жобаның жаңартулары туралы білгіңіз келсе - мені таңдаған платформада қадағалаңыз:

  • Facebo жарайды
  • Екі жақты
  • Инстаграм
  • Сіз боласыз

Егер сіз маған кофе сатып алғыңыз келсе немесе маған үнемі қолдау көрсеткіңіз келсе:

  • Paypal
  • Патреон

Сізге жоба ұнады деп сенемін!

Ұсынылған: