Добрый день!
Ранее установил WB-MS (SN1102372).
проработал пару лет и поддох. Освещенность валится вниз потом подымается, стал вести себя не адекватно. Я решил его заменить и купил парочку. Один из них: 4272349314. Второй уже установил.
Адрес на датчике был 174. Я решил, что заменю адрес в морде и у меня все подхватится. По итогу передается только входное напряжение, остальные показатели покраснели и замерли.
Что не так? Как его подхватить?
Потом создал новый девайс с теми-же настройками и этим адресом, результат тот-же. Рестартовал и MQTT и правила, и сериал девайсы, ребутил, поплясал в общем как обычно, ничего не помогло. Что-то я не учитываю. Что? В итоге сгонял на замену 150км и теперь вручную вместо датчика управляю системой. чтоб у Заказчика вопросов не возникло ко мне… Пожалуйста, подскажите… (
Добрый день.
По описанию не очень понятно, но: устройство с SN 1102372 - это WB-MS-THLS 2016 года выпуска.
https://wirenboard.com/wiki/WB-MS_v.1_Sensor
а заменяете его современным
https://wirenboard.com/wiki/WB-MS_v.2_Modbus_Sensor
У них разные таблицы регистров:
https://wirenboard.com/wiki/Sensors_Modbus_Management
Поэтому вместе с заменой самого MS надо менять (просто перевыбрать) и шаблон.
Провсто попробуйте получить значение регистра с помощью Modbus_client.
Другими словами я вижу, что данные на вид верные.
Да. Соответственно - сам MS работает. Поменяйте шаблон.
Вот мой шаблон, он с приведениями. Извините))
Что в нем не так?
{
"device_type": "WB-MS-THLS v.2 PARAM",
"device": {
"name": "WB-MS / WB-MSW PARAM",
"id": "wb-ms-thls-v2-param",
"max_read_registers": 0,
"channels": [
{
"name": "Temperature",
"reg_type": "input",
"address": 0,
"type": "temperature",
"format": "s16",
"scale": 0.1,
"error_value": "0x7FFF"
},
{
"name": "Humidity",
"reg_type": "input",
"address": 1,
"type": "rel_humidity",
"scale": 0.1,
"error_value": "0xFFFF"
},
{
"name": "Illuminance",
"reg_type": "input",
"scale":0.01,
"address": 2,
"type": "lux"
},
{
"name": "Sound_Level",
"reg_type": "input",
"address": 3,
"scale": 0.01,
"type": "sound_level"
},
{
"name": "Input_Voltage",
"reg_type": "input",
"address": 121,
"scale": 0.001,
"type": "voltage"
},
{
"name": "External_Sensor_1",
"type": "temperature",
"reg_type": "input",
"address": "6",
"format": "s16",
"scale": 0.0625,
"error_value": "0x7FFF"
},
{
"name": "External_Sensor_2",
"type": "temperature",
"reg_type": "input",
"address": "7",
"format": "s16",
"scale": 0.0625,
"error_value": "0x7FFF"
}
]
}
}
Я буду дальше копать в этом направлении, но пока что не получается добиться результата. Например температуру со встроенного датчика я теперь должен снимать с адреса 4.
Я поправил шаблон, перезаписал шаблон, изменений не вижу.
Что нужно сделать, какой порядок действий, для вступления нового отредактированного шаблона в силу? Я просто перезаписал, потом рестартанул сериал, не помогло, потом сменил шаблон на другой, потом вернул на этот… сейчас дуду чистить задвоения00 но температура как не показывалась так и не показывается
чтобы не быть голословным. Я вот так поменял, например, этот фрагмент шаблона:
{
"name": "Temperature",
"reg_type": "input",
"address": 4,
"type": "temperature",
"format": "s16",
"scale": 0.01,
"error_value": "0x7FFF"
},
До этого менял немного названия каналов, чтобы понять обновляется ли шаблон в контроллере - обновляется. Но в итоге данные все-равно не идут. Что теперь не так?
Достаточно перезапустить serial
Как минимум надо посмотреть в лог чтобы увидеть причину. Покажите что там, связанное с MS?
Какой релиз ПО контроллера?
Если дорелизный - то какой версии wb-mqtt-serial?
Контроллер:
Какой именно лог нужно смотреть? Подскажите, какой файл открыть или какой командой вызвать?
Для старого ПО - смотреть надо в /var/log/message.
Dec 6 13:03:05 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:07 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:09 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:10 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:12 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:13 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:15 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of device modbus:174: Serial protocol error: illegal data value
Dec 6 13:03:17 wirenboard-AFDB3MCD user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 6 input(s) @ 2 of d
проблемы с форматом?
вернее с типом?:
"type": "temperature",
Нет
Попытка считать 6 регистров сразу начиная с 2.
Можно поменять установку “max_read_registers” на 1. Но лучше и правильней - просто использовать соответствующий шаблон для устройства.
перевыбрать на какой? Я так полагаю у меня его нет. на старом контроллере…
на старом датчике все работало. А в шаблоне по сути описание используемых регистров, я мог бы просто заменить скрипт. Где найти “новый”?
Текущий шаблон тут:
Но на старых версиях ПО может не работать “как есть” так как wb-mqtt-serial кардинально переработан.
ясно, значит не буду даже пробовать. Получается, я купил датчик, который не поставить на старый контроллер, и замена датчика, по хорошему, повлечет за собой замену головы со всеми вытекающими.
Не могли бы мне скинуть спецификацию шаблона, который понимает мой контроллер? Чтобы в ней были возможные варианты типов переменных, полей и тд, чтобы я мог, не тыкаясь, а опираясь на документ настраивать датчики на мой контроллер?
Менять нет необходимости. ПО обновляется, 6.x контроллеры еще вполне актуальны и под них регулярно выходят обновления.