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

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

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

1 лайк

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

Возникнут. У вас два разных приложения будут пытаться писать и читать из порта, данные получать сможет только одно. Так что лучше останавливать 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

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 имяпакета
1 лайк
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 упомянутому выше: он находил счетчик и при входе в режим программирования показывал серийный номер:

1 лайк

Возможно кому-нибудь пригодится: модифицировал шаблон для 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”
}
]
}
}

1 лайк

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