Съдържание:
- Стъпка 1: Как работи термостатът
- Стъпка 2: Подготовка на Sonoff Basic
- Стъпка 3: NodeRED
- Стъпка 4: Заключение
Видео: NEST Вашият стар термостат: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Отоплителната система в моята къща вероятно е толкова стара, колкото самата къща. Той е на около 30 години, което е добре от гледна точка на къщите, но почти заседнало в ледниковия период, що се отнася до технологията. Има 2 основни проблема с търговските решения:
- забранителни цени
- продукт като услуга
Всички си спомняме какво се случи с Револв и не съм много запален да ми се случи това посред зимата. Имайки това предвид, ви представям невероятно подозрително изглеждащ, но функционален NEST-подобен контролер за вашия стар термостат. Не се притеснявайте, планирам скоро да добавя много по -добро заграждение!
Характеристика:
- възможност за използване на съществуващ термостат (в случай, че съпругата простене за това)
- отдалечен достъп
- AWAY режим
- оптимален температурен индикатор
- Работи с Alexa
Скоро (проверете тук за актуализации)
- Начална страница на Google
- Google Календар
- Множество сензори
- Управление на радиатора
- IFTT интеграции
- Поддръжка на Tasker
- HTTP заявки
- Много по -добре изглеждащ корпус
Стъпка 1: Как работи термостатът
Термостатът вероятно е свързан към ВИСОКОТО НАПРЕЖЕНИЕ! Не се опитвайте да правите нищо, освен ако не сте се уверили, че веригата е изключена. Можете да се нараните и да повредите свързаното оборудване. Помислете за консултация с квалифициран електротехник, за да гарантирате вашата безопасност
Термостатът Honeywell е монтиран на стена, захранван от електрическата мрежа (основите на Sonoff се нуждаят от мин. 90V, моята верига има 230V). Кутията е свързана с основния управляващ блок (който е по -усъвършенствана кутия) и изпраща сигнала, когато температурата падне под целевото ниво. Въпреки че устройството ви може да е различно, принципът най -вероятно е същият. Ако имате 3 проводника и нямате радиовръзка между стенен модул-това е урокът за вас.
Знам как работят 3-жилните термостати по принцип, което не ме спря да изгоря предпазител, като случайно скъся 2 проводника! Имам 3 проводника, свързани към устройството (като четвъртият е земята). Моят термостат Honeywell не е безжичен, така че за превключване на сигнала мога да използвам Sonoff Basic. Време е да го разглобите и да видите как сигналът се изпраща към устройството. При по -внимателна проверка терминалът е свързан по следния начин:
- (синьо) - Земя
- (жълто) - сигнал, когато се дърпа високо отоплението е включено
- не се използва
- (червено) - проводникът под напрежение, използван за издърпване на сигнала високо
За да постигна целта си, трябва да скъся жичния проводник със сигналния проводник, когато искам отоплението ми да бъде включено. Ако имате подобно свързан термостат, имате късмет, тъй като Sonoff Basic ще бъде достатъчен, за да свърши работа.
Стъпка 2: Подготовка на Sonoff Basic
Преди да започнем да свързваме проводниците, трябва да добавим температурен сензор (DHT11) към сместа. Уверете се, че фърмуерът на Tasmota е миган към вашето устройство Sonoff (тук имам отлично мигащо ръководство) и вашият Sonoff с активиран Tasmota е конфигуриран правилно (също вече обхванат от мен). Сега остава само да свържете сензора DHT11 към Sonoff и да го конфигурирате за отчитане на температурата.
DHT11 се предлага с 3 жични кабела: Сигнал - GPIO14Vcc - 3.3VGND - GND
Пробих дупка, не ме притеснява как изглежда сега, всичко, от което се нуждая, е доказателството за концепцията и валидирането. Ще направя хубав и лъскав корпус, след като пристигне моят 3D принтер. Обърнах допълнително внимание на това как свързвам Sonoff, тъй като трябва да се уверя, че проводникът под напрежение се свързва със сигналния проводник от другия край на устройството Sonoff. Устройството Honeywell има вграден резистор за натоварване (R), който ограничава тока. Докато веригата е защитена от 3A предпазител, е умно да съпоставите същото съпротивление за допълнителна защита. След като подготвих кабелите, беше време да изключа основното захранване и да свържа Sonoff обратно.
Sonoff Tasmota - термостат Honeywell
INPUT Live - четвърти терминал на живо
INPUT GND - първи терминал GND
OUTPUT Signal - 2 -ри терминален сигнал
Споменах преди това, че засега няма да наблягам на външния вид на това. Съпругата е убедена и мога да се съсредоточа върху функционалността и да изчистя всички грешки, които ще се случат. Хубавото е, че оригиналният термостат все още работи. Ако го активирам, той ще отмени този, базиран на Sonoff Tasmota. Това би трябвало да бъде чудесен архив за всякакви неочаквани събития.
Стъпка 3: NodeRED
Моля, обърнете внимание, че видеото може да съдържа по -стари препратки към NodeRed, непрекъснато работя за подобряване на дизайна. Това са малки промени и файловете със статии се поддържат актуални
Попаднах на този дизайн онлайн. Изглежда страхотно, но при внимателна проверка джаджата не е подходяща за NodeRED. Нуждае се от 5 полезни товара, за да бъде зададен, което просто не е начинът, по който дизайнът на възела работи. Отне ми известно време, за да разбера най -добрия начин за предаване на цялата тази информация, за да актуализирам джаджата и да я поддържам функционална. Сигурен съм, че с времето ще отделя повече време за дизайна, за да мога да натисна всички необходими актуализации с един обект на съобщение. Засега е така.
Температурен поток
DHT11 докладва на всеки X секунди обратно към сървъра NodeRED. Увеличих тази честота чрез конзолата на Tasmota. Просто изпълнете командата, за да зададете честотата в секунди:
TelePeriod Задайте период на телеметрия между 10 и 3600 секунди
Това се прави най -вече за тестове, тъй като не искам да чакам минути, за да видя дали корекциите на грешките ми са работили. Поддържането на висока честота ще накара отоплението да се задейства по -често за по -кратки периоди от време, така че се въздържайте да го настроите на 10 секунди за други цели, освен за тестване. MQTT възелът извлича данните от:
sonoff/tele/SENSOR
и съхранява най -полезните данни в следните обекти:
msg.payload. DHT11. Temperature msg.payload. DHT11. Влажност
За да огранича грешките, добавих гладкия възел за осредняване на резултатите и актуализирах променливата на потока: NodeRED:
Функционален възел - Актуализирайте „TempAmbient“
flow.set ('TempAmbient', msg.payload. DHT11. Temperature); връщане на съобщение;
Актуализация на джаджа
Реших, че 5 секунди е добра честота на опресняване, затова натискам всички необходими стойности с тази честота. Единственото изключение е плъзгачът, който по очевидна причина реагира незабавно.
Всеки съответен възел изпраща полезния товар със зададената тема към приспособлението за гнездо.
- цвят (отопление | охлаждане*| изключено & hvac_state)
- leaf (true | false & has_leaf)
- далеч (вярно | невярно и далеч)
- Температура на околната среда (брой и температура на околната среда)
- Целева температура (брой и целева_температура)
*не се използва
NodeRED: Функционален възел - Актуализация на приспособления
цвят
x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // околна среда
ако (z = x) {
flow.set ('отоплениеСъстояние', 'изключено'); flow.set ('отопление превключвател', "ИЗКЛ."); } msg.payload = z; msg.topic = "температура на околната среда"; връщане на съобщение;
лист
x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('лист', вярно); msg.payload = true; msg.topic = "has_leaf"; връщане на съобщение; } else {flow.set ('leaf', false); msg.payload = false; msg.topic = "has_leaf"; връщане на съобщение; }
Отмяна на цвета
x = flow.get ('далеч'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "изключено"; връщане на съобщение; }
msg.topic = "hvac_state";
msg.payload = flow.get ('отоплениеСъстояние');
връщане на съобщение;
Далеч
x = flow.get ('далеч'); if (x === true) {flow.set ('отопление -превключвател', "ИЗКЛ."); flow.set ('отоплениеСъстояние', 'изключено'); }
msg.topic = "далеч";
msg.payload = flow.get ('далеч'); връщане на съобщение;
Целева температура
if (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); връщане на съобщение; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set ('далеч', невярно); msg.topic = "целева_температура"; flow.set ('TempTarget', msg.payload); }
if (msg.topic === "плъзгач") {
flow.set ('далеч', невярно); msg.topic = "целева_температура"; flow.set ('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest") {}
връщане на съобщение;
Както виждате, аз се отказах от променливите на потока, така че мога да си припомня стойността във всеки един момент. Имам поток за отстраняване на грешки, който основно чете всички съхранени стойности.
- „TempAmbinet“- съхранява текущата temp
- „TempTarget“- съдържа целевата стойност на temp
- „Листо“- показва листа, ако е необходимо
- „Далеч“- показва състоянието на отсъствие, ако е необходимо
- „Отопление“- променя цвета на дисплея
- ‘Отопление превключвател’ - контролира състоянието на релето.
Предизвикателството беше всъщност да се уверите, че информацията се актуализира при „актуализация“и когато бъде поискана чрез други средства (Alexa и т.н.). Ето защо ще видите различни условия в JavaScript. Всеки път, когато стойностите се актуализират, изпращат се до променливата на потока и приспособлението се обновява.
Плъзгач
Тестването разкри, че е необходима допълнителна актуализация на плъзгача (плъзгачът изтласква целевата температура). Плъзгачът изпраща полезния товар (номер) със свързаната тема „плъзгач“, когато се премести. На всичкото отгоре искам плъзгачът да влезе в правилната позиция, ако има няколко уеб интерфейса. За да направя това, на всеки 5 секунди просто актуализирам позицията на плъзгача до текуща целева температура.
NodeRED: Функционален възел - Плъзгач за актуализиране '
msg.payload = flow.get ('TempTarget'); връщане на msg;
Релейно управление
Релейният контролер е прост, той отнема (засега) два входа. Вярно | невярно на Alexa и взаимодействието, което следва актуализация на променливата на потока „отоплителен превключвател“. Няма нужда от незабавно действие, така че за простотата той работи на същата честота на актуализация от 5 секунди като останалата част от потока.
Релето е свързано чрез MQTT. Node публикува команди ON | OFF към темата:
sonoff/cmnd/POWER1
Функционалният възел приема истинското | false от Alexa и също така променя състоянието на входа според променливата на потока „отопление“.
NodeRED: Функционален възел - контролно реле '
if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; връщане на съобщение; }
if (msg.command === "TurnOnRequest") {
msg.payload = "ВКЛЮЧЕН"; flow.set ('TempTarget', 21); връщане на съобщение; } if (msg.topic === "update") {msg.payload = flow.get ('heatSwitch'); } return msg;
Интеграция с Alexa
Това е първото устройство, на което трябваше да деактивирам „автоматично потвърждение“. Вместо автоматично да приема отговор, аз съм генерирал такъв, тъй като искам възможността да запитам зададената температура. По принцип msg.payload = true | false показва дали заявката е била успешна, а намерените тук шаблони правят останалото. Ако сте нови в Alexa и NodeRed, не забравяйте да прочетете това.
Реших да предам признанията отделно (знам, че това не е най -добрият начин), за да мога да контролирам всичко това малко по -добре. Правилно всеки отговор трябва да бъде даден в края на командната верига. Моят рискува да не върне грешки, ако това се случи. Обърнете внимание, че за да бъде последователен, аз актуализирам само променливите, докато цикълът на опресняване избутва новите стойности към приспособлението.
NodeRED: Функционален възел - Обработка на отговорите на Alexa '
// Каква е целевата температура на термостатаif (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": нова дата (). toISOString ()}; msg.payload = true; връщане на съобщение; } // Задайте температурата на (не по -ниска от 10 или повече от 30) if (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = диапазон; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } return msg; } // Включете го, ако (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 ок
- Twi tter
- YouTu бъди
И ако искате да ми купите кафе или да ме подкрепите по по -непрекъснат начин:
- Paypal
- Патреон
Надявам се, че сте харесали проекта!
Препоръчано:
Часовник по график: Вашият виртуален асистент за производителност .: 6 стъпки (със снимки)
График Часовник: Вашият асистент за виртуална производителност. Аз съм професионален отлагател! Това заключване ме постави във времева верига, където всеки ден просто лети без никаква продуктивна работа. За да победя отлагането си, направих този прост и бърз часовник, който планира работата ми. Сега мога просто да се придържам към
RGB-IFY Вашият настолен компютър!: 5 стъпки (със снимки)
RGB-IFY Вашият настолен компютър!: Нещата, от които се нуждаем за този проект: 5 волта 1 метър rgb led лента с дистанционно (може да се купи тук) този проект ще отнеме ~ 15 минути от вашето време
LED Mod Вашият Gameboy цвят: 7 стъпки (със снимки)
LED Mod Вашият Gameboy цвят: Тази инструкция документира страхотен мод, който можете да добавите към вашия Gameboy Color, за да му придадете чисти сини светлинни ефекти! И, разбира се, по -добре не наранявайте частите на тялото си или своя Gameboy, защото няма да заменя нито едното от тях. Но хей, това си струва
Жълти точки на мистерия: Вашият принтер шпионира ли ви?: 5 стъпки (със снимки)
Жълти точки на мистерия: Вашият принтер ви шпионира ?: Представете си, че всеки път, когато отпечатвате документ, той автоматично включва таен код, който може да бъде използван за идентифициране на принтера - и потенциално лицето, което го е използвало. Звучи като нещо от шпионски филм, нали? За съжаление сценарият
Twitchy, вашият приятел за електронни отпадъци: 11 стъпки (със снимки)
Twitchy, вашият приятел за електронни отпадъци: Той е по-чист от хамстер и има повече личност от повечето влечуги и е много по-умен от това куче, което имах. Освен това той е направен от боклуци и е много забавен за изграждане. Човешката популация може да бъде (и може би трябва да бъде разделена) на