BHT-6000 Series: различия между версиями

Материал из Wiren Board
м (→‎Установка параметров подключения: Ссылка на изменение modbus-адреса.)
м (Добавил перекрестных ссылок и уточнения — так лучше.)
Строка 10: Строка 10:
== Подготовка к работе ==
== Подготовка к работе ==
{{Wbincludes:Modbus: Preparing for work}}
{{Wbincludes:Modbus: Preparing for work}}
== Настройка для работы с ПО ==
[[Image: Devices View BHT-6000 Series.png |300px|thumb|right| Представление BHT-6000 Series в веб-интерфейсе]]
=== Установка параметров подключения ===
Вы можете перед началом работы с термостатом назначить ему [[#Установка modbus-адреса | modbus-адрес]], но параметры подключения изменить нельзя.
По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 9600 бит/с, Четность — Even, Бит — 1.
Так как у всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, Бит — 2, то мы не сможем использовать термостат на одной линии с ними без перенастройки устройств Wiren Board.
=== Шаблон устройства ===
'''ВНИМАНИЕ:''' шаблон пока не включен в поставку [[Драйвер wb-mqtt-serial|wb-mqtt-serial]], поэтому вам нужно самостоятельно скопировать шаблон на контроллер в папку <code>/usr/share/wb-mqtt-serial/templates</code>.
Шаблон <code>config-bht-6000-series.json</code>:
<syntaxhighlight lang="json">
{
"device_type": "BHT-6000 Series",
"device": {
  "name": "BHT-6000 Series",
  "id": "bht-6000-series",
  "channels": [
  {
    "name": "Power",
    "reg_type": "holding",
    "address": "0x00",
    "type": "switch",
    "format": "s16"
  },
  {
    "name": "Lock buttons",
    "reg_type": "holding",
    "address": "0x06",
    "type": "wo-switch",
    "format": "s16"
  },
  {
    "name": "Temperature for internal sensor",
    "reg_type": "holding",
    "address": "0x01",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
  },
  {
    "name": "Weekly program setting temperature",
    "reg_type": "holding",
    "address": "0x05",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
  },
  {
    "name": "Heating status",
    "reg_type": "holding",
    "address": "0x03",
    "type": "switch",
    "format": "s16",
    "readonly": true
  },
  {
    "name": "Manual mode",
    "reg_type": "holding",
    "address": "0x02",
    "type": "switch",
    "format": "s16"
  },
  {
    "name": "Setting temperature",
    "reg_type": "holding",
    "address": "0x04",
    "type": "range",
    "format": "s16",
    "scale": 0.1,
    "max": 35
  }
  ]
}
}
</syntaxhighlight>
После копирования шаблона на контроллер перезапустите службу <code>wb-mqtt-serial</code>:
<syntaxhighlight lang="bash">
service wb-mqtt-serial restart
</syntaxhighlight>
Теперь выберите шаблон термостата в разделе '''Serial Device Driver Configuration''' веб-интерфейса:
# Откройте веб-интерфейс и перейдите '''Configs''' → '''Serial Device Driver Configuration'''.
# Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 1.
# Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''BHT-6000 Series''', где N — порядковый номер устройства.
# В поле '''Slave id''' укажите modbus-адрес термостата.
# Сохраните настройки нажатием на кнопку '''Save'''.
Теперь устройство будет доступно на вкладке '''Devices'''.
Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]].


== Изменение настроек термостата ==
== Изменение настроек термостата ==
Все настройки, доступные для изменения через RS-485 выведены в веб-интерфейс, но вы можете изменять их и из командной строки. Для этого нужно записать требуемые значения в [[#Таблица modbus-регистров | регистры термостата]].
Все настройки, доступные для изменения через RS-485 выведены в [[#Настройка для работы с ПО | веб-интерфейс]], но вы можете их изменять из командной строки с помощью утилиты <code>modbus_client</code>. Для этого нужно записать значения в [[#Таблица modbus-регистров | регистры термостата]]. Если вы никогда не использовали утилиту <code>modbus_client</code>, смотрите раздел [[#Подготовка к работе | Подготовка к работе]].


В примерах термостат подключен к интерфейсу <code>/dev/ttyRS485-1</code>, имеет настройки интерфейса <code>9600/None/1/8</code> и доступен по адресу <code>2</code>.
В примерах термостат подключен к интерфейсу <code>/dev/ttyRS485-1</code>, имеет настройки интерфейса <code>9600/None/1/8</code> и доступен по адресу <code>2</code>.


=== Установка modbus-адреса ===
=== Установка modbus-адреса ===
Modbus-адрес термостата устанавливается из сервисного меню и не может быть изменен через RS-485:
Modbus-адрес термостата устанавливается из сервисного меню и не может быть изменен через RS-485. Настройка делается нажатием кнопок на корпусе термостата:
# Выключите термостат нажатием на кнопку <code>ON/OFF</code>.
# Выключите термостат нажатием на кнопку <code>ON/OFF</code>.
# Зажмите одновременно кнопки <code>M</code> и <code>Clock</code> на 5 секунд — термостат войдет в сервисный режим.
# Зажмите одновременно кнопки <code>M</code> и <code>Clock</code> на 5 секунд — термостат войдет в сервисный режим.
Строка 233: Строка 137:
| 0 — Unlock, 1 — Lock
| 0 — Unlock, 1 — Lock
|}
|}
== Настройка для работы с ПО ==
[[Image: Devices View BHT-6000 Series.png |300px|thumb|right| Представление BHT-6000 Series в веб-интерфейсе]]
=== Установка параметров подключения ===
Вы можете перед началом работы с термостатом назначить ему [[#Установка modbus-адреса | modbus-адрес]], но параметры подключения изменить нельзя.
По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 9600 бит/с, Четность — Even, Бит — 1.
Так как у всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, Бит — 2, то мы не сможем использовать термостат на одной линии с ними без перенастройки устройств Wiren Board.
=== Шаблон устройства ===
'''ВНИМАНИЕ:''' шаблон пока не включен в поставку [[Драйвер wb-mqtt-serial|wb-mqtt-serial]], поэтому вам нужно самостоятельно скопировать шаблон на контроллер в папку <code>/usr/share/wb-mqtt-serial/templates</code>.
Шаблон <code>config-bht-6000-series.json</code>:
<syntaxhighlight lang="json">
{
"device_type": "BHT-6000 Series",
"device": {
  "name": "BHT-6000 Series",
  "id": "bht-6000-series",
  "channels": [
  {
    "name": "Power",
    "reg_type": "holding",
    "address": "0x00",
    "type": "switch",
    "format": "s16"
  },
  {
    "name": "Lock buttons",
    "reg_type": "holding",
    "address": "0x06",
    "type": "wo-switch",
    "format": "s16"
  },
  {
    "name": "Temperature for internal sensor",
    "reg_type": "holding",
    "address": "0x01",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
  },
  {
    "name": "Weekly program setting temperature",
    "reg_type": "holding",
    "address": "0x05",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
  },
  {
    "name": "Heating status",
    "reg_type": "holding",
    "address": "0x03",
    "type": "switch",
    "format": "s16",
    "readonly": true
  },
  {
    "name": "Manual mode",
    "reg_type": "holding",
    "address": "0x02",
    "type": "switch",
    "format": "s16"
  },
  {
    "name": "Setting temperature",
    "reg_type": "holding",
    "address": "0x04",
    "type": "range",
    "format": "s16",
    "scale": 0.1,
    "max": 35
  }
  ]
}
}
</syntaxhighlight>
После копирования шаблона на контроллер перезапустите службу <code>wb-mqtt-serial</code>:
<syntaxhighlight lang="bash">
service wb-mqtt-serial restart
</syntaxhighlight>
Теперь выберите шаблон термостата в разделе '''Serial Device Driver Configuration''' веб-интерфейса:
# Откройте веб-интерфейс и перейдите '''Configs''' → '''Serial Device Driver Configuration'''.
# Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 1.
# Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''BHT-6000 Series''', где N — порядковый номер устройства.
# В поле '''Slave id''' укажите modbus-адрес термостата.
# Сохраните настройки нажатием на кнопку '''Save'''.
Теперь устройство будет доступно на вкладке '''Devices'''.
Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]].


== Документация ==
== Документация ==
[https://www.manualslib.com/manual/1420786/Welquic-Bht-6000-Series.html Описание термостата и руководство по настройке]
[https://www.manualslib.com/manual/1420786/Welquic-Bht-6000-Series.html Описание термостата и руководство по настройке]

Версия 10:23, 14 января 2021

Термостат BHT-6000 Series, белый

Работа по Modbus

Термостатом можно управлять по протоколу Modbus RTU. На физическом уровне он подключается через интерфейс RS-485.

Настраивать термостат можно с помощью утилиты modbus_client, использовать приложение для компьютера на ОС Windows или из веб-интерфейса контроллера Wiren Board.

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

Подготовка к работе

Wbincludes:Modbus: Preparing for work

Изменение настроек термостата

Все настройки, доступные для изменения через RS-485 выведены в веб-интерфейс, но вы можете их изменять из командной строки с помощью утилиты modbus_client. Для этого нужно записать значения в регистры термостата. Если вы никогда не использовали утилиту modbus_client, смотрите раздел Подготовка к работе.

В примерах термостат подключен к интерфейсу /dev/ttyRS485-1, имеет настройки интерфейса 9600/None/1/8 и доступен по адресу 2.

Установка modbus-адреса

Modbus-адрес термостата устанавливается из сервисного меню и не может быть изменен через RS-485. Настройка делается нажатием кнопок на корпусе термостата:

  1. Выключите термостат нажатием на кнопку ON/OFF.
  2. Зажмите одновременно кнопки M и Clock на 5 секунд — термостат войдет в сервисный режим.
  3. Кратким нажатием на кнопку M выберите параметр C.
  4. Кнопками вверх ↑ и вниз ↓ установите новый адрес термостата.
  5. После установки адреса подождите 5 секунд, термостат применит новые настройки и выйдет из сервисного режима.
  6. Включите термостат нажатием на кнопку ON/OFF.

Теперь вы можете подключиться к термостату по-новому modbus-адресу.

Общий алгоритм настройки

  1. Ищете адрес регистра и функцию записи.
  2. Смотрите возможные значения.
  3. Записываете в регистр значение, которое попадает в диапазон возможных.

Блокировка кнопок

Мы хотим заблокировать все физические кнопки на термостате:

  1. Состояние блокировки хранится в регистре Lock buttons с адресом 0x06. Функция записи — 0x06.
  2. Возможные значения: 0 — Unlock, 1 — Lock.
  3. Теперь запишите значение 1 в регистр Lock buttons:
    ~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x06 1
    Data to write: 0x1
    Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
    [02][06][00][06][00][01][A8][38]
    Waiting for a confirmation...
    <02><06><00><06><00><01><A8><38>
    SUCCESS: written 1 elements!
    

Кнопки термостата заблокированы. Для разблокировки запишите в регистр Lock buttons значение 0 — Unlock.

Чтение и запись значений температуры

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

Прочитаем значение текущей уставки из регистра Setting temperature, 0x04 — получим:

~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x03 -r0x04
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[02][03][00][04][00][01][C5][F8]
Waiting for a confirmation...
<02><03><02><01><2C><FC><09>
SUCCESS: read 1 of elements:
        Data: 0x012c

В документации к термостату указан коэффициент конвертации — 0.1. Это значит, что при чтении мы должны умножить полученное значение на коэффициент, а при записи разделить.

Нами было считано значение 0x012с — это число 300, умножим его на коэффициент: 300 × 0.1 = 30 °С

Теперь запишем в регистр значение 12°C: 12 / 0.1 = 120:

~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x04 120
Data to write: 0x78
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[02][06][00][04][00][78][C8][1A]
Waiting for a confirmation...
<02><06><00><04><00><78><C8><1A>
SUCCESS: written 1 elements!

Таблица modbus-регистров

Назначение Длина, байт Адрес, Hex Функция чтения Функция записи Возможные значения
Power 1 0x00 0x03 0x06 0 — OFF, 1 — ON
Temperature for internal sensor 1 0x01 0x03 0x06 5…45
Manual mode 1 0x02 0x03 0x06 0 — Auto, 1 — Manual
Heating status 1 0x03 0x03 - 0 — Not heating, 1 — Heating
Setting temperature 1 0x04 0x03 0x06 5…45
Weekly program setting temperature 1 0x05 0x03 0x06 5…45
Lock buttons 1 0x06 0x03 0x06 0 — Unlock, 1 — Lock

Настройка для работы с ПО

Представление BHT-6000 Series в веб-интерфейсе

Установка параметров подключения

Вы можете перед началом работы с термостатом назначить ему modbus-адрес, но параметры подключения изменить нельзя.

По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 9600 бит/с, Четность — Even, Бит — 1.

Так как у всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, Бит — 2, то мы не сможем использовать термостат на одной линии с ними без перенастройки устройств Wiren Board.

Шаблон устройства

ВНИМАНИЕ: шаблон пока не включен в поставку wb-mqtt-serial, поэтому вам нужно самостоятельно скопировать шаблон на контроллер в папку /usr/share/wb-mqtt-serial/templates.

Шаблон config-bht-6000-series.json:

{
 "device_type": "BHT-6000 Series",
 "device": {
  "name": "BHT-6000 Series",
  "id": "bht-6000-series", 
  "channels": [
   {
    "name": "Power",
    "reg_type": "holding",
    "address": "0x00",
    "type": "switch",
    "format": "s16"
   },
   {
    "name": "Lock buttons",
    "reg_type": "holding",
    "address": "0x06",
    "type": "wo-switch",
    "format": "s16"
   },
   {
    "name": "Temperature for internal sensor",
    "reg_type": "holding",
    "address": "0x01",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
   },
   {
    "name": "Weekly program setting temperature",
    "reg_type": "holding",
    "address": "0x05",
    "type": "temperature",
    "format": "s16",
    "scale": 0.1
   },
   {
    "name": "Heating status",
    "reg_type": "holding",
    "address": "0x03",
    "type": "switch",
    "format": "s16",
    "readonly": true
   },
   {
    "name": "Manual mode",
    "reg_type": "holding",
    "address": "0x02",
    "type": "switch",
    "format": "s16"
   },
   {
    "name": "Setting temperature",
    "reg_type": "holding",
    "address": "0x04",
    "type": "range",
    "format": "s16",
    "scale": 0.1,
    "max": 35
   }
  ]
 }
}

После копирования шаблона на контроллер перезапустите службу wb-mqtt-serial:

service wb-mqtt-serial restart

Теперь выберите шаблон термостата в разделе Serial Device Driver Configuration веб-интерфейса:

  1. Откройте веб-интерфейс и перейдите ConfigsSerial Device Driver Configuration.
  2. Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 1.
  3. Нажмите на кнопку + Device и в поле Device N выберите BHT-6000 Series, где N — порядковый номер устройства.
  4. В поле Slave id укажите modbus-адрес термостата.
  5. Сохраните настройки нажатием на кнопку Save.

Теперь устройство будет доступно на вкладке Devices.

Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье Драйвер wb-mqtt-serial.

Документация

Описание термостата и руководство по настройке