Добрый день, есть китайский метеодатчик “скорость ветра” с 485 интерфейсом.
Создал для него тимплейт:
config-wb-wing-speed.json
{
"device_type" : "Wing speed",
"title" : "Wing speed",
"group" : "g-power-meter",
"device" : {
"name" : "Wing speed",
"id" : "Wing speedr",
"protocol" : "modbus",
"frame_timeout_ms" : 500,
"channels" : [
{
"name" : "Wing speed",
"reg_type" : "holding",
"address" : 0,
"format" : "u16",
"type" : "value",
"readonly" : true,
"scale" : 0
}
]
}
}
Датчик появился и был успешно добавлен на интерфес с slave ID 19
{
"channels" :
[
{
"name" : "Wing speed",
"read_period_ms" : 3000
}
],
"device_type" : "Wing speed",
"slave_id" : "19"
},
на панели http://ipaddr/#!/devices датчик появился, но показывает постоянно “0”
при этом если его опрашивать через:
modbus_client --debug -mrtu -b9600 -pnone -s1 /dev/ttyRS485-1 -a19 -t0x03 -r0
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[13][03][00][00][00][01][87][78]
Waiting for a confirmation...
<13><03><02><00><06><80><45>
SUCCESS: read 1 of elements:
Data: 0x0006
т.е. отвечает “6”
Что это такое и куда смотерть не понимаю…
WB7, HW Revision 7.3.4, Release name wb-2304
PS до этого этот датчик и не он один, есть ещё: направление ветра, температура, давление, влажность, солнечная радиация. Стояли на WB6( HW Revision 6.7.2, Release name wb-2207) только на разных каналах(по 2 на каждом) и проблем не было.
на WB7 то один отвалится, то другой, при этом датчик(температура, влажность, давление) может показывать только 1 из 3х значений. направление ветра 1 из 2х… в консоли при этом всё отвечает нормально… Датчики подключены по UTP cat5 длинна 5 метров. Скорость 9600 максимальная для датчиков, Быстрее не умеют.