Поскольку основная тема по проблемам с opentherm модулем были автоматически закрыта (совершенно не понимаю этот принцип… и почему именно семь дней? похоже на какой-то мистический карго-культ: как будто проблема исчезнет, если закрыть тему, в которой она обсуждается…), а две других так и ждут ответа от @Vladimir_Nev_Sup аж с 18 апреля (т.е. уже более полугода!) - открою новую, где и отвечу @BrainRoot, @Vladimir_Nev_Sup, а также @Shurup, @HighTower @Alex_Jet и всем остальным, страдающим пользователям модуля opentherm от невотона, разом.
Итак, что касается “моего пути с модулями невотон”, то благодаря любезности сотрудников Wirenboard, которые заменили мой модуль WBE2-I-OPENTHERM, по гарантии, на новый, мне удалось избежать геморроя с самостоятельной перепрошивкой (вариант: с пересылкой модуля для прошивки в другой город), и мне в руки попал модуль с прошивкой аж версии 1.5. Увы, но в результате получилось по Илье Ильфу: радио есть, а счастья - нет.
Не знаю, что именно изменилось в прошивке этой версии (до этого, у меня не работала версия 1.3, на сайте nevoton.ru, раздела истории версий для их модуля нет вообще, а на сайте wirenboard.com история заканчивается версией 1.4.1), но никаких изменений в поведении контроллера с моим котлом (BAXI Ecofour 1.24F) я не заметил вообще. Он всё также переходит в режим OFF при попытке чтения ячейки 0 при использовании команд “прямого обмена”, и вообще спонтанно “глючит”, как это и было раньше, и описано мной в темах WBE2-I-OPENTHERM проблема 1 WBE2-I-OPENTHERM проблема 2 WBE2-I-OPENTHERM проблема 3 и подтверждено несколькими другими пользователями злосчастного модуля на этом форуме.
В том числе и поэтому, мне приходится констатировать, что ссылка на “список протестированных моделей котлов”, которую дал в теме WBE2-I-OPENTHERM проблема 1 - #57 от пользователя BrainRoot @BrainRoot - бесполезна, ибо мой котёл в списке “протестированных” есть, а нормально работать с модулем невотона он не хочет. Кто именно и как проводил тестирование - я не знаю, но ко мне (как человеку, заведомо имевшему проблемы с предыдущей версией прошивки) для подтверждения работоспособности новой версии никто не обращался. Почему-то мне кажется, что и к другим несчастным пользователям сего модуля, которые поднимали соответствующие вопросы на этом форуме – тоже…
Так как откровенно совковый сервис Мособлгаза (который уже почти как год назад обещал газифицировать мой дом, и с тех пор постоянно динамит свои обещания), наконец, после многочисленных обращений и жалоб, начал шевелиться, и пуск газа из категории влажных мечт всё-таки переходит в категорию вероятного будущего, а работоспособного решения управления моим газовым котлом на базе WirenBoard я так и не имею, я понял, что и с невотоновским модулем ситуация сама собой не изменится.
Соответственно, мне пришлось самому наколхозить из игрушечного осциллографа DSO203 подобие логического анализатора, и дописать к софту логического анализа данных sigrok модуль декодирования протокола OpenTherm. С помощью этих, изготовленных из подручных материалов, приборов мне удалось документально зафиксировать по крайней мере два бага в прошивках модуля opentherm от невотона, версий вплоть до 1.5:
- Некорректный отсчёт временных интервалов манчестерского кодирования
- Ошибка работы с пользовательским значением ячейки статуса.
Проблема номер 1 выглядит (в PulseView с моим opentherm decoder) вот так:
Согласно спецификации OpenTherm 2.2, допустимое отклонение длительности периода импульса в меньшую сторону – 100мкс, в большую – 150мкс. Тут на лицо отклонение 210мкс в большую сторону, что в спецификацию совершенно не укладывается.
Проблема номер 2 выглядит (в выводе sigrock-cli с моим opentherm decoder) вот так:
3635110- 3652043 ( 7.270- 7.304) opentherm-1: Frame M2S READ-DATA(0) 127/0x7f 0/0x0
3691068- 3708176 ( 7.382- 7.416) opentherm-2: Frame S2M UNKNOWN-DATAID(7) 127/0x7f 0/0x0
4087379- 4104311 ( 8.175- 8.209) opentherm-1: Frame M2S READ-DATA(0) 0/0x0 4902/0x1326
4143050- 4160155 ( 8.286- 8.320) opentherm-2: Frame S2M READ-ACK(4) 0/0x0 2/0x2
4539640- 4556573 ( 9.079- 9.113) opentherm-1: Frame M2S READ-DATA(0) 0/0x0 2/0x2
4595276- 4612384 ( 9.191- 9.225) opentherm-2: Frame S2M READ-ACK(4) 0/0x0 2/0x2
4992250- 5009182 ( 9.985- 10.018) opentherm-1: Frame M2S READ-DATA(0) 5/0x5 0/0x0
5047283- 5064392 ( 10.095- 10.129) opentherm-2: Frame S2M READ-ACK(4) 5/0x5 0/0x0
Тут тоже требуется пояснение. Я читаю ячейку 0 котла, передавая в команду чтения значение 4902 (или 1326 в шестнадцатеричной системе), что соответствует дефолтному значению, как про это писал @Vladimir_Nev_Sup ( тут WBE2-I-OPENTHERM проблема 1 - #44 от пользователя Vladimir_Nev_Sup ) и как я вижу по протоколу обмена. Однако в дальнейшем, при циклическом опросе, модуль использует при опросе не переданное мной значение (4902), как можно было бы предположить из упомянутого выше ответа @Vladimir_Nev_Sup (который, увы, как обычно, не ответил на уточняющий вопрос), а значение, считанное из соответствующей ячейки котла (2), которое, при передаче его в команду чтения, собственно и приводит к выключению котла, согласно формату данных обмена, по спецификации.
Есть и ещё всякие мелочи… Например, по спецификации, в случае ошибки обмена, мастер должен посылать команду повторно, а модуль невотона тупо пробегает всю свою последовательность обмена, не реагируя на ошибки обмена (в том числе, постоянно пытаясь считать ячейки, на которые котёл отвечает, что их не поддерживает (в моём случае, это ячейки 18, 27, 126 и 127))
Итого:
- Настоятельно прошу @Vladimir_Nev_Sup исправить найденные мной ошибки, самостоятельно (и тщательно!) протестировать исправленную версию, и опубликовать тут результаты (были ли, по факту, найдены ошибки, результаты выполнения которых я тут привёл, и в какой версии firmware модуля они исправлены).
- Связанная с этим просьба к @BrainRoot – исключить из списка протестированных как минимум мою модель котла (BAXI Ecofour 1.24F), а, по-хорошему, и модели котлов всех других пользователей, которые жаловались на проблемы с модулем WBE2-I-OPENTHERM, до подтверждения исправления ситуации со стороны упомянутых пользователей.
- Рассчитываю, что WirenBoard и Невотон договорятся, и организуют бесплатную замену или перепрошивку модулей WBE2-I-OPENTHERM для всех пользователей, которых затронули обсуждаемые проблемы.