Вы читаете 13 input, а в таблице влажность 14
Да
Вот, 13, 14 и 15 соответственно. На всех по датчику влажности:
root@wirenboard-ARTSITW6:~# service wb-mqtt-serial stop
root@wirenboard-ARTSITW6:~# modbus_client --debug -mrtu -peven -s1 /dev/ttyRS485-1 -b9600 -a1 -t0x03 -r0013
Opening /dev/ttyRS485-1 at 9600 bauds (E, 8, 1)
[01][03][00][0D][00][01][15][C9]
Waiting for a confirmation...
<01><03><02><01><9A><39><BF>
SUCCESS: read 1 of elements:
Data: 0x019a
root@wirenboard-ARTSITW6:~#
Ничего не поменялось. Может быть такое? Указал u8 для всех трёх
Там надо вычитать единичку.
С помощью modbus_client считывается число 0x019a или 410 в десятичной системе. Что тоже не очень похоже на влажность, если считать, что она должна быть без множителя. Попробуйте прочитать значение функцией 0x04, как в документации:
modbus_client --debug -mrtu -peven -s1 /dev/ttyRS485-1 -b9600 -a1 -t0x04 -r13
root@wirenboard-ARTSITW6:~# service wb-mqtt-serial stop
root@wirenboard-ARTSITW6:~# modbus_client --debug -mrtu -peven -s1 /dev/ttyRS485-1 -b9600 -a1 -t0x04 -r13
Opening /dev/ttyRS485-1 at 9600 bauds (E, 8, 1)
[01][04][00][0D][00][01][A0][09]
Waiting for a confirmation...
<01><04><02><A7><24><C3><1B>
SUCCESS: read 1 of elements:
Data: 0xa724
root@wirenboard-ARTSITW6:~# service wb-mqtt-serial start
То есть данные читаются и отображаются в веб-интерфейсе верно. Наверное, тут уже надо производителя контроллера отопления Uponor спрашивать, может, были какие-то изменения в его прошивке.
Добрый день.
Судя по документации для вычисления влажности используются только два последних бита:
и при ручной проверке это похоже на правду.
Есть возможность переводить в десятичное число из 0xa724 только 0x0024?
Можно взять младшие 2 байта.
Ну или прочитать отдельно регистр который их содержит.
1 регистр это и так два байта.
Как то можно 1 младший байт из регистра прочитать?
Указание формата я так понял ничего не поменяло. Может баг?
Вот это:
явно два регистра.
Значит в одном 0xa7 а в другом 0x24
UPD, да, один регистр, я ошибся.
Это шестнадцатиричная форма записи, поэтому не два бита, а 8 младших бит (младший байт). Чтобы их получить попробуйте такую конфигурацию в веб-интерфейсе (номер регистра измените):
В шаблоне это можно прописать так:
{
"address" : "105:0:8",
"format" : "u16",
"name" : "uptime",
"offset" : 0,
"reg_type" : "input",
"scale" : 1,
"type" : "value"
}
Да, u8 почему-то не работает…
Рад, что все получилось!
Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.