Даже прочитав, все стало совсем не понятно, в итоге есть нормальный скетч или нет? Или брать с первой страницы и пытаться что-то докрутить?
Смотря что вам нужно в итоге. Универсального кода нету, каждый пишет под себя и под свои задачи. Можете для начала просто взять пример из библиотеки OpenTherm, а дальше уже докручивать под свои задачи. Здесь, в теме, есть примеры ПИД-управления, есть ссылки на примеры ПЗА-управления.
Смотря что вам нужно в итоге. Универсального кода нету, каждый пишет под себя и под свои задачи. Можете для начала просто взять пример из библиотеки OpenTherm, а дальше уже докручивать под свои задачи. Здесь, в теме, есть примеры ПИД-управления, есть ссылки на примеры ПЗА-управления.
Почитал, для новичка без хороших навыков программирования крайне все сложно и не систематизировано. Буду пытаться разобраться.
На самом деле хотелось устройство управляющее котлом по openTherm с веб страницей для конфигурирования (базовая конфигурация) и возможность настроить и получить внешние данные по mqtt от комнатного термостата и уличного датчика для работы низкотемпературного отопления. Т.е. запрос тепла, уставка температуры носителя на основе внешней температуры с последующим обучением на основе скорости теплопотерь здания. Если данных нет или проблемы со связью включать базовые установки чтобы не замерзнуть.
Но это на уровне новичка который до сих пор в битве с BME280 )))
Почитал, для новичка без хороших навыков программирования крайне все сложно и не систематизировано. Буду пытаться разобраться.
На самом деле хотелось устройство управляющее котлом по openTherm с веб страницей для конфигурирования (базовая конфигурация) и возможность настроить и получить внешние данные по mqtt от комнатного термостата и уличного датчика для работы низкотемпературного отопления. Т.е. запрос тепла, уставка температуры носителя на основе внешней температуры с последующим обучением на основе скорости теплопотерь здания. Если данных нет или проблемы со связью включать базовые установки чтобы не замерзнуть.
Ну в целом задача понятная, но многое зависит от нюансов. В процессе проработки алгоритмов вы сами поймете, что вам нужно, а что нет. Я, например, тоже для себя решаю похожую задачу, но со своими заморочками. Пишите вопросы, которые возникают, народ всегда поможет советом или примером кода. У вас какая модель котла? Комнатный термостат и уличный датчик на чем? Можно и с программированием помочь, если надо...
А что не получается с BME280? У меня все прекрасно работает с библиотекой Adafruit.
Я использую EasyESP (что-то подобное и хотел с котлом), но пробовал и Adafruit, сложнее и я не разобрался как учитывать высоту над уровнем моря. С EasyESP проще, но показания этого датчика оставляют желать лучшего :( Из 5 только один начал показывать что-то подходящее. Потом температура упала до -27 и он застрял на -19. Сейчас отстает на 2 градуса. Ну и добавить вынос датчика минимум на 10см от питания... не соскучишься.
А что не получается с BME280? У меня все прекрасно работает с библиотекой Adafruit.
Я использую EasyESP (что-то подобное и хотел с котлом), но пробовал и Adafruit, сложнее и я не разобрался как учитывать высоту над уровнем моря. С EasyESP проще, но показания этого датчика оставляют желать лучшего :( Из 5 только один начал показывать что-то подходящее. Потом температура упала до -27 и он застрял на -19. Сейчас отстает на 2 градуса. Ну и добавить вынос датчика минимум на 10см от питания... не соскучишься.
У меня только один такой датчик, и он оработает с самого начала без проблем, в т.ч. на днях показывал реальные -27 в МО. Высоту над уровнем моря вам никак учитывать не надо, т.к. датчик измеряет и показывает фактическое давление в точке установки. Если нужна моя помощь, пишите в личку, т.к. здесь это офф-топ...
Ну в целом задача понятная, но многое зависит от нюансов. В процессе проработки алгоритмов вы сами поймете, что вам нужно, а что нет. Я, например, тоже для себя решаю похожую задачу, но со своими заморочками. Пишите вопросы, которые возникают, народ всегда поможет советом или примером кода. У вас какая модель котла? Комнатный термостат и уличный датчик на чем? Могу и с программированием помочь, если надо...
У меня Bosch WBN-6000 без ничего, есть еще Baxi на в нем все это встроено и он не интересный. К этому у меня есть самосборный электрический котел на симисторах которым управляет ПЛК, там я все сам писал и запихнул туда включение газового котла простой перемычкой. Электрический работает идеально, газовый, особенно в межсезонье, просто жопа. Вот и хочу от ПЛК уйти, он хоть и надежный как лом но управлять OpenTherm'om так задача посадки на марс, +единственный доступный протокол это ModBus, что тоже геморрой.
Вот и пытаюсь перейти на более гибкое решение которое бы позволило всем этим барахлом управлять. Но очень хочется сделать что-то более не менее универсальное, подходящее большинству.
Diminator, я когда создавал эту тему, то был в самом начале своих познаний. Сейчас имею законченное устройство, как в железе, так и в его мозгах. Всё, о чём вы писали у меня реализовано, web, mqtt, дистанционные датчики, том числе на BME280 и множество повторений единомышленниками.
Diminator, я когда создавал эту тему, то был в самом начале своих познаний. Сейчас имею законченное устройство, как в железе, так и в его мозгах. Всё, о чём вы писали у меня реализовано, web, mqtt, дистанционные датчики, том числе на BME280 и множество повторений единомышленниками.
Это действительно очень круто! Но не могли бы вы поделиться наработками?
(И все-же, на этом форуме можно писать в личку или я еще не дорос?)
Залил прошивку BME280_3.05_weather_station.ino.d1_mini.bin в Wemos D1 mini, подключился к WiFi manager, указал свою сеть для подключения, перезагрузка... опять перезагрузка.... опять перезагрузка... и т.д.
Ну, да, если прошиваю проект из среды, то выбираю один из трёх вариантов с соответствующей обработкой. Тут же, бинарный файл. Ни мне, ни прошивке не ведомо, что хранилось в памяти модуля до прошивки (мусор).
Old Navi, за основу построения термостата для своего котла Ferolli Domiproject F24 взял ваш код. Сегодня обнаружил такой баг: при пропадании интернета термостат не работает. В чем может быть проблема? MQTT или wifi
Короче , после восстановления электроснабжения , wifi роутер не запустился , ну и соответственно интернета тоже не было. MQTT в интернете. Я прикрутил LCD дисплей и в функции setup прописал инициализацию LCD и вывод на дисплей надписи. Так вот судя по этой надписи, esp затыкается на функции setup_wifi();
Я бы все таки сервер MQTT использовал локальный, по множеству соображений и безопасность в том числе. ESPшка не использует SSL шифрование для MQTT и оставлять дыру в управлении котлом не найс. Рекомендую home assistant в нем тоже есть MQTT сервер интеграция, а если надо ходить из интернета у них есть за небольшие деньги облачный доступ. Или, пробросить морду своего Home Assistant в интернет (ессно с SSL и пароли не типа 123456).
У меня есть Home Assistant сконфигурированный, настроенный , но вместе с ESP и смартфоном (mqtt dash) они работают через интернет MQTT сервер. У меня пока нет малины или лишнего компа c линуксом, чтобы круглосуточно гонять HA сервак.
Так это я понял, я специально отключил инет от точки доступа чтобы, сэмитировать ситуацию. Я просто думаю , как сделать обход соединения MQTT (в случае его отсутствия) и переход программы к работе opentherm при отсутствии подключения к инету.
Котёл после восстановления электропитания ждёт команд от термостата, а термостат (программа) не может дойти до управления котлом , так как после перезагрузки повис на соединении с mqtt. Если котёл не получает этих команд , то он работает по минимально допустимой температуре теплоносителя 30 градусов и квартира плавно охлаждается до 16 градусов, пока я на работе :))) Неприятная ситуация.
Вы симитировали плохой вариант недоступности, у вас первым делом завис DNS ресловинг на таймаут поскольку вы отрубили интернет и как следствие DNS. Как минимум пропишите просто IP адрес, это уже обсуждалось. Прошивка будет пытаться переконектится каждые 5 секунд, так прошито в прошивке (можно исправить) и в промежутках там все остальные потоки успевают отрабатывать. А поскольку включили ресолвинг имен - то нужно ждать таймаут DNS что ощутимо дольше 5 секунд. А вызов MQTT connect() в библиотеки - блокирующий на уровне TCPIP.
Но лучший совет - разоритесь на малинку,это не те деньги чтобы экономить и поднимите там все (HA, MQTT и тд)
Если честно, то лень переписывать - в моем сетапе текущего функционала мне достаточно. Может когда нибудь руки дойдут, но вообще это же OpenSource - кто мешает сделать форк, переписать используя AsyncMqtt и потом предложить Pull Request. Или автор должен бесконечно переписывать код для всех кому хочется иной функциональности ?
OldNavi , спасибо за удочку. Просто обращаюсь к вам , так как Вам лучше известен, как автору, принцип работы вашего творения. Ваш код - это хорошая основа для дальнейшего допиливания под собственные хотелки и нужды.
Кстати, после допиливания вашей прошивки и регулировки ПИД регулятора , достиг точности поддержания температуры в квартире в +/- 0,2 градуса. После этого выкинул нафиг китайский термостат POER RTC 10.
Или автор должен бесконечно переписывать код для всех
вот реально, поддерживаю. зафлудили тему конкретно! пора отписываться от темы... мне было надо - от корки до корки сто раз перечитал и добился желаемого на основе твоего кода, ещё раз спасибо)
tsv_33 пишет:
законченное устройство, как в железе, так и в его мозгах
и вам спасибо за адаптер!
Сейчас перешел на ESPHome, всё таки для Home Assistant куда удобнее использоваться нативные средства, чем каждый раз расчехлять Arduino IDE и вылавливать очередные баги в MQTT или коде (особенно когда Си впервые тут и увидел). И всю логику перенес в Home Assistant, ни к чему это на контроллере. Получилась простейшая и рабочая прошивка с идеальной интеграцией в "умный дом".
Сейчас перешел на ESPHome, всё таки для Home Assistant куда удобнее использоваться нативные средства, чем каждый раз расчехлять Arduino IDE и вылавливать очередные баги в MQTT или коде (особенно когда Си впервые тут и увидел). И всю логику перенес в Home Assistant, ни к чему это на контроллере. Получилась простейшая и рабочая прошивка с идеальной интеграцией в "умный дом".
Совершенно верно и полностью согласен. Я именно так и буду делать. Учитывая что у меня два котла, электрический и газовый иметь два различных отдельно настраиваемых устройства нет смысла. На самом деле мне от OpenTherm контроллера нужно только работать непосредственно с котлом и общение с MQTT. Да, нужна примитивная страница для подключения к WiFi и основная уставка, температура которая сообщается котлу в случае аварии, недоступности сервисов или еще каких-то ситуациях.
На просторах я встретил решение где espпишка держала питанием релюшку которая в случае сбоя отключалась тем самым тупо замыкала контакты котла, превращая его в обычный тупой обогреватель по теплоносителю, не экономно, но не замерзнешь. На сколько я понимаю у котла OpenTherm реализован именно на этих контактах. По крайней мере у меня именно так.
Все остальное надо делать на центральном контроллере, это правильно и удобно в плане нативного конфигурирования. Если еще добавить раздельного отопления теплым полом и радиаторным отоплением то реализация на esp становиться проблемой или совсем кастомным решением.
Я посмотрел в вашем примере ПЗА но не очень его понял. Не могли бы вы коротко логику описать?
Давно смотрел вебинар инженеров бакси, где те обсуждали идеальный ПЗА, если я тогда правильно понял, то идеальный ПЗА это заставить котел работать непрерывно выровняв его мощность с теплопотерями строения. И если я не напутал, делается это вводом динамического коэффициента: улица - скорость набора тепла в помещении. Но и тут проблема, все это актуально для радиаторного отопления а вот когда вы отапливаетесь раздельно, теплый пол и радиаторное отопление наступают проблемы.
Для новичка, подскажите, для управления котлом хватит OpenTherm адаптера и ESP-01? И для чего в примерах OpenTherm Gateway, Master и Slave?
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Спасибо. А gateway для чего?
Собственно, из перевода сего слова - шлюз. Устройство, которое взаимодействует как с котлом, так и с термостатом. Можно мониторить, а можно перехватить связь.
Наблюдая за работой своего устройства заметил, что периодически получаю Request Timeout в ответ на очередной запрос по OpenTherm. В среднем 1-2 раза за 5 минут. Какой-то закономерности или взаимосвязи с другими событиями пока не нашел.
Кроме того, иногда приходят ошибочные ответы на запросы (Invalid Response), в которых видно, что 1-2 бита ответа считаны неверно.
Интересно, только мой котел так себя ведет или у всех такая история?
Наблюдая за работой своего устройства заметил, что периодически получаю Request Timeout в ответ на очередной запрос по OpenTherm. В среднем 1-2 раза за 5 минут. Какой-то закономерности или взаимосвязи с другими событиями пока не нашел.
Кроме того, иногда приходят ошибочные ответы на запросы (Invalid Response), в которых видно, что 1-2 бита ответа считаны неверно.
Как выяснилось причина в том, что гуляют тайминги импульсов в ответе котла. Кроме того, при включении горелки от котла приходят ложные импульсы. Пришлось дорабатывать библиотеку, а точнее процедуру чтения ответа котла чтобы учесть возможные варианты. В результате удалось полностью избавиться от ошибок чтения ответа котла.
Там же можно найти дополнительные примеры использования библиотеки, включая примеры использования библиотеки в асинхронном редиме и примеры тестирования OpenTherm ID.
Имеется котел Viessmann VITOPEND 100-W, и пытаюсь подружить его с девайсом. Читает все, почти без проблем (напр. дата и год - надо поменять местами байты), но это не проблема. А вот записать - при установке температуры бойлера в НОЛЬ ( ot.setBoilerTemperature(0) ), нагрев отключается, в любое другое значение - включается, и работает, как установлено на пульте котла, независимо от передаваемой температуры. Есть лог:
Да, спасибо! Уже посмотрел, вроде ничего сложно, можно собрать или заказать у автора, вроде аккуратно все разведено, только боюсь будет долго идти.
а далее вся логика скетч на esp?
вы из Украины ?
из РФ, МО. на митьку завтра сгоняю куплю все что надо, попробую на макетке собрать.
Еще вопрос, а почему так много обсуждается ГВС в регулировках?
knt58dualtv, пожалуйста, не забивайте тему картинками по азам работы с Arduino IDE
Забили всю тему непонятным кодом, который и читать то никто не будет...
Даже прочитав, все стало совсем не понятно, в итоге есть нормальный скетч или нет? Или брать с первой страницы и пытаться что-то докрутить?
Даже прочитав, все стало совсем не понятно, в итоге есть нормальный скетч или нет? Или брать с первой страницы и пытаться что-то докрутить?
Смотря что вам нужно в итоге. Универсального кода нету, каждый пишет под себя и под свои задачи. Можете для начала просто взять пример из библиотеки OpenTherm, а дальше уже докручивать под свои задачи. Здесь, в теме, есть примеры ПИД-управления, есть ссылки на примеры ПЗА-управления.
Смотря что вам нужно в итоге. Универсального кода нету, каждый пишет под себя и под свои задачи. Можете для начала просто взять пример из библиотеки OpenTherm, а дальше уже докручивать под свои задачи. Здесь, в теме, есть примеры ПИД-управления, есть ссылки на примеры ПЗА-управления.
Почитал, для новичка без хороших навыков программирования крайне все сложно и не систематизировано. Буду пытаться разобраться.
На самом деле хотелось устройство управляющее котлом по openTherm с веб страницей для конфигурирования (базовая конфигурация) и возможность настроить и получить внешние данные по mqtt от комнатного термостата и уличного датчика для работы низкотемпературного отопления. Т.е. запрос тепла, уставка температуры носителя на основе внешней температуры с последующим обучением на основе скорости теплопотерь здания. Если данных нет или проблемы со связью включать базовые установки чтобы не замерзнуть.
Но это на уровне новичка который до сих пор в битве с BME280 )))
Но это на уровне новичка который до сих пор в битве с BME280 )))
А что не получается с BME280? У меня все прекрасно работает с библиотекой Adafruit.
Почитал, для новичка без хороших навыков программирования крайне все сложно и не систематизировано. Буду пытаться разобраться.
На самом деле хотелось устройство управляющее котлом по openTherm с веб страницей для конфигурирования (базовая конфигурация) и возможность настроить и получить внешние данные по mqtt от комнатного термостата и уличного датчика для работы низкотемпературного отопления. Т.е. запрос тепла, уставка температуры носителя на основе внешней температуры с последующим обучением на основе скорости теплопотерь здания. Если данных нет или проблемы со связью включать базовые установки чтобы не замерзнуть.
Ну в целом задача понятная, но многое зависит от нюансов. В процессе проработки алгоритмов вы сами поймете, что вам нужно, а что нет. Я, например, тоже для себя решаю похожую задачу, но со своими заморочками. Пишите вопросы, которые возникают, народ всегда поможет советом или примером кода. У вас какая модель котла? Комнатный термостат и уличный датчик на чем? Можно и с программированием помочь, если надо...
А что не получается с BME280? У меня все прекрасно работает с библиотекой Adafruit.
Я использую EasyESP (что-то подобное и хотел с котлом), но пробовал и Adafruit, сложнее и я не разобрался как учитывать высоту над уровнем моря. С EasyESP проще, но показания этого датчика оставляют желать лучшего :( Из 5 только один начал показывать что-то подходящее. Потом температура упала до -27 и он застрял на -19. Сейчас отстает на 2 градуса. Ну и добавить вынос датчика минимум на 10см от питания... не соскучишься.
А что не получается с BME280? У меня все прекрасно работает с библиотекой Adafruit.
Я использую EasyESP (что-то подобное и хотел с котлом), но пробовал и Adafruit, сложнее и я не разобрался как учитывать высоту над уровнем моря. С EasyESP проще, но показания этого датчика оставляют желать лучшего :( Из 5 только один начал показывать что-то подходящее. Потом температура упала до -27 и он застрял на -19. Сейчас отстает на 2 градуса. Ну и добавить вынос датчика минимум на 10см от питания... не соскучишься.
У меня только один такой датчик, и он оработает с самого начала без проблем, в т.ч. на днях показывал реальные -27 в МО. Высоту над уровнем моря вам никак учитывать не надо, т.к. датчик измеряет и показывает фактическое давление в точке установки. Если нужна моя помощь, пишите в личку, т.к. здесь это офф-топ...
Ну в целом задача понятная, но многое зависит от нюансов. В процессе проработки алгоритмов вы сами поймете, что вам нужно, а что нет. Я, например, тоже для себя решаю похожую задачу, но со своими заморочками. Пишите вопросы, которые возникают, народ всегда поможет советом или примером кода. У вас какая модель котла? Комнатный термостат и уличный датчик на чем? Могу и с программированием помочь, если надо...
У меня Bosch WBN-6000 без ничего, есть еще Baxi на в нем все это встроено и он не интересный. К этому у меня есть самосборный электрический котел на симисторах которым управляет ПЛК, там я все сам писал и запихнул туда включение газового котла простой перемычкой. Электрический работает идеально, газовый, особенно в межсезонье, просто жопа. Вот и хочу от ПЛК уйти, он хоть и надежный как лом но управлять OpenTherm'om так задача посадки на марс, +единственный доступный протокол это ModBus, что тоже геморрой.
Вот и пытаюсь перейти на более гибкое решение которое бы позволило всем этим барахлом управлять. Но очень хочется сделать что-то более не менее универсальное, подходящее большинству.
Если нужна моя помощь, пишите в личку, т.к. здесь это офф-топ...
по ходу я совсем дубовый, как на этом форуме писать в личку?
Если нужна моя помощь, пишите в личку, т.к. здесь это офф-топ...
по ходу я совсем дубовый, как на этом форуме писать в личку?
Походу это форум дубовый
Diminator, я когда создавал эту тему, то был в самом начале своих познаний. Сейчас имею законченное устройство, как в железе, так и в его мозгах. Всё, о чём вы писали у меня реализовано, web, mqtt, дистанционные датчики, том числе на BME280 и множество повторений единомышленниками.
Diminator, я когда создавал эту тему, то был в самом начале своих познаний. Сейчас имею законченное устройство, как в железе, так и в его мозгах. Всё, о чём вы писали у меня реализовано, web, mqtt, дистанционные датчики, том числе на BME280 и множество повторений единомышленниками.
Это действительно очень круто! Но не могли бы вы поделиться наработками?
(И все-же, на этом форуме можно писать в личку или я еще не дорос?)
Diminator, так я уже поделился, ссылку ранее давал https://yadi.sk/d/Qcu-3S7WqdUTHg
Diminator, так я уже поделился, ссылку ранее давал https://yadi.sk/d/Qcu-3S7WqdUTHg
Почему-то ссылку прозевал в потоке коллективного сознания! Спасибо, буду изучать! А есть какой-то способ понадоедать глупыми вопросами напрямую?
А есть какой-то способ понадоедать глупыми вопросами напрямую?
Да, на почту.
Залил прошивку BME280_3.05_weather_station.ino.d1_mini.bin в Wemos D1 mini, подключился к WiFi manager, указал свою сеть для подключения, перезагрузка... опять перезагрузка.... опять перезагрузка... и т.д.
Serial log:
Монтируем файловую ÑиÑтему...
Чтение конфигурационного файла...
Открытие конфигурационного файла
{"hostname":"outdoor","mqtt_server":"","mqtt_port":"","mqtt_username":"","mqtt_password":""} парÑинг json
Загружено из EEPROM
zero = 0.00
*WM: [3] allocating params bytes: 20
*WM: [2] Added Parameter: hostname
*WM: [2] Added Parameter: server
*WM: [2] Added Parameter: port
*WM: [2] Added Parameter: mqtt_username
*WM: [2] Added Parameter: mqtt_password
*WM: [1] AutoConnect
*WM: [2] Connecting as wifi client...
*WM: [3] STA static IP:
*WM: [2] setSTAConfig static ip not set, skipping
*WM: [1] Connecting to SAVED AP: MT-WiFi-98F4
*WM: [3] Using Password: XXXXXXXXX
*WM: [3] WiFi station enable
*WM: [3] enableSTA PERSISTENT ON
*WM: [1] connectTimeout not set, ESP waitForConnectResult...
*WM: [2] Connection result: WL_CONNECTED
*WM: [3] lastconxresult: WL_CONNECTED
*WM: [1] AutoConnect: SUCCESS
*WM: [1] STA IP Address: 192.168.88.170
Wi-Fi, ОК! ЕÑÑ‚ÑŒ Ñоединение... :-)
HTTPUpdateServer ready! Open http://outdoor.local/update in your browserÐе удалоÑÑŒ найти датчик BME280, проверьте правильноÑÑ‚ÑŒ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð½Ð¸Ð¼!
--------------- CUT HERE FOR EXCEPTION DECODER ---------------
Soft WDT reset
>>>stack>>>
ctx: cont
sp: 3ffffdb0 end: 3fffffc0 offset: 01a0
3fffff50: 3ffefde0 3ffefc0c 3ffe84dd 4020711d
3fffff60: 00706300 00657461 80000000 00000000
3fffff70: 70747400 76616600 802277c4 402277b0
3fffff80: 3fff1dc8 00000000 feefeffe feefeffe
3fffff90: feefeffe feefeffe feefeffe 3ffeff2c
3fffffa0: 3fffdad0 00000000 3ffefeec 4021daa0
3fffffb0: feefeffe feefeffe 3ffe8508 401011bd
<<<stack<<<
miks69, перед заливкой прошивки нужно полностью очистить память в Wemos D1 mini.
miks69, перед заливкой прошивки нужно полностью очистить память в Wemos D1 mini.
Если прошивка стартует (а судя по логу она стартует), то должна быть как минимум сделана корректная обработка содержимого памяти.
После заливки прошивки 22.05_myOpenTherm.ino.d1_mini.bin даже WiFi manager не загрузился...
Ну, да, если прошиваю проект из среды, то выбираю один из трёх вариантов с соответствующей обработкой. Тут же, бинарный файл. Ни мне, ни прошивке не ведомо, что хранилось в памяти модуля до прошивки (мусор).
Да, на почту.
В фаиле "Прочти меня.txt" ваш адрес?
Да.
tsv_33
Подскажите у вас графики в web-морде (линк "Лог")реализованы через home assistant/mqtt функционал?
Old Navi, за основу построения термостата для своего котла Ferolli Domiproject F24 взял ваш код. Сегодня обнаружил такой баг: при пропадании интернета термостат не работает. В чем может быть проблема? MQTT или wifi
А сервер MQTT тоже в интернете ? Или локально запущен ?
Короче , после восстановления электроснабжения , wifi роутер не запустился , ну и соответственно интернета тоже не было. MQTT в интернете. Я прикрутил LCD дисплей и в функции setup прописал инициализацию LCD и вывод на дисплей надписи. Так вот судя по этой надписи, esp затыкается на функции setup_wifi();
Я бы все таки сервер MQTT использовал локальный, по множеству соображений и безопасность в том числе. ESPшка не использует SSL шифрование для MQTT и оставлять дыру в управлении котлом не найс. Рекомендую home assistant в нем тоже есть MQTT сервер интеграция, а если надо ходить из интернета у них есть за небольшие деньги облачный доступ. Или, пробросить морду своего Home Assistant в интернет (ессно с SSL и пароли не типа 123456).
dizzelл, лог независимый, самого термостата.
У меня есть Home Assistant сконфигурированный, настроенный , но вместе с ESP и смартфоном (mqtt dash) они работают через интернет MQTT сервер. У меня пока нет малины или лишнего компа c линуксом, чтобы круглосуточно гонять HA сервак.
Ну видимо что то с сетью, соединение с сервером MQTT не установлено. Что то зависло на уровне соединения. Попробуйте с другим брокером.
Так это я понял, я специально отключил инет от точки доступа чтобы, сэмитировать ситуацию. Я просто думаю , как сделать обход соединения MQTT (в случае его отсутствия) и переход программы к работе opentherm при отсутствии подключения к инету.
Котёл после восстановления электропитания ждёт команд от термостата, а термостат (программа) не может дойти до управления котлом , так как после перезагрузки повис на соединении с mqtt. Если котёл не получает этих команд , то он работает по минимально допустимой температуре теплоносителя 30 градусов и квартира плавно охлаждается до 16 градусов, пока я на работе :))) Неприятная ситуация.
Вы симитировали плохой вариант недоступности, у вас первым делом завис DNS ресловинг на таймаут поскольку вы отрубили интернет и как следствие DNS. Как минимум пропишите просто IP адрес, это уже обсуждалось. Прошивка будет пытаться переконектится каждые 5 секунд, так прошито в прошивке (можно исправить) и в промежутках там все остальные потоки успевают отрабатывать. А поскольку включили ресолвинг имен - то нужно ждать таймаут DNS что ощутимо дольше 5 секунд. А вызов MQTT connect() в библиотеки - блокирующий на уровне TCPIP.
Но лучший совет - разоритесь на малинку,это не те деньги чтобы экономить и поднимите там все (HA, MQTT и тд)
Но лучший совет - разоритесь на малинку,это не те деньги чтобы экономить и поднимите там все (HA, MQTT и тд)
Откажитесь от применяемой в проекте библиотеки PubSubClient в пользу AsyncMqttClient.
Если честно, то лень переписывать - в моем сетапе текущего функционала мне достаточно. Может когда нибудь руки дойдут, но вообще это же OpenSource - кто мешает сделать форк, переписать используя AsyncMqtt и потом предложить Pull Request. Или автор должен бесконечно переписывать код для всех кому хочется иной функциональности ?
OldNavi, полностью согласен, мой посыл вовсе не в вашу сторону был, удочка дана, а уж рыбку пусть ловит, кто есть хочет.
OldNavi , спасибо за удочку. Просто обращаюсь к вам , так как Вам лучше известен, как автору, принцип работы вашего творения. Ваш код - это хорошая основа для дальнейшего допиливания под собственные хотелки и нужды.
Кстати, после допиливания вашей прошивки и регулировки ПИД регулятора , достиг точности поддержания температуры в квартире в +/- 0,2 градуса. После этого выкинул нафиг китайский термостат POER RTC 10.
вот реально, поддерживаю. зафлудили тему конкретно! пора отписываться от темы... мне было надо - от корки до корки сто раз перечитал и добился желаемого на основе твоего кода, ещё раз спасибо)
и вам спасибо за адаптер!
Сейчас перешел на ESPHome, всё таки для Home Assistant куда удобнее использоваться нативные средства, чем каждый раз расчехлять Arduino IDE и вылавливать очередные баги в MQTT или коде (особенно когда Си впервые тут и увидел). И всю логику перенес в Home Assistant, ни к чему это на контроллере. Получилась простейшая и рабочая прошивка с идеальной интеграцией в "умный дом".
Кто хочет взглянуть, набросал архивчик
и вам спасибо за адаптер!
Сейчас перешел на ESPHome, всё таки для Home Assistant куда удобнее использоваться нативные средства, чем каждый раз расчехлять Arduino IDE и вылавливать очередные баги в MQTT или коде (особенно когда Си впервые тут и увидел). И всю логику перенес в Home Assistant, ни к чему это на контроллере. Получилась простейшая и рабочая прошивка с идеальной интеграцией в "умный дом".
Кто хочет взглянуть, набросал архивчик
Совершенно верно и полностью согласен. Я именно так и буду делать. Учитывая что у меня два котла, электрический и газовый иметь два различных отдельно настраиваемых устройства нет смысла. На самом деле мне от OpenTherm контроллера нужно только работать непосредственно с котлом и общение с MQTT. Да, нужна примитивная страница для подключения к WiFi и основная уставка, температура которая сообщается котлу в случае аварии, недоступности сервисов или еще каких-то ситуациях.
На просторах я встретил решение где espпишка держала питанием релюшку которая в случае сбоя отключалась тем самым тупо замыкала контакты котла, превращая его в обычный тупой обогреватель по теплоносителю, не экономно, но не замерзнешь. На сколько я понимаю у котла OpenTherm реализован именно на этих контактах. По крайней мере у меня именно так.
Все остальное надо делать на центральном контроллере, это правильно и удобно в плане нативного конфигурирования. Если еще добавить раздельного отопления теплым полом и радиаторным отоплением то реализация на esp становиться проблемой или совсем кастомным решением.
Я посмотрел в вашем примере ПЗА но не очень его понял. Не могли бы вы коротко логику описать?
Давно смотрел вебинар инженеров бакси, где те обсуждали идеальный ПЗА, если я тогда правильно понял, то идеальный ПЗА это заставить котел работать непрерывно выровняв его мощность с теплопотерями строения. И если я не напутал, делается это вводом динамического коэффициента: улица - скорость набора тепла в помещении. Но и тут проблема, все это актуально для радиаторного отопления а вот когда вы отапливаетесь раздельно, теплый пол и радиаторное отопление наступают проблемы.
Для новичка, подскажите, для управления котлом хватит OpenTherm адаптера и ESP-01? И для чего в примерах OpenTherm Gateway, Master и Slave?
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Спасибо. А gateway для чего?
Master - это когда термостат управляет котлом. Slave это когда он в принципе только мониторит котел, либо другое устройство со статусом Master (другой термостат например)
Спасибо. А gateway для чего?
Собственно, из перевода сего слова - шлюз. Устройство, которое взаимодействует как с котлом, так и с термостатом. Можно мониторить, а можно перехватить связь.
Наблюдая за работой своего устройства заметил, что периодически получаю Request Timeout в ответ на очередной запрос по OpenTherm. В среднем 1-2 раза за 5 минут. Какой-то закономерности или взаимосвязи с другими событиями пока не нашел.
Кроме того, иногда приходят ошибочные ответы на запросы (Invalid Response), в которых видно, что 1-2 бита ответа считаны неверно.
Интересно, только мой котел так себя ведет или у всех такая история?
какой способ доступит до эти настройки
ID=10: Number of Transparent-Slave-Parameters supported by slave
Наблюдая за работой своего устройства заметил, что периодически получаю Request Timeout в ответ на очередной запрос по OpenTherm. В среднем 1-2 раза за 5 минут. Какой-то закономерности или взаимосвязи с другими событиями пока не нашел.
Кроме того, иногда приходят ошибочные ответы на запросы (Invalid Response), в которых видно, что 1-2 бита ответа считаны неверно.
Как выяснилось причина в том, что гуляют тайминги импульсов в ответе котла. Кроме того, при включении горелки от котла приходят ложные импульсы. Пришлось дорабатывать библиотеку, а точнее процедуру чтения ответа котла чтобы учесть возможные варианты. В результате удалось полностью избавиться от ошибок чтения ответа котла.
Кому интересно доработки можно найти в моем форке библиотеки на гитхабе - https://github.com/miksumin/OpenTherm/
Там же можно найти дополнительные примеры использования библиотеки, включая примеры использования библиотеки в асинхронном редиме и примеры тестирования OpenTherm ID.
Добрый день Гуру.
Имеется котел Viessmann VITOPEND 100-W, и пытаюсь подружить его с девайсом. Читает все, почти без проблем (напр. дата и год - надо поменять местами байты), но это не проблема. А вот записать - при установке температуры бойлера в НОЛЬ ( ot.setBoilerTemperature(0) ), нагрев отключается, в любое другое значение - включается, и работает, как установлено на пульте котла, независимо от передаваемой температуры. Есть лог:
golosun, марка котла, а равно и девайс не причём. Причём прошивка в девайсе. Приведённый лог только больше вопросов вызывает...