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

Материал из Wiren Board
м (Исправил подпись под изображением.)
м (Унифицировал описание с нашими продуктами)
Строка 1: Строка 1:
{{DISPLAYTITLE: Термостат BAC-6000 Series}}
{{DISPLAYTITLE: Термостат BAC-6000 Series}}
[[Image: BAC-6000 Series.png|300px|thumb|right| Термостат BAC-6000 Series, черный]]
[[Image: BAC-6000 Series.png|300px|thumb|right| Термостат BAC-6000 Series, белый]]
== Работа по Modbus ==
Термостатом можно управлять по протоколу [[Протокол_Modbus|Modbus RTU]]. На физическом уровне он подключается через интерфейс [[RS-485]].


Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]], использовать [[Working with WB devices without a controller|приложение для компьютера на ОС Windows]] или из веб-интерфейса контроллера Wiren Board.
== Представление в веб-интерфейсе ==
 
[[Image: Devices View BAC-6000 Series.png |300px|thumb|right| Представление BAC-6000 Series в веб-интерфейсе]]
В этой статье мы будем использовать утилиту <code>modbus_client</code>, а подключаться к контроллеру через [[SSH]]. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].
[[Image: BAC-6000 Series, Connecting to the web interface.png |300px|thumb|right| Выбор шаблона и установка параметров подключения в WebUI 2.0]]


== Подготовка к работе ==
Для отображения устройства в веб-интерфейсе контроллера Wiren Board вам нужно добавить новое serial-устройство и выбрать шаблон '''BAC-6000 Series'''.
{{Wbincludes:Modbus: Preparing for work}}


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


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


=== Установка параметров подключения ===
=== Параметры порта ===
Вы можете перед началом работы с термостатом назначить ему modbus-адрес, но параметры подключения изменить нельзя.
По умолчанию устройство имеет настройки:
* Baud rate — 9600 бит/с,  
* Parity — None,
* Data bits — 8,
* Stop bits — 1.


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


У всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость 9600 бит/с, Четность — None, Бит — 2. Поэтому для использования термостата на одной линии с ними, в устройствах Wiren Board нужно установить параметр <code>Бит = 1</code>.
=== Modbus-адрес ===
По умолчанию в термостате задан modbus-адрес 1,  


'''Modbus-адрес''' термостата устанавливается из сервисного меню и не может быть изменен через RS-485. Настройка делается нажатием кнопок на корпусе термостата:
Изменить modbus-адрес можно из сервисного меню. Настройка делается нажатием кнопок на корпусе термостата:
# Выключите термостат нажатием на кнопку <code>ON/OFF</code>.
# Выключите термостат нажатием на кнопку <code>ON/OFF</code>.
# Зажмите одновременно кнопки <code>M</code> и <code>Fan</code> на 5 секунд — термостат войдет в сервисный режим.
# Зажмите одновременно кнопки <code>M</code> и <code>Fan</code> на 5 секунд — термостат войдет в сервисный режим.
Строка 33: Строка 36:
Теперь вы можете подключиться к термостату по-новому modbus-адресу.
Теперь вы можете подключиться к термостату по-новому modbus-адресу.


=== Общий алгоритм настройки ===
=== Карта регистров ===
# Ищете адрес регистра и функцию записи.
Таблица регистров термостата BAC-6000ALN. Значения температуры при чтении нужно умножить на <code>0.5</code>, а при записи разделить.
# Смотрите возможные значения.
# Записываете в регистр значение, которое попадает в диапазон возможных.
 
=== Блокировка кнопок ===


Мы хотим заблокировать физические кнопки на термостате:
{|class="wikitable sortable" style="text-align:center;"
# Состояние блокировки хранится в регистре '''Lock buttons''' с адресом <code>0x06</code>. Функция записи — <code>0x06</code>.
! Регистр/ адрес
# Возможные значения: 0 — Unlock, 1 — Lock.
! '''Тип'''
# Теперь запишите значение '''1''' в регистр '''Lock buttons''':
! Чтение/ запись
#:<syntaxhighlight lang="bash">
! '''Формат'''
~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x05 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[03][06][00][05][00][01][59][E9]
Waiting for a confirmation...
<03><06><00><05><00><01><59><E9>
SUCCESS: written 1 elements!
</syntaxhighlight>
 
Кнопки термостата заблокированы. Для разблокировки запишите в регистр '''Lock buttons''' значение 0 — Unlock.
 
===Чтение и запись значений температуры===
Значение температуры нужно конвертировать перед записью или после чтения.
 
Прочитаем значение текущей уставки из регистра '''Set temperature''', 0x04 — получим:
<syntaxhighlight lang="bash">
~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x03 -r0x04
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[03][03][00][04][00][01][C4][29]
Waiting for a confirmation...
<03><03><02><00><32><40><51>
SUCCESS: read 1 of elements:
        Data: 0x0032
</syntaxhighlight>
 
В документации к термостату указан '''коэффициент конвертации — 0.5'''. Это значит, что при чтении мы должны умножить полученное значение на коэффициент, а при записи разделить.
 
Нами было считано значение <code>0x0032</code> — это число 50, умножим его на коэффициент: <code>50 × 0.5 = 25 °С</code>
 
Теперь запишем в регистр значение 12°C: <code>12 / 0.5 = 24</code>:
<syntaxhighlight lang="bash">
~#  modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x04 24
Data to write: 0x18
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[03][06][00][04][00][18][C9][E3]
Waiting for a confirmation...
<03><06><00><04><00><18><C9><E3>
SUCCESS: written 1 elements!
</syntaxhighlight>
 
== Настройка для работы с ПО ==
[[Image: Devices View BAC-6000 Series.png |300px|thumb|right| Представление BAC-6000 Series в веб-интерфейсе]]
 
Перед настройкой термостата в веб-интерфейсе, установите в нем [[#Установка параметров подключения | параметры подключения]].
 
=== Шаблон устройства ===
'''ВНИМАНИЕ:''' шаблон пока не включен в поставку [[Драйвер wb-mqtt-serial|wb-mqtt-serial]], поэтому вам нужно самостоятельно сохранить шаблон в файл и загрузить на контроллер в папку <code>/usr/share/wb-mqtt-serial/templates</code>.
 
Шаблон <code>config-bac-6000-series.json</code>:
<syntaxhighlight lang="json">
{
"device_type": "BAC-6000 Series",
"device": {
  "name": "BAC-6000 Series",
  "id": "bac-6000-series",
  "channels": [
    {
    "name": "Lock buttons",
    "reg_type": "holding",
    "address": "0x05",
    "type": "wo-switch",
    "format": "s16"
  },
  {
    "name": "Room temperature",
    "reg_type": "holding",
    "address": "0x03",
    "type": "temperature",
    "format": "s16",
    "scale": 0.5
  },
  {
    "name": "Fan Speed: 0 — Auto",
    "reg_type": "holding",
    "address": "0x01",
    "type": "range",
    "format": "s16",
    "max": 3
  },
  {
    "name": "Set Mode",
    "reg_type": "holding",
    "address": "0x02",
    "type": "range",
    "format": "s16",
    "max": 2
  },
  {
    "name": "Set temperature [10 ­… 30]",
    "reg_type": "holding",
    "address": "0x04",
    "type": "range",
    "format": "s16",
    "scale": 0.5,
    "max": 30
  }
  ]
}
}
</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''' выберите '''BAC-6000 Series''', где N — порядковый номер устройства.
# В поле '''Slave id''' укажите modbus-адрес термостата.
# Сохраните настройки нажатием на кнопку '''Save'''.
 
Теперь устройство будет доступно на вкладке '''Devices'''.
 
Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]].
 
== Таблица modbus-регистров==
Таблица регистров термостата BAC-6000ALN.
 
{|class="wikitable sortable"
! Назначение
! Назначение
! Длина, байт
! Адрес, Hex
! Функция чтения
! Функция записи
! Возможные значения
|-
|-
| Power
| 0
| 1
| holding
| 0x00
| RW
| 0x03
| 0x005a ­- 0x00a5
| 0x06
| style="text-align:left;" | Power <br> 0x005a — OFF, 0x00a5 — ON
| 0x005a — OFF, 0x00a5 — ON
|-
|-
| Fan Speed
| 1
| 1
| 0x01
| holding
| 0x03
| RW
| 0x06
| u16
| 0 — Auto, 1 — Hign, 2 — Mid, 3 — Low
| style="text-align:left;" | Fan Speed <br> 0 — Auto, 1 — Hign, 2 — Mid, 3 — Low
|-
|-
| Set Mode
| 2
| 1
| holding
| 0x02
| RW
| 0x03
| 0 ­- 1
| 0x06
| style="text-align:left;" | Set Mode <br> 0 — Cooling, 1 — Heating, 2 — Ventilation
| 0 — Cooling, 1 — Heating, 2 — Ventilation
|-
|-
| Room temperature
| 3
| 1
| holding
| 0x03
| R
| 0x03
| 0 ­- 1
| -
| style="text-align:left;" | Room temperature
| -
|-
|-
| Set temperature
| 4
| 1
| holding
| 0x04
| RW
| 0x03
| u16
| 0x06
| style="text-align:left;" | Set temperature<br>10…30
| 10…30
|-
|-
| Lock buttons
| 5
| 1
| holding
| 0x05
| RW
| 0x03
| 0 ­- 1
| 0x06
| style="text-align:left;" | Lock buttons<br>0 — Unlock, 1 — Lock
| 0 — Unlock, 1 — Lock
|}
|}


== Документация ==
== Ссылки на документацию ==
[https://aliexpress.ru/item/1005001730852715.html Описание термостата на Aliexpress]
[https://aliexpress.ru/item/1005001730852715.html Описание термостата на Aliexpress]

Версия 20:09, 21 января 2021

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

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

Представление BAC-6000 Series в веб-интерфейсе
Выбор шаблона и установка параметров подключения в WebUI 2.0

Для отображения устройства в веб-интерфейсе контроллера Wiren Board вам нужно добавить новое serial-устройство и выбрать шаблон BAC-6000 Series.

Смотрите также:

Параметры подключения

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

Параметры порта

По умолчанию устройство имеет настройки:

  • Baud rate — 9600 бит/с,
  • Parity — None,
  • Data bits — 8,
  • Stop bits — 1.

Производитель не предоставил возможности их изменять.

Modbus-адрес

По умолчанию в термостате задан modbus-адрес — 1,

Изменить modbus-адрес можно из сервисного меню. Настройка делается нажатием кнопок на корпусе термостата:

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

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

Карта регистров

Таблица регистров термостата BAC-6000ALN. Значения температуры при чтении нужно умножить на 0.5, а при записи разделить.

Регистр/ адрес Тип Чтение/ запись Формат Назначение
0 holding RW 0x005a ­- 0x00a5 Power
0x005a — OFF, 0x00a5 — ON
1 holding RW u16 Fan Speed
0 — Auto, 1 — Hign, 2 — Mid, 3 — Low
2 holding RW 0 ­- 1 Set Mode
0 — Cooling, 1 — Heating, 2 — Ventilation
3 holding R 0 ­- 1 Room temperature
4 holding RW u16 Set temperature
10…30
5 holding RW 0 ­- 1 Lock buttons
0 — Unlock, 1 — Lock

Ссылки на документацию

Описание термостата на Aliexpress