WB-MAP3E (без контроллера) + Home Assistant

Добрый день, уже имеется наполненный ZigBee девайсами локальный сервер Home Assistant (виртуалка на VmWare). Для моих задач мониторинга электросети отлично подойдет WB-MAP3E, но ради него одного брать контроллер выходит очень не бюджетно.

Поэтому ищу альтернативный способ подключения, поиском нашел что-то подобное, но в случае этой статьи я не совсем понял роль USB-свистка, он только для настройки? или и для передачи показаний тоже?

А в случае этой статьи не совсем понял чем является устройство WB-MGE. Это устройство дать сетевой доступ к счетчику без контроллера? Или это как удлинение HDMI кабеля с помощью UTP?

Здравствуйте.

Вам надо решить одну простую задачу — опросить по Modbus из Home Assistant модуль WB-MAP3E.

Home Assistant поддерживает Modbus во всех его вариантах: Modbus - Home Assistant

Значит нам осталось выбрать один из вариантов подключения модуля к вашему серверу:

  1. Порт RS-485 на сервере — скорее всего нет, так как вы говорите про виртуалку.
  2. Преобразователь интерфейса WB-USB485 - Wiren Board , он будет использоваться как для настройки так и для передачи данных. Вставляется в USB вашего сервера.
  3. Преобразователь интерфейсов WB-MGE v.2 - Wiren Board или Преобразователь интерфейсов WB-MIO-E v.2 - Wiren Board, без разницы — это позволит «завернуть» шину RS-485 в Ethernet и настраивать/опрашивать устройство по Modbus TCP

Полезная статья по теме, правда там автор писал собственную интеграцию, это излишне, вам будет достаточно использовать штатный драйвер Modbus, а в статье подсмотреть архитектуру решения Модуль — Шлюз — Сервер:

1 лайк

Спасибо за напутствие, судя по вашему ответу в принципе это возможно и в том и в том случае, нужно брать и делать. Чуть позже постараюсь отписаться о результатах, из оборудования еще ничего не закупалось. Спасибо.

Влезу в тему: а вы уверены что map3 вам не излишен? Если интересуют токи/напряжения/потребление то проще посмотреть в сторону какого-нибудь устройства zigbee. Для бытового уровня более чем достаточно! (Имею и мап3 и мап12 и несколько счетчиков zigbee)

Итак, приобрел WB-MGE v2 и WB-MAP3E, собрал тестовый стенд:

  1. запитал обоих от АКБ 12В - заработали
  2. на WB-MGE поменял IP и пароль - работает, вебморда доступна
  3. подключил WB-MGE v2 и WB-MAP3E по RS485 между собой (“А” в “А”, “В” в “В”), в Web to Serial начал писать “Success”

    настройки в TTL1 такие:

Дальше начал настраивать Modbus интеграцию в HA

В Current Status появился коннект и стали поступать пакетики

НО:

  • пакетики не отдаются обратно
  • возможно я не так написал конфиг для модбаса в HA
  • могу ли я в “web to serial” отправить какую то команду чтобы убедиться в том что MGE точно имеет связь с MAP3E?

Думаю нужно решать вопрос последовательно, но не знаю как проверить что MGE по RS485 видит MAP3E

UPD!!!

Поизучал примеры конфигов modbus в интернете и подчерпнул что нужно указывать SLAVE адрес (указан на лицевой панели wb-map3e), в моем случае на наклейке написано 190, вроде заработало!

и пакетики стал отдавать

Завтра проведу тесты с подключением силовых линий и датчиков считывания потребления эл.энергии. Если все будет получаться то чуть позже скину готовый конфиг для HA

Добрый день!

Если будут вопросы по настройке оборудования, то обращайтесь.

Друзья, всем привет.

Используя ссылку на таблицу регистров для WB-MAP3E составил MODBUS конфиг для Home Assistant.

!!! ВАЖНО - получаемые измерения еще никак не проверял сторонними измерительными приборами. Конфиг выкладываю для тех, кто как и я, делает настройку впервые и нужно от чего то оттолкнуться. В своем конфиге предусмотрел возможное расширение системы явно указывая модели оборудования и нумеруя их.

В своем конфиге укажите свои:
host: 192.168.251.28 # IP-Адрес преобразователя
slave: 190 # Адрес SLAVE устройства (УКАЗАН НА ПРИБОРЕ)

##### MODBUS #####
modbus:
    #######################################
    ### Первый преобразователь WB-MGEv2 ###
    #######################################
  - name: WB-MGEv2_01 # Имя устройства
    type: tcp # Протокол
    host: 192.168.251.28 # IP-Адрес
    port: 23 # Порт
    sensors:
        ###########################
        ### Напряжение на фазах ###
        ###########################
      - name: WB-MAP3E_01_UrmsL1_u16 # Напряжение (RMS) на фазе L1
        slave: 190 # Адрес SLAVE устройства
        address: 5136 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL1_u16
      
      - name: WB-MAP3E_01_UrmsL1_u32 # Напряжение (RMS) на фазе L1 (два последовательных регистра, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 5136 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint32 # Формат данных
        scale: 0.000000152588 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL1_u32
      
      # привести к правильным цыфрам
      - name: WB-MAP3E_01_UpeakL1 # Напряжение (RMS) на фазе L1 (два последовательных регистра, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 6160 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int32 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UpeakL1
        
        
      - name: WB-MAP3E_01_UrmsL2_u16 # Напряжение (RMS) на фазе L2
        slave: 190 # Адрес SLAVE устройства
        address: 5138 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL2_u16
      
      - name: WB-MAP3E_01_UrmsL2_u32 # Напряжение (RMS) на фазе L2 (два последовательных регистра, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 5138 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint32 # Формат данных
        scale: 0.000000152588 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL2_u32
       
       
      - name: WB-MAP3E_01_UrmsL3_u16 # Напряжение (RMS) на фазе L3
        slave: 190 # Адрес SLAVE устройства
        address: 5140 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL3_u16
      
      - name: WB-MAP3E_01_UrmsL3_u32 # Напряжение (RMS) на фазе L3 (два последовательных регистра, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 5140 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint32 # Формат данных
        scale: 0.000000152588 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UrmsL3_u32
        
        
        ####################################
        ### Линейное напряжение на фазах ###
        ####################################
      - name: WB-MAP3E_01_UL1-L2 # Линейное напряжение между фазами L1-L2
        slave: 190 # Адрес SLAVE устройства
        address: 5148 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UL1-L2
        
      - name: WB-MAP3E_01_UL2-L3 # Линейное напряжение между фазами L2-L3
        slave: 190 # Адрес SLAVE устройства
        address: 5149 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UL2-L3
        
      - name: WB-MAP3E_01_UL3-L1 # Линейное напряжение между фазами L3-L1
        slave: 190 # Адрес SLAVE устройства
        address: 5150 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: V # Единица измерения
        unique_id: WB-MAP3E_01_UL3-L1
        
        
        ###############
        ### Частота ###
        ###############
      - name: WB-MAP3E_01_Frequency # Частота
        slave: 190 # Адрес SLAVE устройства
        address: 4344 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: frequency # Класс устройства
        unit_of_measurement: Hz # Единица измерения
        unique_id: WB-MAP3E_01_Frequency
       
       
        ###########################
        ### Фазовый угол сдвига ###
        ###########################
      - name: WB-MAP3E_01_VoltageangleL1 # Фазовый угол сдвига напряжения между фазами (всегда 0, отсчет ведется от фазы L1)
        slave: 190 # Адрес SLAVE устройства
        address: 4349 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_VoltageangleL1
        
      - name: WB-MAP3E_01_VoltageangleL2 # Фазовый угол сдвига напряжения между фазами L1 и L2
        slave: 190 # Адрес SLAVE устройства
        address: 4350 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_VoltageangleL2
        
      - name: WB-MAP3E_01_VoltageangleL3 # Фазовый угол сдвига напряжения между фазами L1 и L3
        slave: 190 # Адрес SLAVE устройства
        address: 4351 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_VoltageangleL3
        
        ######################
        ### Ток по фазе L1 ###
        ######################
      - name: WB-MAP3E_01_IrmsL1 # Ток (RMS) на фазе L1
        slave: 190 # Адрес SLAVE устройства
        address: 5142 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.016 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL1 
        
      - name: WB-MAP3E_01_IrmsL1x100 # Ток (RMS) на фазе L1 (два регистра подряд, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 4361 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL1x100
        
      - name: WB-MAP3E_01_Px0.1L1 # Активная мощность для фазы L1 x0.1
        slave: 190 # Адрес SLAVE устройства
        address: 4373 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 10 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: Watt # Единица измерения
        unique_id: WB-MAP3E_01_Px0.1L1
        
        
        ######################
        ### Ток по фазе L2 ###
        ######################
      - name: WB-MAP3E_01_IrmsL2 # Ток (RMS) на фазе L2
        slave: 190 # Адрес SLAVE устройства
        address: 5144 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.016 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL2 
        
      - name: WB-MAP3E_01_IrmsL2x100 # Ток (RMS) на фазе L2 (два регистра подряд, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 4362 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL2x100
        
      - name: WB-MAP3E_01_Px0.1L2 # Активная мощность для фазы L2 x0.1
        slave: 190 # Адрес SLAVE устройства
        address: 4374 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 10 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: Watt # Единица измерения
        unique_id: WB-MAP3E_01_Px0.1L2
        
        
        ######################
        ### Ток по фазе L3 ###
        ######################
      - name: WB-MAP3E_01_IrmsL3 # Ток (RMS) на фазе L3
        slave: 190 # Адрес SLAVE устройства
        address: 5146 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.016 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL3
        
      - name: WB-MAP3E_01_IrmsL3x100 # Ток (RMS) на фазе L3 (два регистра подряд, повышенное разрешение)
        slave: 190 # Адрес SLAVE устройства
        address: 4363 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: uint16 # Формат данных
        scale: 0.01 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: A # Единица измерения
        unique_id: WB-MAP3E_01_IrmsL3x100
        
      - name: WB-MAP3E_01_Px0.1L3 # Активная мощность для фазы L3 x0.1
        slave: 190 # Адрес SLAVE устройства
        address: 4375 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 10 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: Watt # Единица измерения
        unique_id: WB-MAP3E_01_Px0.1L3
        
        
        ##############################
        ### Мощность по трем фазам ###
        ##############################
      - name: WB-MAP3E_01_TotalPx0.1 # Суммарная активная мощность x0.1
        slave: 190 # Адрес SLAVE устройства
        address: 4372 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 10 # Масштабирование данных
        device_class: voltage # Класс устройства
        unit_of_measurement: Watt # Единица измерения
        unique_id: WB-MAP3E_01_TotalPx0.1 
        
        
        ######################################################
        ### Угол фазового сдвига между напряжением и током ###
        ######################################################
      - name: WB-MAP3E_01_Phase_angleL1 # Угол фазового сдвига между напряжением и током для фазы L1
        slave: 190 # Адрес SLAVE устройства
        address: 4345 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_Phase_angleL1
        
      - name: WB-MAP3E_01_Phase_angleL2 # Угол фазового сдвига между напряжением и током для фазы L2
        slave: 190 # Адрес SLAVE устройства
        address: 4346 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_Phase_angleL2
        
      - name: WB-MAP3E_01_Phase_angleL3 # Угол фазового сдвига между напряжением и током для фазы L3
        slave: 190 # Адрес SLAVE устройства
        address: 4347 # Dec-Адрес
        input_type: input # Тип регистра
        data_type: int16 # Формат данных
        scale: 0.1 # Масштабирование данных
        device_class: temperature # Класс устройства (Температура так как измеряется в градусах)
        unit_of_measurement: ° # Единица измерения
        unique_id: WB-MAP3E_01_Phase_angleL3
##### MODBUS #####

Как оттестирую пришлю код на отрисовку в HA

Извините, что пропустил.

Я не планировал использовать WB, но Zigbee устройств с нужным мне функционалом я не нашел. У меня в приоритете было:

  1. Автономное питание от стороннего источника
  2. Отслеживание как характеристик, так и самого наличия электричества

Первый пункт решается подключением WB устройств к АКБ 12В установленной в щите (этот же АКБ уже резервно питает АВР).

Второй пункт вытекает из первого, так как все ZigBee устройства что я видел больше измеряют потребление, но не отслеживают наличие. Специфика моего случая такова, что важная фаза на которой подключен насос откачивающий воду используется только этим насосом. С ZB устройствами я не отслежу что питания на фазе нет, только косвенно, по долгому отсутствию потребления на фазе. Так как наполнение резервуара может быть рандомным - такой метод совершенно не информативен.

Пока не подключая нагрузку получилось так:

  1. Проблема с адресом 6160 и типом данных s32
  2. Не понимаю чем отличаются оказатели в адресе 5136 для u16 и u32 - на выходе они одинаковые и изменяются синхронно.

Такие вещи как углы фазового сдвига мне вообще не понятны сами по себе, так как я не электрик)) Так что пока пойду изучать теорию, потом проверю правильность показаний.

Добрый день!

Прошу прощения за поздний ответ!

Учтите что порядок байт little endian (от младшему к старшему).

Отличается лишь количеством знаков. У u32 содержится более точное значение.

Вам удалось разобраться с остальными регистрами?

Спасибо, пока все что мне нужно (и даже чуть больше) я получаю.

Текст для формы в HomeAssistant

type: entities
entities:
  - entity: sensor.wb_map3e_01_urmsl1_u16
    name: Напряжение (RMS) на фазе L1
    icon: mdi:flash
  - entity: sensor.wb_map3e_01_urmsl2_u16
    name: Напряжение (RMS) на фазе L2
    icon: mdi:flash
  - entity: sensor.wb_map3e_01_urmsl3_u16
    name: Напряжение (RMS) на фазе L3
    icon: mdi:flash
  - entity: sensor.wb_map3e_01_irmsl1
    name: Сила тока - L1
    icon: mdi:flash-auto
  - entity: sensor.wb_map3e_01_irmsl2
    name: Сила тока - L2
    icon: mdi:flash-auto
  - entity: sensor.wb_map3e_01_irmsl3
    name: Сила тока - L3
    icon: mdi:flash-auto
  - entity: sensor.wb_map3e_01_frequency
    name: Частота
    secondary_info: none
  - entity: sensor.wb_map3e_01_phase_anglel1
    icon: mdi:vector-triangle
    name: Угол фазового сдвига между напряжением и током для фазы L1
  - entity: sensor.wb_map3e_01_phase_anglel2
    name: Угол фазового сдвига между напряжением и током для фазы L2
    icon: mdi:vector-triangle
  - entity: sensor.wb_map3e_01_phase_anglel3
    name: Угол фазового сдвига между напряжением и током для фазы L3
    icon: mdi:vector-triangle
  - entity: sensor.wb_map3e_01_px0_1l1
    name: Активная мощность для фазы L1
    icon: mdi:power-socket-de
  - entity: sensor.wb_map3e_01_px0_1l2
    name: Активная мощность для фазы L2
    icon: mdi:power-socket-de
  - entity: sensor.wb_map3e_01_px0_1l3
    name: Активная мощность для фазы L3
    icon: mdi:power-socket-de
  - entity: sensor.wb_map3e_01_totalpx0_1
    name: Суммарная активная мощность
    icon: mdi:power-socket-de
  - entity: sensor.wb_map3e_01_ul1_l2
    name: Линейное напряжение между фазами L1-L2
    icon: mdi:flash-triangle
  - entity: sensor.wb_map3e_01_ul2_l3
    name: Линейное напряжение между фазами L2-L3
    icon: mdi:flash-triangle
  - entity: sensor.wb_map3e_01_ul3_l1
    name: Линейное напряжение между фазами L3-L1
    icon: mdi:flash-triangle
  - entity: sensor.wb_map3e_01_voltageanglel1
    name: Фазовый угол сдвига напряжения между фазами (0)
    icon: mdi:vector-triangle
  - entity: sensor.wb_map3e_01_voltageanglel2
    name: Фазовый угол сдвига напряжения между фазами L1 и L2
    icon: mdi:vector-triangle
  - entity: sensor.wb_map3e_01_voltageanglel3
    name: Фазовый угол сдвига напряжения между фазами L1 и L3
    icon: mdi:vector-triangle
title: WirenBoard (MAP3E_01)

Строка команды для записи значений трансформаторов в память WB-MAP2E подключенного через WB-MGEv2
modbus_client_1.3.0.exe --debug -mtcp -a190 -t0x10 -r0x1460 3002 3006 3004 422 649 566 -p23 192.168.251.28

2 лайка

Здравсвуйте! Вам еще нужна моя помощь?