Поддержка счетчиков Энергомера

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

Объясните, пожалуйста, на пальцах как взаимодействуют друг с другом устройства на шине. Счетчик сейчас подключен ко второму серийному порту. Если я повешу туда ModBus-устройство не возникнут ли конфликты?

Здорово, спасибо!

Возникнут. У вас два разных приложения будут пытаться писать и читать из порта, данные получать сможет только одно. Так что лучше останавливать wb-mqtt-serial на время опроса вашим скриптом, ещё лучше - разнести по разным портам.

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

“Друг с другом” - никак. Устройства только отвечают контроллеру.
На контроллере опросом занимается wb-mqtt-serial, который занимает порт. То есть если порт включен в его конфиг - то никакая другая программа доступ к порту не получит.
“сторонние” устройства обычно и вешаются на отдельный порт - чтобы не мешать.
Есть вариант: написать скрипт который будет останавливать wb-mqtt-serial, запускать скрипт и потом вновь стартовать wb-mqtt-serial. Но на период остановки - не будут работать никакие устройства на всех RS-485 портах.

Здравствуйте!
Вот тут нашел информацию о поддержке CE301 https://wirenboard.com/wiki/Драйвер_wb-mqtt-serial
Уже купил счетчик, но не могу понять как его подключать. У него же свой протокол? Как именно он подключается к WB?
Спасибо!

Здравствуйте. Аналогичный вопрос. Вчера ковырял и тоже не смог прочитать данные с CE301.
wb-mqtt-serial=2.6.0.

Удалось прочитать показания с СЕ301
wb-mqtt-serial=2.5.1

Поделитесь, пожалуйста, информацией! Что именно сделали, чтобы заработал сбор данных?
Спасибо!

Как обновляться

Обновлённое ПО вышло только для Wiren Board 6, предыдущие контролеры не поддерживаются.

Нужно включить unstable репозиторий, раcкоментировав строчку в /etc/apt/sources.list.d/wb-unstable.list или выполнив команду

sed -i 's/^#deb/deb/g' /etc/apt/sources.list.d/wb-unstable.list 

Обновить список пакетов

apt update

и установить новые:

apt install wb-mqtt-gpio wb-mqtt-adc wb-mqtt-w1 wb-mqtt-serial

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

apt policy имяпакета
apt install wb-mqtt-serial=2.5.1 -y

Спасибо! Обновил, тип устройства появился. А можете еще подсказать как найти идентификатор slave_id?
Я ведь правильно понимаю, что это идентификатор счетчика в данном случае?
И найти его можно только через софт Энергомеры?

Можно вбить серийный номер счетчика. Я вбил последние 4 цифры. Можно опросить софтом Энегромеры. Можно попробовать вбить 0, но тогда ответят все счетчики подключенные на этом шлейфу ( не уверен).

Странно, вроде бы все так и делал, но постоянно вижу таймаут:

    root@wirenboard-A4AX6ZKU:/mnt/data/etc# wb-mqtt-serial -c /mnt/data/etc/wb-mqtt-serial-debug.conf -d 3
DEBUG: [storage] Open BDB storage at '/var/lib/wb-mqtt-serial/libwbmqtt.db'
DEBUG: [backend] emit StartEvent{}
DEBUG: [driver] Receive event StartEvent{}
INFO: [mqtt] connection estabilished with code "0" <success>
DEBUG: [mqtt] Publish '/wbretainhack/0f0b29db758eca9a241bb6efc0c986fd' payload: '2'
INFO: [mqtt] subscription succeeded (message id 1)
INFO: [mqtt] subscription succeeded (message id 2)
DEBUG: [backend] HandleMetaDriver topic: "/devices/alarms/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/buzzer/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/network/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/power_status/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wbrules/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/hwmon/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/system/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wb-adc/meta/driver" payload: "wb-adc"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wb-gpio/meta/driver" payload: "wb-gpio"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wb-msw-v3_121/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/thermo_reg/meta/driver" payload: "wb-rules"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wb-msw-v3_82/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/energomera301_2927/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/energomera301_0067/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/energomera301_8841/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/energomera301_0xEC/meta/driver" payload: "wb-modbus"
DEBUG: [backend] HandleMetaDriver topic: "/devices/wb-w1/meta/driver" payload: "wb-w1"
DEBUG: [mqtt] /wbretainhack/0f0b29db758eca9a241bb6efc0c986fd payload: 2
DEBUG: [backend] emit ReadyEvent{}
DEBUG: [tx 0XB5F00730] Open
DEBUG: [tx 0XB5F00730] Close
DEBUG: [serial port driver] setting up devices at </dev/ttyRS485-2 9600 7 E 1>
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] waiting for transaction to complete
DEBUG: [tx 0X7FAB23E0] Open
DEBUG: [serial client] CreateDevice: energomera301_2927 (Energomera CE301/CE303) @ 2927 -- protocol: energomera_iec
DEBUG: [backend] create new local device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/meta/driver' payload: 'wb-modbus'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/meta/name' payload: 'Energomera CE301/CE303 2927'
DEBUG: [driver] Receive event ReadyEvent{}
DEBUG: [backend] create control Total A energy for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy/meta/order' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy/meta/type' payload: 'power_consumption'
DEBUG: [mqtt] Unsubscribe '/wbretainhack/0f0b29db758eca9a241bb6efc0c986fd'
DEBUG: [backend] HandleMetaDriver topic: "/devices/energomera301_2927/meta/driver" payload: "wb-modbus"
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab27b8
DEBUG: [backend] create control Total RP energy for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy/meta/order' payload: '2'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy/meta/type' payload: 'power_consumption'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab2d10
DEBUG: [backend] create control Total RN energy for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy/meta/order' payload: '3'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy/meta/type' payload: 'power_consumption'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab32c8
DEBUG: [backend] create control Total P for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P/meta/order' payload: '4'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P/meta/type' payload: 'power'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab3700
DEBUG: [backend] create control P L1 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1/meta/order' payload: '5'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1/meta/type' payload: 'power'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab3b68
DEBUG: [backend] create control P L2 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2/meta/order' payload: '6'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2/meta/type' payload: 'power'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab40f8
DEBUG: [backend] create control P L3 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3/meta/order' payload: '7'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3/meta/type' payload: 'power'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab45d0
DEBUG: [backend] create control Urms L1 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1/meta/order' payload: '8'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1/meta/type' payload: 'voltage'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab4a58
DEBUG: [backend] create control Urms L2 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2/meta/order' payload: '9'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2/meta/type' payload: 'voltage'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab4ee0
DEBUG: [backend] create control Urms L3 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3/meta/order' payload: '10'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3/meta/type' payload: 'voltage'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab53d0
DEBUG: [backend] create control Irms L1 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1/meta/order' payload: '11'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1/meta/type' payload: 'current'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1' payload: ''
DEBUG: [serial client] AddRegister: 0x7fab5898
DEBUG: [backend] create control Irms L2 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2/meta/order' payload: '12'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2/meta/type' payload: 'current'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2' payload: ''
DEBUG: [serial client] AddRegister: 0x7fab5e28
DEBUG: [backend] create control Irms L3 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3/meta/order' payload: '13'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3/meta/type' payload: 'current'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3' payload: ''
DEBUG: [serial client] AddRegister: 0x7fab6308
DEBUG: [backend] create control Frequency for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency/meta/order' payload: '14'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab67e8
DEBUG: [backend] create control Voltage angle L1-L2 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2/meta/order' payload: '15'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab6c68
DEBUG: [backend] create control Voltage angle L3-L1 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1/meta/order' payload: '16'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab7170
DEBUG: [backend] create control Voltage angle L2-L3 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3/meta/order' payload: '17'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab7678
DEBUG: [backend] create control PF L1 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1/meta/order' payload: '18'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab7c38
DEBUG: [backend] create control PF L2 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2/meta/order' payload: '19'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab8068
DEBUG: [backend] create control PF L3 for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3/meta/order' payload: '20'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab84f0
DEBUG: [backend] create control Total PF for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF/meta/order' payload: '21'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab8978
DEBUG: [backend] create control Serial for device energomera301_2927
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial/meta/error' payload: ''
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial/meta/order' payload: '22'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial/meta/readonly' payload: '1'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial/meta/type' payload: 'value'
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial' payload: '0'
DEBUG: [serial client] AddRegister: 0x7fab8e68
DEBUG: [tx 0X7FAB23E0] Close
DEBUG: [signal handling] Waiting for signals...
DEBUG: [port] read noise:  30 30 b8 28 b1 a9 b4 30 30 b1 28 b7 a9 b4 30 30 b2 28 b7 a9 b4 30 30 33 28 33 a9 a9 03 22
DEBUG: [port] Sleep 100000 us
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
DEBUG: [tx 0XB5F00730] Open
DEBUG: [tx 0XB5F00730] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total A energy/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RP energy/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total RN energy/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L1/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L2/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Urms L3/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [tx 0XB5F00708] Close
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L1/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L2/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Irms L3/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L1/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L2/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/P L3/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total P/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L1/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L2/meta/error' payload: 'r'
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [driver] Receive event SyncEvent{}
DEBUG: [port] Sleep 100000 us
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/PF L3/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Total PF/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L1-L2/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L2-L3/meta/error' payload: 'r'
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Voltage angle L3-L1/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Frequency/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [tx 0XB5F00708] Open
DEBUG: [mqtt] Publish '/devices/energomera301_2927/controls/Serial/meta/error' payload: 'r'
DEBUG: [tx 0XB5F00708] Close
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
DEBUG: [port] Sleep 100000 us
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
DEBUG: [port] Sleep 100000 us
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
DEBUG: [port] Sleep 100000 us
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
DEBUG: [port] Sleep 100000 us
DEBUG: [Energomera] Write: /?2927!<SOH>R1<STX>GROUP(1001(1)1004(1)1008(1)4001(7)4002(7)4003(3))<ETX>"
DEBUG: [port] Write: 2f 3f 32 39 32 37 21 01 52 31 02 47 52 4f 55 50 28 31 30 30 31 28 31 29 31 30 30 34 28 31 29 31 30 30 38 28 31 29 34 30 30 31 28 37 29 34 30 30 32 28 37 29 34 30 30 33 28 33 29 29 03 22
DEBUG: [port] Sleep 65000 us
WARNING: [Energomera] TEnergomeraIecDevice::ReadRegisterRange(): Serial protocol error: request timed out
INFO: [serial device] device energomera_iec:2927 disconnected

Попробуйте вручную открыть файл /etc/wb-mqtt-serial.conf на диске (через интерфейс нельзя), поменять там slave_id вашего счётчика на "" (пустую строку). Если счётчик на линии один - должно работать. Это работает только для Энергомеры и Невы.

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

Пришлите фото подключения, чтобы было видно клеммники контроллера, счётчика, блока питания.

фото


4-жильный кабель, прямое подключение к порту RS-485-2 (больше на нем ничего нет): коричневый GND, зеленый Vout, желтый A, белый B. Напряжение на контактах 14, 15 счетчика есть, 12, 13 тестером прозвонил - все ок.
Вроде бы ошибиться негде.
Может быть конечно что-то накручено в самом счетчике.
Попробую еще купить адаптер usb-rs485 и подключиться напрямую.
Но если как-то можно посмотреть в логах, что твориться на шине в момент обмена - просьба подсказать! Спасибо!

Докладываю: все заработало!
Оказалось надо указать в качестве slave_id полный серийный номер с этикетки!
В моем случае это был 120262927
Разобраться удалось благодаря скрипту c102m.py упомянутому выше: он находил счетчик и при входе в режим программирования показывал серийный номер:

Возможно кому-нибудь пригодится: модифицировал шаблон для CE301 - убрал реактивную энергию и добавил отображение тарифов Т1 и Т2 (обычно день/ночь).

config-energomera-ce301-T2.json

{
“device_type”: “Energomera CE301/CE303 T2”,
“device”: {
“name”: “Energomera CE301/CE303 T2”,
“id”: “energomera301-T2”,
“protocol” : “energomera_iec”,
“frame_timeout_ms” : 100,
“channels”: [
{
“name”: “Total A energy”,
“reg_type”: “group_single”,
“type”: “power_consumption”,
“address”: “0x100101”
},
{
“name”: “Total T1 energy”,
“reg_type”: “group_single”,
“type”: “power_consumption”,
“address”: “0x100102”
},
{
“name”: “Total T2 energy”,
“reg_type”: “group_single”,
“type”: “power_consumption”,
“address”: “0x100103”
},
{
“name”: “Total P”,
“reg_type”: “group_single”,
“type”: “power”,
“scale” : 1000,
“address”: “0x400304”
},
{
“name”: “P L1”,
“reg_type”: “group_single”,
“type”: “power”,
“scale” : 1000,
“address”: “0x400301”
},
{
“name”: “P L2”,
“reg_type”: “group_single”,
“type”: “power”,
“scale” : 1000,
“address”: “0x400302”
},
{
“name”: “P L3”,
“reg_type”: “group_single”,
“type”: “power”,
“scale” : 1000,
“address”: “0x400303”
},
{
“name”: “Urms L1”,
“reg_type”: “group_single”,
“type”: “voltage”,
“address”: “0x400101”
},
{
“name”: “Urms L2”,
“reg_type”: “group_single”,
“type”: “voltage”,
“address”: “0x400102”
},
{
“name”: “Urms L3”,
“reg_type”: “group_single”,
“type”: “voltage”,
“address”: “0x400103”
},
{
“name”: “Irms L1”,
“reg_type”: “group_single”,
“type”: “current”,
“address”: “0x400201”
},
{
“name”: “Irms L2”,
“reg_type”: “group_single”,
“type”: “current”,
“address”: “0x400202”
},
{
“name”: “Irms L3”,
“reg_type”: “group_single”,
“type”: “current”,
“address”: “0x400203”
},
{
“name”: “Frequency”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400D01”
},
{
“name”: “Voltage angle L1-L2”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400B01”
},
{
“name”: “Voltage angle L3-L1”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400B03”
},
{
“name”: “Voltage angle L2-L3”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400B02”
},
{
“name”: “PF L1”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400701”
},
{
“name”: “PF L2”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400702”
},
{
“name”: “PF L3”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400703”
},
{
“name”: “Total PF”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x400704”
},
{
“name”: “Serial”,
“reg_type”: “group_single”,
“type”: “value”,
“address”: “0x500301”
}
]
}
}

Добрый день. Есть ли надежна на поддержку Энергомеры СЕ102М” из “коробки”?
Протокол ГОСТ МЭК 61107.