Нашел решение проблемы, установив “Дополнительная задержка перед записью в порт (мкс)” равной 500
Все варнинги про таймаут ушли, значения так же больше не становились рандомными.
Конфиг оставлю тут, вдруг кому то еще пригодится BAC-1000 (220v valve, 0-10v fan, modbus)
Конфиг порта и самого устройства BAC-1000
{
"baud_rate" : 9600,
"data_bits" : 8,
"devices" :
[
{
"channels" :
[
{
"address" : "4",
"format" : "s16",
"name" : "Lock buttons",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "switch"
},
{
"address" : "8",
"format" : "s16",
"name" : "Room temperature",
"offset" : 0,
"readonly" : true,
"reg_type" : "holding",
"scale" : 0.1,
"type" : "temperature"
},
{
"address" : "3",
"format" : "u16",
"name" : "Setting temperature",
"offset" : 0,
"reg_type" : "holding",
"scale" : 0.1,
"type" : "temperature"
},
{
"address" : "9",
"format" : "s16",
"name" : "Valve status",
"offset" : 0,
"readonly" : true,
"reg_type" : "holding",
"scale" : 1,
"type" : "switch"
},
{
"address" : "1",
"format" : "u16",
"max" : "3",
"name" : "Fan Speed",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "range"
},
{
"address" : "2",
"format" : "u16",
"max" : "2",
"name" : "Mode",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "range"
},
{
"address" : "6",
"format" : "s16",
"name" : "Hours",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "value"
},
{
"address" : "5",
"format" : "s16",
"name" : "Minutes",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "value"
},
{
"address" : "7",
"format" : "s16",
"max" : "7",
"name" : "Week",
"offset" : 0,
"reg_type" : "holding",
"scale" : 1,
"type" : "value"
}
],
"guard_interval_us" : 500,
"protocol" : "modbus",
"slave_id" : "1"
}
],
"enabled" : true,
"parity" : "N",
"path" : "/dev/ttyRS485-2",
"poll_interval" : 10,
"port_type" : "serial",
"stop_bits" : 1
}