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

пока нет

как это сделать? поставил admin tools 11, а там нет 485 канала связи…

ээ, к программе существует руководство оператора - там все написано…

Наконец-то дошли руки до скрипта. Как понимаю, счетчик нужно регистрировать как serial device с указанием id и device type. Откуда взять эти значения?

Пока что запуск выглядит так:

serial Energomera WHM adr=777777 on /dev/ttyRS485-2: 9600 7E1
MAKEHEX get  /?777777!

MAKEHEX make  2f 3f 37 37 37 37 37 37 21 0d 0a
ASK send /?777777!

ASK get
Energomera answer timeout

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

Используемый для подключения порт свободен в wb-mqtt-serail?
Для уверенности - остановите его перед экспериментами.

systemctl stop wb-mqtt-serial

Скорее всего этот скрипт для счетчика CE102, а не CE102M, у которого другой протокол. С CE102M работает этот скрипт Считывание показаний и программирование электросчетчика "Энергомера СЕ102М" по rs-485, только таймаут нужно больше 0,2 с выставить.

Полученные значения периодически отправляю в топики. Напр.:

mosquitto_pub -t '/devices/energomera-ce102m/controls/VOLTA' -m '209.52'

В веб-интерфейсе данные видны

Вопрос. Как это описать в шаблоне? Откуда взять поле address? Или по-другому всё делается?

Счетчик, этот счетчик, не через modbus rtu работает- для него шаблон не напишешь.

А разве нельзя эмулировать modbus на самом контроллере? Создать виртуальное устройство, например, и к нему обращаться как к реальному? Или как-то получать эти данные в js-скрипте другим способом?

Модбас - это просто транспорт. Данные - хранятся в mqtt топиках. Если скрипт на питоне туда их уже поместил - то к ним уже можно обратиться. Для удобства - да, можно создать еще и виртуальное устройство Но оно всего лишь служит для отображения mqtt.

На самом деле устройство и так автоматически создается, когда в mqtt-топик приходят данные, так что виртуальное устройство будет лишь его дублировать, так что я присвоил типы с помощью мета-топиков

И ещё питоновский скрипт получает и передает данные от счетчика с некоторой периодичностью. Какую частоту опроса принято выставлять для электрических счетчиков? Раз в секунду, чаще, реже?

Исключительно в зависимости от потребностей. Мне, например, для графиков достаточно значений вообще раз в минуту.
Если нужно засекать пики потребления - то чаще.

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

Объясните, пожалуйста, на пальцах как взаимодействуют друг с другом устройства на шине. Счетчик сейчас подключен ко второму серийному порту. Если я повешу туда 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