Проблемма с метеодатчиком(скорость ветра)

Добрый день, есть китайский метеодатчик “скорость ветра” с 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 максимальная для датчиков, Быстрее не умеют.



“scale” : 0

Замените на “scale” : 1 либо удалите его вообще.

У вас в регистре значение “6” wb-mqtt-serial его читает, умножает на “0” и получает: “0” который отправляет в MQTT))

Из документации wb-mqtt-serial: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver
// коэффициент, на который умножается значение регистра перед публикацией в MQTT
“scale”: 0.5,

1 Like

А что за датчик если не секрет?

Спасибо! математику забыл (((

вот

1 Like

ИМХО, для такой задачи 485 избыточен. Импульсный выход более оптимален. А уже его - на счетный вход дискретного модуля. Я использую вход на WB-MCM8 в режиме измерения частоты. Благо все равно свободные входы оставались от других задач. Ну и простая математика пересчета в показатели ветра. Датчик похожий просто с герконом внутри. Заодно и проводов к датчику меньше.

1 Like

что дали с тем и е**ся

1 Like

Все получилось? Если да, можете прислать карту регистров и ваш шаблон?

От производителя:
八方位RS485风向传感器.docx (569,3 КБ)
聚碳风速RS485.docx (424,9 КБ)
у меня такие же лежат, еще не подключал.

Да. Спасибо!
config-wb-wing-speed.json (550 байтов)
там нужен только нулевой адрес…

1 Like

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.