Siemens RDF302: различия между версиями
м (→Настройка) |
м (→Изменение настроек термостата: Добавил примеры) |
||
Строка 73: | Строка 73: | ||
=== Изменение настроек термостата === | === Изменение настроек термостата === | ||
Часть важных настроек вынесена в веб-интерфейс, но на этапе пусконаладки может потребоваться изменить конфигурацию входов или изменить режим работы. | |||
Это можно сделать через запись нужных значений в [[#Таблицы modbus-регистров | регистры термостата]]. | |||
==== Алгоритм настройки ==== | |||
# Ищете адрес регистра, функцию записи. | |||
# Смотрите возможные значения. | |||
# Записываете в регистр значение, которое попадает в диапазон возможных. | |||
==== Блокировка кнопок ==== | |||
Мы хотим заблокировать все физические кнопки на термостате: | |||
# Состояние блокировки хранится в регистре '''Button lock command''' с адресом <code>0x006B</code>. Функция записи — <code>0x06</code>. | |||
# Возможные значения: число от ноля до четырех. Мы хотим заблокировать все кнопки: 4 — Lock all buttons. | |||
# Теперь запишите нужное значение в регистр '''Button lock command''': | |||
#:<syntaxhighlight lang="bash"> | |||
~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x006B 4 | |||
Data to write: 0x4 | |||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | |||
[01][06][00][6B][00][04][F9][D5] | |||
Waiting for a confirmation... | |||
<01><06><00><6B><00><04><F9><D5> | |||
SUCCESS: written 1 elements! | |||
</syntaxhighlight> | |||
Кнопки термостата заблокированы. Для разблокировки запишите в регистр '''Button lock command''' значение 0 — Unlock. | |||
====Управление вентилятором в ручном режиме==== | |||
Теперь переключим вентилятор в ручной режим и установим среднюю скорость вращения: | |||
# Значение режима вентилятора хранится в регистре '''Fan command value''' с адресом <code>0x0065</code>. Функция записи — <code>0x06</code>. | |||
# Возможные значения: 0 — Auto, 33 — Low Fan, 66 — Mid Fan, 100 — High Fan. | |||
# Теперь запишите нужное значение в регистр '''Fan command value''': | |||
#:<syntaxhighlight lang="bash"> | |||
~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x0065 66 | |||
Data to write: 0x42 | |||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | |||
[01][06][00][65][00][42][19][E4] | |||
Waiting for a confirmation... | |||
<01><06><00><65><00><42><19><E4> | |||
SUCCESS: written 1 elements! | |||
</syntaxhighlight> | |||
Вентилятор будет вращаться со средней скоростью. Чтобы вернуть вентилятор в автоматический режим, запишите в регистр '''Fan command value''' значение 0 — Auto. | |||
====Чтение и запись значений температуры==== | |||
Значение температуры нужно конвертировать перед записью или после чтения. | |||
Если мы прочитаем значение текущей уставки из регистра Room Temperature: Comfort setpoint, 0x0066 — получим: | |||
<syntaxhighlight lang="bash"> | |||
~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x03 -r0x0066 | |||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | |||
[01][03][00][66][00][01][64][15] | |||
Waiting for a confirmation... | |||
<01><03><02><04><1A><3B><4F> | |||
SUCCESS: read 1 of elements: | |||
Data: 0x03b6 | |||
</syntaxhighlight> | |||
0x03b6 — это число 950. Посмотрев этот параметр на самом термостате видим, что там указано 19°С. Вычисляем коэффициент: <code>19 / 950 = 0.02</code>. Это значит, что при записи нам нужно разделить число на наш коэффициент, а при чтении умножить. Запишем в регистр значение 12°C: <code>12 / 0.02 = 600</code>: | |||
<syntaxhighlight lang="bash"> | |||
:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x0066 600 | |||
Data to write: 0x258 | |||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | |||
[01][06][00][66][02][58][69][4F] | |||
Waiting for a confirmation... | |||
<01><06><00><66><02><58><69><4F> | |||
SUCCESS: written 1 elements! | |||
</syntaxhighlight> | |||
== Таблицы modbus-регистров== | == Таблицы modbus-регистров== |