Recent Changes - Search:

Главная страница

Проекты

Статьи

Домашний WiFi роутер

Архив проектов

Загрузки

GitHub

SourceForge

edit SideBar

ThermostatBRT100

Термостат для радиатора на базе MOES BRT100

Backlog

  • Перевести provisioning в режим без пина и ключа;
  • Как-то нужно получить значения температур: текущую, желаемую, минимальную и максимальную;
  • Установить время;
  • Временная зона - определить смещение;
  • Создать хранилище во внутреннем flash'е, стобы зранить все значения, которые мы можем получить от модуля.
  • Реализовать сервер для Generic Battery
  • Разобраться, как перевести модуль в спящий режим;
  • Проконтролировать, чтобы модуль не потреблял буольше 0.81мA (810мкА).
  • сброс сети: удерживать кнопку '-' 3 секунды

Описание оригинальной ZigBee конструкции

ZigBee модули

На данный момент известно о двух типах ZigBee модулей, которыми комплектуются термостаты BRT100: TYZS3 и ZT5.

Протокол TUYA

IDTypeОписание
0x1ENUMРежим: 0 - programming, 1 - manual, 2 - temporary manual, 3 - holiday
0x2VALUEЖелаемая температура (32) T = Val
0x3VALUEТекущая температура (230) T = (Val / 10)
0x4BOOLBoost heating [Rapid heating]
0x5VALUEBoost heating countdow (min)
0x7ENUMStatus: 0 - нагрев, 1 - пауза
0x8BOOLA2 Open Window Detection (bool: false - close, true - open) [Window check]
0x9ENUMWindow state: 0 - открыто, 1 - закрыто
0xEVALUEЗаряд батареи - проценты (0 - 100)
0xDBOOLБлокоровка (true - заблокировано, false - разблокировано) [Child lock]
0x65RAWHасписание: 12 записей размером 3 байта
0x67VALUEA7 Forced heating countdown [BoostTime]
0x68VALUEСтатус вентиля (степень открытия 0 - 100) [Valve_Ratio]
0x69VALUEA1 Temperature compensation (-9 ~ 9) [FillerTemp]
0x6ABOOLAA Energy saving mode [Eco_Mode]
0x6BVALUEAB Energy saving mode temperature [Eco_Temp]
0x6CVALUEA6 Max. temp [Upper SetTemp Limit]
0x6DVALUEA5 Min. temp [Lower SetTemp Limit]

Примечание: оказывается, не все параметры, изменяемые в конфигурационном меню, можно изменить удаленно.

Опции в настройках, которые нельзя изменить удаленно:

  • A3 - Open Window Detection threshold
  • A4 - The value of the valve closing time when the window is open.
  • A9 - Dead zone temperature (0.5 - 5.0)
  • AC - Low temperature protection (0-10)
  • AD - Standby screen brightness (0-9)
  • AE - Factory reset
  • AF - Version number (READ ONLY)

Формат расписания.

Расписание представляет собой массив, размером 36 байт и представляет собой набор из 12 элементов по 3 байта в каждом:

!Номер байтаОписание
0Часы: 0-23
1Минуты: 0-59
2Желаемая температура: T = Val / 2

Эти записи, в свою очередь, разделены на 3 группы: будние дни (понедельник - пятница), суббота и воскресенье. В каждой группе можно определить 4 временных интервала с желаемой температурой, например: ранее утро, утро, полдень, после полудня.

Номер байтаОписание
Понедельник-пятница
0 - 2Временной интервал 1 (ранее утро)
3 - 5Временной интервал 2 (утро)
6 - 8Временной интервал 3 (полдень)
9 - 11Временной интервал 4 (после полудня)
Суббота
12 - 14Временной интервал 1 (ранее утро)
15 - 17Временной интервал 2 (утро)
18 - 20Временной интервал 3 (полдень)
21 - 23Временной интервал 4 (после полудня)
Воскресенье
24 - 26Временной интервал 1 (ранее утро)
27 - 29Временной интервал 2 (утро)
30 - 32Временной интервал 3 (полдень)
33 - 35Временной интервал 4 (после полудня)

Описание Bluetooth Mesh модификации

Найденные проблемы

  • Невозможно вывести Pin-код для процедуры provisioning на переднюю панель устройства. Нет возможности даже мигать светодиодом. Очевидно, следует реализовать provisioning вообще без pin-кода, или генерировать его на основе какой-нибудь уникальной информации, вроде физического адреса Bluetooth модуля.
  • Нет возможности надежно получить полный список и значения всех объектов устройства. Устройство не реагирует на команды 06h и 28h. В конце-концов, термостат сам выдаст значения всех объектов, и будет сообщать об их изменении, но быть уверенным, что это произойдет в нужный момент мы не можем. Поэтому, нужно сохранять значения в persistent хранилище, чтобы можно было их получить в любой момент времени.
  • Странно реализована индикация подключения к сети. Устройство реагирует на команду 02h только в короткий момент после сброса (команда 01h от модуля). Вернее, отвечает оно на эту команду всегда, но значок соединения повляется только сразу после сброса. Потом значок гаснет и больше не загорается никогда.

Распиновка Bluetooth модуля

ВыводОписание
GPIO13UART RX
GPIO24UART TX
GPIO0MCU Wakeup
GPIO3Module Wakeup
Edit - History - Print - Recent Changes - Search
Page last modified on April 23, 2025, at 07:43 am