Терморегулятор BAC-1000

Добрый день, получил регулятор BAC-1000 с Али и теперь пытаюсь разобратся как его подключить к WB.
Можно ли через интерфейс добавить данный термостат или прийдется конфигурировать его отдельно?
Спасибо.


Нашел в устройствах BAC-6000 документация аналогичная но после подключении ошибки чтения/записи, хотя работает переключение режима и скорости вентилятора

Перенес регулятор на другой порт, там установил 8 bit, 1 stop - частично заработало, теперь проскакивают ошибки на чтение

Вынес устройство на отдельный порт, методом подбора получился такой конфиг

Конфиг порта с устройством
    {
      "baud_rate" : 9600,
      "data_bits" : 8,
      "devices" : 
      [
        {
          "channels" : 
          [
            {
              "address" : "1",
              "format" : "u16",
              "max" : "3",
              "name" : "Fan Speed",
              "offset" : 0,
              "poll_interval" : 2000,
              "reg_type" : "holding_multi",
              "scale" : 1,
              "type" : "range"
            },
            {
              "address" : "2",
              "format" : "u16",
              "max" : "2",
              "name" : "Mode",
              "offset" : 0,
              "reg_type" : "holding_multi",
              "scale" : 1,
              "type" : "range"
            },
            {
              "address" : "3",
              "format" : "u16",
              "name" : "Setting temperature",
              "offset" : 0,
              "reg_type" : "holding_multi",
              "scale" : 0.1,
              "type" : "temperature"
            },
            {
              "address" : "4",
              "format" : "s16",
              "name" : "Lock buttons",
              "offset" : 0,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "switch"
            },
            {
              "address" : "5",
              "format" : "s16",
              "name" : "Minutes",
              "offset" : 0,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "value"
            },
            {
              "address" : "6",
              "format" : "s16",
              "name" : "Hours",
              "offset" : 0,
              "poll_interval" : 200,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "value"
            },
            {
              "address" : "7",
              "format" : "s16",
              "max" : "7",
              "name" : "Week",
              "offset" : 0,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "value"
            },
            {
              "address" : "8",
              "format" : "s16",
              "name" : "Room temperature",
              "offset" : 0,
              "readonly" : true,
              "reg_type" : "holding",
              "scale" : 0.1,
              "type" : "value"
            },
            {
              "address" : "9",
              "format" : "s16",
              "name" : "Valve status",
              "offset" : 0,
              "readonly" : true,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "switch"
            }
          ],
          "frame_timeout_ms" : 1000,
          "poll_interval" : 10,
          "protocol" : "modbus",
          "response_timeout_ms" : 1000,
          "slave_id" : "1"
        }
      ],
      "enabled" : true,
      "parity" : "N",
      "path" : "/dev/ttyRS485-2",
      "poll_interval" : 10,
      "port_type" : "serial",
      "stop_bits" : 1
    }

Но осталась проблема с Serial protocol error: request timed out

Лог без debug

05-02-2022 01:54:15.896 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:13.677 WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:11.567 WARNING: [modbus] failed to read 1 holding(s) @ 2 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:09.499 WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:07.417 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:05.143 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:02.908 WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:54:00.698 WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:58.635 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:56.521 WARNING: [modbus] failed to read 1 holding(s) @ 3 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:54.417 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:52.347 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:50.270 WARNING: [modbus] failed to read 1 holding(s) @ 3 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:48.110 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:45.830 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:43.748 WARNING: [modbus] failed to read 1 holding(s) @ 2 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:41.668 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:39.609 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:37.438 WARNING: [modbus] failed to read 1 holding(s) @ 1 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:35.372 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:33.307 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:31.251 WARNING: [modbus] failed to read 1 holding(s) @ 3 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:29.172 WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:27.029 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:24.972 WARNING: [modbus] failed to read 1 holding(s) @ 3 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:22.896 WARNING: [modbus] failed to read 1 holding(s) @ 9 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:20.601 WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:18.253 WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:15.814 WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:13.750 WARNING: [modbus] failed to read 1 holding(s) @ 4 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:11.637 WARNING: [modbus] failed to read 1 holding(s) @ 9 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:09.384 WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:1: Serial protocol error: request timed out
05-02-2022 01:53:07.305 WARNING: [modbus] failed to read 1 holding(s) @ 3 of device modbus:1: Serial protocol error: request timed out

Логи с debug
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding_multi(s) @ 2 of device modbus:1
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 00 b8 44
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 01 0e 00 02 11 0b
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [modbus] read 2 input(s) @ 270 of device modbus:14
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [serial port driver] channel 'MCU Voltage' of device 'wb-mr6c_14' <-- 3.349
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [serial port driver] register value change: <modbus:14:input: 123> <- 3.349
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [register handler] new val for <modbus:14:input: 123>: d15
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 0e 04 04 0d 15 00 f8 16 6e
05-02-2022 01:38:48.905 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 09 00 01 54 08
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 9 of device modbus:1
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 eb f8 0b
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 00 7b 00 02 01 2d
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 2 input(s) @ 123 of device modbus:14
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 08 00 01 05 c8
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 8 of device modbus:1
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 01 79 84
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [serial port driver] channel 'Supply Voltage' of device 'wb-mr6c_14' <-- 24.536
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [serial port driver] register value change: <modbus:14:input: 121> <- 24.536
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [register handler] new val for <modbus:14:input: 121>: 5fd8
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 0e 04 02 5f d8 d4 9b
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 07 00 01 35 cb
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 7 of device modbus:1
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 25 79 9f
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 00 79 00 01 e0 ec
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 1 input(s) @ 121 of device modbus:14
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [serial port driver] channel 'Uptime (s)' (MQTT control 'Uptime') of device 'wb-mr6c_14' <-- 9489
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [serial port driver] register value change: <modbus:14:input: 104> <- 9489
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [register handler] new val for <modbus:14:input: 104>: 2511
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 0e 04 04 00 00 25 11 de 18
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 05 00 01 94 0b
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 5 of device modbus:1
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 00 b8 44
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 00 68 00 02 f0 e8
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [modbus] read 2 input(s) @ 104 of device modbus:14
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 0e 04 02 00 00 ed 31
05-02-2022 01:38:48.465 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 04 00 01 c5 cb
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 4 of device modbus:1
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 01 79 84
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 00 27 00 01 81 3e
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 input(s) @ 39 of device modbus:14
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 0e 04 0c 00 00 00 00 00 00 00 00 00 00 00 00 da b3
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 06 00 01 64 0b
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 6 of device modbus:1
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 03 70 b9 50
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 03 00 01 74 0a
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding_multi(s) @ 3 of device modbus:1
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 02 39 85
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 0e 04 00 20 00 06 71 3d
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 6 input(s) @ 32 of device modbus:14
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 8000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 8b 02 01 00 8b 90
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 02 00 01 25 ca
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding_multi(s) @ 2 of device modbus:1
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 00 b8 44
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 8b 02 00 07 00 01 17 61
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 discrete(s) @ 7 of device modbus:139
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 8b 02 01 00 8b 90
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 01 03 00 09 00 01 54 08
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [modbus] read 1 holding(s) @ 9 of device modbus:1
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] ReadFrame: 01 03 02 00 eb f8 0b
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 10000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 9000 us
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Write: 8b 02 00 00 00 06 e7 62
05-02-2022 01:38:47.861 [wb-mqtt-serial]	DEBUG: [port] Sleep 0 us

Пробовал ставить различные значения для таймаута и задержки - не помогло
Но сам регулятор управляется и передает верные значения.
Только в какой то момент установленная температура показывает рандомное значение. Буду пробовать дебажить.

1 лайк

Нашел решение проблемы, установив “Дополнительная задержка перед записью в порт (мкс)” равной 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
    }
1 лайк

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