WB-MGE v.2 и Home Assistant

Товарищи, здравствуйте. Помогите пожалуйста решить такой вот вопрос. Имеем: сервер HA, шлюз WB-MGE v.2, реле WB-MR-6C v.2. Не могу завести текущую конфигурацию. В шлюзе поменял адрес на динамический и скорость 9600 (в документации на реле указана эта). Конфиг HA:
modbus:

  • name: “gateway”
    close_comm_on_error: true
    delay: 5
    timeout: 5
    type: rtuovertcp
    host: 192.168.88.58
    port: 502
    lights:
    • name: “light1”
      slave: 37
      address: 1
      write_type: coil

slave указан как на наклейке на реле, но не работает конфигурация, реле не щелкает. Что я упустил? Где печатается отладочная информация?

Добрый день.
Предлагаю для начала протестировать конфигурацию штатными средствами контроллера. То есть добавить TCP порт, как указано тут:
https://wirenboard.com/wiki/WB-MIO-E_v.2_Modbus_Interface_Converter#.D0.9F.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D1.87.D0.B5.D1.80.D0.B5.D0.B7_Ethernet
сконфигурировать на этом порту реле.
Ну и проверить по наличию ошибок в выводе

journalctl -u wb-mqtt-serial --no-pager -f

Спасибо за ответ, но контроллер WirenBoard в моей сборке не участвует. Все оказалось проще, настройки по умолчанию модуля реле и шлюза различаются (9600 и 115200), а также установлены стоп-биты 2 (для реле), а не 1 как обычно везде бывает (не в RS485 устройствах и шлюзе). В настройках шлюза также надо указать порт, например 502 (по умолчанию 23). Это пока все, наблюдаю за ситуацией.

А можете поделиться конфигурацией HA? У меня сейчас так:

modbus:
  - name: "WBMGE"
#    delay: 5
#    timeout: 5
    type: rtuovertcp
    host: 192.168.1.199
    port: 23
    lights:
      - name: "modbuslight1"
        slave: 53
        address: 0
        write_type: coil
      - name: "modbuslight2"
        slave: 53
        address: 1
        write_type: coil
        command_on: 1
        command_off: 0
        verify:
            state_on: 1
            state_off: 0
      - name: "modbuslight3"
        slave: 53
        address: 2
        write_type: coil

Но почему-то 1 и 3 включаются с задержкой, после включения в HA становятся в состояние “неизвестно”, и после этого, через несколько секунд возвращаются в “выключено”, вне зависимости от фактического состояния. Второй канал вообще недоступен всегда. Что я делаю не так?

посмотри логи, что там пишется. попробуй вставить параметр в настройки шлюза retry_on_empty: true
Отправлено из мобильного приложения Яндекс Почты

Не помогло

2022-06-02 15:31:33 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=input_number.white_value_template, old_state=None, new_state=<state input_number.white_value_template=100.0; initial=None, editable=False, min=0.0, max=255.0, step=1.0, mode=box, unit_of_measurement=step, icon=mdi:led-strip, friendly_name=White value template @ 2022-06-02T15:31:33.182830+03:00>>
2022-06-02 15:31:33 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.modbuslight1, old_state=None, new_state=<state light.modbuslight1=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], friendly_name=modbuslight1, supported_features=0 @ 2022-06-02T15:31:33.183877+03:00>>
2022-06-02 15:31:33 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.modbuslight2, old_state=None, new_state=<state light.modbuslight2=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], friendly_name=modbuslight2, supported_features=0 @ 2022-06-02T15:31:33.184243+03:00>>
2022-06-02 15:31:33 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.modbuslight3, old_state=None, new_state=<state light.modbuslight3=off; supported_color_modes=[<ColorMode.ONOFF: 'onoff'>], friendly_name=modbuslight3, supported_features=0 @ 2022-06-02T15:31:33.184545+03:00>>
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Current transaction state - IDLE
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Running transaction 1
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] SEND: 0x35 0x1 0x0 0x1 0x0 0x1 0xa8 0x7e
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Changing transaction state from 'SENDING' to 'WAITING FOR REPLY'
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Changing transaction state from 'WAITING FOR REPLY' to 'PROCESSING REPLY'
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] RECV: 0x35 0x40 0xa0 0x90 0x86 0xff
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.framer.rtu_framer] Frame check failed, ignoring!!
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.framer.rtu_framer] Resetting frame - Current Frame in buffer - 0x35 0x40 0xa0 0x90 0x86 0xff
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Getting transaction 53
2022-06-02 15:31:34 DEBUG (SyncWorker_19) [pymodbus.transaction] Changing transaction state from 'PROCESSING REPLY' to 'TRANSACTION_COMPLETE'
2022-06-02 15:31:34 ERROR (SyncWorker_19) [homeassistant.components.modbus.modbus] Pymodbus: WBMGE: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2022-06-02 15:31:34 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event system_log_event[L]: name=homeassistant.components.modbus.modbus, message=['Pymodbus: WBMGE: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response'], level=ERROR, source=['components/modbus/modbus.py', 304], timestamp=1654173094.6256688, exception=, count=1, first_occurred=1654173094.6256688>
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.client.sync] Connection to Modbus server established. Socket ('192.168.1.34', 50853)
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Current transaction state - TRANSACTION_COMPLETE
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Running transaction 11
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] SEND: 0x35 0x1 0x0 0x1 0x0 0x1 0xa8 0x7e
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.framer.rtu_framer] Changing state to IDLE - Last Frame End - 1654173180.00749, Current Time stamp - 1654173183.197922
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.client.sync] New Transaction state 'SENDING'
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Changing transaction state from 'SENDING' to 'WAITING FOR REPLY'
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Changing transaction state from 'WAITING FOR REPLY' to 'PROCESSING REPLY'
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] RECV: 0x35 0x40 0xa0 0x90 0x86 0xff
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.framer.rtu_framer] Frame check failed, ignoring!!
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.framer.rtu_framer] Resetting frame - Current Frame in buffer - 0x35 0x40 0xa0 0x90 0x86 0xff
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Getting transaction 53
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [pymodbus.transaction] Changing transaction state from 'PROCESSING REPLY' to 'TRANSACTION_COMPLETE'
2022-06-02 15:33:03 DEBUG (SyncWorker_6) [homeassistant.components.modbus.modbus] Pymodbus: WBMGE: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response

попробуй параметр retries увеличить до 10, по умолчанию он 3, как раз по нему ошибка идет вроде

В ответе устройства код функции 0x40, что некорректно (такой функции нет), а количество передаваемых байт - 100 (a0), а реально 2. Похоже на проблемы с обменом.

1 лайк

Не помогло. Можете скинуть свой рабочий конфиг, что б исключить неправильную настройку HomeAssistant?

Кто в это может быть виноват?

Подключено у меня вот так, трасса очень короткая. Но, учитывая повторяемость ошибок и прогнозируемость поведения, не думаю, что проблема может быть в коммутации

В приведенном логе на запрос 01 (coil read) возвращается что-то непонятное.
Для проверки надо остановить опрос и попробовать опросить с компьютера, например.

подскажите пожалуйста где можно найти такие конфигурации для HA? обшарил весь форум, нашел только 1 эту тему. сложилось впечатление что тема под запретом.
приходится самому делать методом тыка и ошибок.
может кто-то, куда-то уже выкладывал? или есть форум любителей HA и WB?
сейчас пытаюсь понять как определять в HA нажатие кнопки 0 (мастер выключатель) на реле WB-MR6C v2

Здравствуйте! Процедура установки и настройки Home Assistant теперь описана в документации:
https://wirenboard.com/wiki/Home_Assistant

Там простой MQTT binary sensor написать надо:

1 лайк

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