Термостат OpenTherm на ESP8266

central855
Offline
Зарегистрирован: 24.03.2020

dex99 пишет:

* меняет режимы зима/лето/стендбай (такого даже в спецификации OpenTherm нет). 

Плохо искали))) ID0:HB5 отвечает за режим зима-лето.У некоторых моделей Ferroli не поддерживает режим отключения CH Enable ID0:HB0.

dex99
Offline
Зарегистрирован: 21.12.2021

central855 пишет:

Не все Immergas поддерживают Opentherm,так как работают на своем протоколе ImgBus.С чем то схожим с Opentherm,вот поэтому и считывать возможно некоторые данные

Moй Immergas тоже рабоатет на ImgBus (по крайней мере, так написано в руководстве по эксплуатации). Но я экспериментальным путем установил, что ImgBus - это тот же OpenTherm, с некоторыми особенностями. Читать/писать все получается как с обычным OpenTherm, просто надо в первом запросе Status (ID0) в младшем байте установить фиксированное значение - 0xCA, тогда последующие команды записи будут работать. 

dex99
Offline
Зарегистрирован: 21.12.2021

central855 пишет:

Плохо искали))) ID0:HB5 отвечает за режим зима-лето.У некоторых моделей Ferroli не поддерживает режим отключения CH Enable ID0:HB0.

Возможно. Но у меня не так, у меня режим меняется с помощью ID0:HB0,HB1 (вкл/выкл отопления и гор.воды)

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

для Ferroli просто выставил 20с в режим отопления и все

tsv_33
Offline
Зарегистрирован: 11.04.2019

dex99, можете посмотреть, что в ID18 (давление)?

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

dex99, можете посмотреть, что в ID18 (давление)?

конечно. Там и правда давление воды в контуре. В барах. 

tsv_33
Offline
Зарегистрирован: 11.04.2019

dex99 пишет:

tsv_33 пишет:

dex99, можете посмотреть, что в ID18 (давление)?

конечно. Там и правда давление воды в контуре. В барах. 

в котле, вообще, есть датчик давления?

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

в котле, вообще, есть датчик давления?

Да, есть внешний датчик. Его показания совпадают с ID18

tsv_33
Offline
Зарегистрирован: 11.04.2019

dex99 пишет:

tsv_33 пишет:

в котле, вообще, есть датчик давления?

Да, есть внешний датчик. Его показания совпадают с ID18

Так это механический манометр, или он комбинированный?

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

Так это механический манометр, или он комбинированный?

Снаружи я вижу обычный механический манометр:

https://images.ua.prom.st/3550222714_w640_h640_kotel-immergas-eolo.jpg

скорее всего, где-то внутри есть еще один.  

tsv_33
Offline
Зарегистрирован: 11.04.2019

dex99 пишет:

tsv_33 пишет:

Так это механический манометр, или он комбинированный?

Снаружи я вижу обычный механический манометр:

https://images.ua.prom.st/3550222714_w640_h640_kotel-immergas-eolo.jpg

скорее всего, где-то внутри есть еще один.  

В том то и дело, по схеме только реле давления системы (вкл/выкл), ни какого датчика, измеряющего это давление нет, кроме механического, тем не менее, ID18 выдаёт, как бы давление. Какая его величина в вашем котле в цифрах и меняется ли она?

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

на примере у Феероли 422 блюсенс -датчик давления мех а но в цифравый э

tsv_33
Offline
Зарегистрирован: 11.04.2019

knt58dualtv, так датчик и в котле имеется, на схеме под номером 137!

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

В том то и дело, по схеме только реле давления системы (вкл/выкл), ни какого датчика, измеряющего это давление нет, кроме механического, тем не менее, ID18 выдаёт, как бы давление. Какая его величина в вашем котле в цифрах и меняется ли она?

Сходил, проверил. Вы правы! ID18 нагло врет, вне зависимости от реального давления показывает 1.4 бара. Надо будет еще проверить показания при снижении давления к критическому, возможно тогда будет возращать 0 или вроде того, но пока не могу - котел работает. 

tsv_33
Offline
Зарегистрирован: 11.04.2019

1.4 бара, что и требовалось доказать. А давление ли это, или в ID18 что то другое...

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

1.4 бара, что и требовалось доказать. А давление ли это, или в ID18 что то другое...

Посмотрел историю (у меня все показатели в базу пишутся) за последние 30 дней, там постоянно 1.4, ни разу не было другого значения. 

tsv_33
Offline
Зарегистрирован: 11.04.2019

dex99 пишет:

tsv_33 пишет:

1.4 бара, что и требовалось доказать. А давление ли это, или в ID18 что то другое...

Посмотрел историю (у меня все показатели в базу пишутся) за последние 30 дней, там постоянно 1.4, ни разу не было другого значения. 

Такого же не бывает, правда?!

dex99
Offline
Зарегистрирован: 21.12.2021

tsv_33 пишет:

Такого же не бывает, правда?!

Правда, что это не настоящее давление. Может зашили туда 1.4 для корректной работы каких-то сторонних термостатов. Я проверил, родной термостат Immergas вообще не читает ID18

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

у меня совпадают все три - манометру котле , манометр в системе ОТ и датчик по ID18 

eeciv
Offline
Зарегистрирован: 21.01.2017

Никто не пробовал ограничивать модуляцию котла (id14) ? buderus 072 не реагирует на команду, хотя все остальное(температура котла гвс) работает нормально.

central855
Offline
Зарегистрирован: 24.03.2020

dex99 пишет:

просто надо в первом запросе Status (ID0) в младшем байте установить фиксированное значение - 0xCA, тогда последующие команды записи будут работать. 

Что то не хочет у меня управлять командами Immergas Mini Eolo.То ли я туплю со значениями,то ли значения другие должны быть.Не могла бы выложить тот кусочек кода,как вы его реализовали со значением - 0xCA.

 

dex99
Offline
Зарегистрирован: 21.12.2021

central855 пишет:

Что то не хочет у меня управлять командами Immergas Mini Eolo.То ли я туплю со значениями,то ли значения другие должны быть.Не могла бы выложить тот кусочек кода,как вы его реализовали со значением - 0xCA.

У меня EOLO STAR. Не факт, что у Mini все реализовано так же само, но вероятность, конечно, большая.

Код вряд ли поможет, там целый фреймворк и смысловые фрагменты разбросаны по файлам. Проще рассказать смысл, а смысл такой:

1. Чтение (именно чтение - message type 0, не запись) из ID 0 с data=(HB=0x03, LB=0xCA). 3 в сташем байте - это зимний режим. Соответственно, 2-летний, 0 - стендбай, 1 - похоже, не имеет смысла.

2.  Чтение из ID 48

3. Чтение из ID 49

4. Запись в ID 1 

5. Запись в ID 56

6. Запись в ID 57

Это в упрощенном виде алгоритм родного термостата Immergas. Интервал между командами = 1с, хотя у меня все работает с интервалом 100ms и ниже. Управление отоплением осуществляется записью температуры в ID 1 и ID 57. 

В моем случае шаг 1 (с чтением 0xCA) открывает доступ к записи  в ID 1 и ID 57. Без первого шага запись в эти регистры ничего не меняет в работе котла, хоть и не возвращает ошибку. 

Bigbrother72
Offline
Зарегистрирован: 02.04.2022

Здравтсвуйте

Котел Baxi luna 3 310  (31квт). Дом 250 кв.м.

Плата и скетч отсюда. (Немного его доработал)

https://github.com/diyless/home-assistant-opentherm-thermostat

Температура нижняя установлена 45 градусов. верхняя 75 градусов

 

Работает в связке с home assisstant.

Температуру в комнате держит нормально по ПИД.

но горелка на котле постоянно включается-выключается раз в несколько минут.

Насколько я вижу,  то котел набирает температура градусов на пять от заданной выше и отключается.

потом котел отстывает и опять пламя включается.

Это избыточная мощность котла при текущей погоде на улице?

Модуляция котла:

 

eeciv
Offline
Зарегистрирован: 21.01.2017

Да, скорее всего избыточная мощность

Её можно уменьшить в ID14 - Максимальная относительная настройка уровня модуляции (Maximum relative modulation level setting (%)). Но у меня на Buderus 072 не получилось, хотя в протоколе написано что этот параметр обязателен для всех производителей.

miks69
Offline
Зарегистрирован: 16.02.2020

Чтобы сделать вывод о причинах такого поведения котла не хватает графиков установленной и фактической температуры помещения

tsv_33
Offline
Зарегистрирован: 11.04.2019

eeciv пишет:

...в протоколе написано что этот параметр обязателен для всех производителей.

Да, ладно! Где? По тексту протокола, ткни пальцем...

Bigbrother72 пишет:

Температуру в комнате держит нормально по ПИД.

С чего ты решил, что ПИД у тебя работает правильно? Глянь на свои же графики...

miks69 пишет:

Чтобы сделать вывод о причинах такого поведения котла не хватает графиков установленной и фактической температуры помещения

Согласен. В ясновидящих и чудеса не верю...

miks69
Offline
Зарегистрирован: 16.02.2020

tsv_33 пишет:

Bigbrother72 пишет:

Температуру в комнате держит нормально по ПИД.

С чего ты решил, что ПИД у тебя работает правильно? Глянь на свои же графики...

Ну да, работа термостата вызывает вопросы. Например, по какой причине в период с 12.20 до 14.00 котел вообще не включался, хотя температура упала сильно ниже установки? Термостат его выключил? Но при этом установка температуры котла меняется судя по вашему графику...

Собственно термостат и должен корректно управлять работой котла в изменяющейся ситуации. А он у вас фактически заставляет котел включаться и снова выключаться в ситуации, когда греть то ничего и не нужно.

А ограничение мощности котла (максимальной модуляции) в данной ситуации ничего не даст, т.к. большую часть времени котел работает практически на минимальной мощности (почти нулевой модуляции).

Bigbrother72
Offline
Зарегистрирован: 02.04.2022

С 12 до 14 я удаленно понизил температуру в комнате. Надо было написать на графике для объяснения этот момент.

Тут еще вчера была проблема - вентилятор в котле перестал крутиться. Котел уже некоторое время подавал тревожные сигналы свистом и гулом вентилятора.

Пришлось в девять вечера разбирать котел и снимать вентилятор.

Котел починил и сразу же после этого в скетч еще добавил гистерезис 0.1 градуса

......
  float hyster = 0.1;  // гистерезис

......

  if (t < (sp - hyster )) heatingEnabled = true;
      else if (t > (sp + hyster )) heatingEnabled = false;  

 

По хронологии  точки на графике

1. Котел сломался.

2.  Котел починил. Температура задана 23 градуса.

3. Первая помывка.

4. Вторая помывка

5. Температура задана 22 градуса.

 

 

В комнате температура была:

1. Когда котел не работал

2. Котел включен

 

А сейчас думаю - может это из-за вентилятора который почти не крутился и не мог горячие газы от котла отвести в вытяжку?

Сегодня попробую гистерезис 0 поставить.

Единственно проблем сейчас на улице уже +10 градусов. И котле работает на обогрев только ночью, а днем не включается.

miks69
Offline
Зарегистрирован: 16.02.2020

Судя по вашим графикам в 1.30 температура в помещении достигла установки (22 град) и вместо того, чтобы понижать установку котла с 70 до 40 град (т.е. пока не будет найдена точка равновесия требуемой мощности подогрева и мощности рассеивания тепла) термостат продолжает удерживать ее примерно на том же уровне, а котел продолжает греть и перегревать помещение.

Примерно к 2.00 когда температура в помещении достигает 22,1 котел отключается и включается уже примерно в 3.30 когда температура в помещении опустилаcь до 21.9 причем сразу на ту же установку котла в 70 град.

Возникает вопрос: вы уверены, что у вас термостат работает по ПИД-алгоритму а не принципу ВКЛ/ВЫКЛ?

Кстати, в ПИД-алгоритме не используется Гистерезис (тыц)

Bigbrother72
Offline
Зарегистрирован: 02.04.2022

Выключение по гистерезису я добавил, чтобы не было перегрева.

Скорее всего коэффициенты ПИД неправильно подобраны.

Но это уже в следующем году. Сейчас уже целый день тепло и без котла.

eeciv
Offline
Зарегистрирован: 21.01.2017

tsv_33]</p> <p>[quote=eeciv пишет:

...в протоколе написано что этот параметр обязателен для всех производителей.

Да, ладно! Где? По тексту протокола, ткни пальцем...

https://github.com/Nodo-Domotica/OpenTherm-GateWay/blob/master/OT-Protoc...
23 страница, пункт 5.2

И вот здесь:  http://otgw.tclcode.com/matrix.cgi#boilers   - первый абзац

 

tsv_33
Offline
Зарегистрирован: 11.04.2019

Это называется "читаю книгу, вижу фигу" А подумать, или дальше почитать? Не..?

eeciv
Offline
Зарегистрирован: 21.01.2017

tsv_33 пишет:

Это называется "читаю книгу, вижу фигу" А подумать, или дальше почитать? Не..?

Может быть великий гуру прошивок за деньги просветит? или это тоже за деньги?

tsv_33
Offline
Зарегистрирован: 11.04.2019

eeciv пишет:

Может быть великий гуру прошивок за деньги просветит? или это тоже за деньги?

Не, удочку дал, а рыбку сам лови... :)

avolgin
Offline
Зарегистрирован: 05.04.2022

Товарищи, добрый день! 

Пару лет назад приобрел у @tsv_33 прошивку для ESP8266 для управления котлом baxi slim. А вот сейчас задумал научить прошивку Tasmota тоже управлять котлом. и вот какой занятный кейс получается. Если я меняю одну D1 mini c прошивкой от @tsv_33 на другую с прошивкой от Tasmota, все работает. А если перезапускаю котел, то Tasmota работает как Slave и не хочет управлять температурой горячей воды и пр. 

Насколько я понял из данной ветки форума проблема в том, что Tasmota не проходит корректный handshake, чтобы стать master. Но вот не могу понять в каком месте поправить драйвер, чтобы отрабатывал корректно интеграцию с baxi.

Прошу подскажите, в какой строчке правильную посылку прописать, пожалуйста.

соответственно ссылки на драйверы от tasmota
https://github.com/arendst/Tasmota/blob/development/tasmota/xsns_69_opentherm_protocol.ino
https://github.com/arendst/Tasmota/blob/development/tasmota/xsns_69_opentherm.ino

 

miks69
Offline
Зарегистрирован: 16.02.2020

Может вам с такой просьбой лучше обратиться к авторам проекта?

tsv_33
Offline
Зарегистрирован: 11.04.2019

Привожу список котлов, с которыми тестировалась и 100% работает прошивка. Последняя актуальная версия 26.44

  • BAXI SLIM;
  • BAXI ECO 4S;
  • BAXI ECO FOUR;
  • BAXI ECO HOME;
  • BAXI ECO5 COMPACT;
  • BAXI NUVOLA 3 COMFORT;
  • BAXI LUNA 3;
  • BAXI MAIN 5;
  • BOSH 6000;
  • BUDERUS 012;
  • BUDERUS 072;
  • FEROLLI FORTUNA PRO;
  • IMMERGAS EOLO MYTHOS 24 4 R;
  • KOREASTAR:
  • MORA TOP SIRIUS;
  • VIESSMAN VITIDENS 100W;
  • VIESSMAN VITOPEND 100W;
  • ЛЕМАКС PRIME-V
SHERDES
Offline
Зарегистрирован: 20.08.2022

Здравствуйте. Что нужно приобрести для этого проекта кроме самой ESP8266? Или подключать к котлу просто ESP?

tsv_33
Offline
Зарегистрирован: 11.04.2019

Приветствую. Собственно, приобрести или сделать OpenTherm Adapter и саму прошивку. Можно тут почитать.https://tsv.my1.ru/

evgen2
Offline
Зарегистрирован: 04.03.2021

Добавлю пять копеек к предыдущему ответу https://github.com/Evgen2/SmartTherm

SHERDES
Offline
Зарегистрирован: 20.08.2022

Они продаются на али? Я не могу найти

tsv_33
Offline
Зарегистрирован: 11.04.2019

На али только ESP8266, плату ОТ_адаптера, шилда (модель котла уточнить) для ESP8266 в сборе и прошивку можно у меня 7694948@bk.ru.

tsv_33
Offline
Зарегистрирован: 11.04.2019

Полностью переписал код контроллера. Всю его работу перевёл в асинхронный режим. Собственно, то, с чего начинал эту тему более 3 лет назад и те проблемы с которыми сталкивался в процессе развития своего проекта, успешно решены.

allcaponne
Offline
Зарегистрирован: 07.12.2011

Здравствуйте.

Скажите пожалуйста, есть более оперативный вариант связи с Вами?

Телеграм или иной способ?

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

уже переходил на Blynk 2 IOT 

tsv_33
Offline
Зарегистрирован: 11.04.2019

Приветствую. Есть. WhatsApp, Telegram

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

tsv_33 пишет:

Приветствую. Есть. WhatsApp, Telegram

 

на мобильном(Андроид) я установил MQTT Broker app 

на компьютером MQTT Explorer 

на компьютером броузер 192.168.1.x - все ок 

1.а подскажите как  сделать  проброс 80 порта чтобы на прямою попасть в веб страницу контроллера из любой точки мира ?  или есть другой  способ  ? спасибо

2. а эти пина от ESP до котла ОТ ?

inPin   = 4; // 4 for ESP8266 (D2), 21 for ESP32
outPin = 5; // 5 for ESP8266 (D1), 22 for ESP32 

п.с  у меня нет "белый" IP адрес для управления !

 

tsv_33
Offline
Зарегистрирован: 11.04.2019

1. вот первый в поисковике, по запросу, как: https://club.dns-shop.ru/blog/t-282-tochki-dostupa/22654-probros-portov-...

2. inPin = 4; // 4 for ESP8266 (D2); outPin = 5; // 5 for ESP8266 (D1)

knt58dualtv
Offline
Зарегистрирован: 08.01.2019

tsv_33 пишет:

1. вот первый в поисковике, по запросу, как: https://club.dns-shop.ru/blog/t-282-tochki-dostupa/22654-probros-portov-...

2. inPin = 4; // 4 for ESP8266 (D2); outPin = 5; // 5 for ESP8266 (D1)


п.1 не будет работать

tsv_33
Offline
Зарегистрирован: 11.04.2019

Добавил в список электрокотлы с OpenTherm, ZOTA MK-S PLUS и BAXI AMPERA. Последняя актуальная версия прошивки 3.1.4.