Электросчетчик Меркурий 236, интеграция

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Электросчетчик Меркурий 236, интеграция

Сообщение den » 17 апр 2014, 18:29

Только что закончил написание и отладку "вчерне" модуля связи со счетчиком Меркурий 236. По сути, модуль написан по мотивам статьи про Меркурий 230, опубликованной на сайте Андрея, реализация на С. Исходники доступны на https://github.com/Shden/Shden/tree/master/mercury236, возможно кому-то пригодится.

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Электросчетчик Меркурий 236, интеграция

Сообщение dimonix » 18 апр 2014, 10:48

очень полезная весчь :) а какие различия в командах между 230 и 236? пытаюсь считать с 230-го:

Код: Выделить всё

root@homeserver# ./mercury236 --debug
Sent bytes: 4
        00 00 01 B0 
Received bytes: 3
        00 01 B0 
Check channel failure.: Success
root@homeserver# ./mercury236 --debug
Sent bytes: 4
        00 00 01 B0 
Received bytes: 4
        00 00 01 B0 
Sent bytes: 4
        00 00 01 B0 
Received bytes: 1
        00 
Power meter communication channel test failed.: Success

den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Re: Электросчетчик Меркурий 236, интеграция

Сообщение den » 18 апр 2014, 12:16

Никаких отличий между 230 и 236 в том поднаборе команд, которые использованы, я не нашел. То есть по большей части протокол обмена брался по дампам в статье про 230 и уточнялся по спеке.

Что касается возможной причины проблем - кажется, что это коммуникационный канал. По дампу выше видно, что в 1-м запуске все упало на check channel - тривиальная проверка канала. Ответ от счетчика пришел без 1-го байта. Затем 1-я проверка уже прошла, но упала 2-я такая же. Кстати, я у себя увидел баг :) Проверять канал дважды смысла особого нет.

В общем, я бы проверял физический уровень связи.

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Электросчетчик Меркурий 236, интеграция

Сообщение dimonix » 18 апр 2014, 13:17

den писал(а): ...
В общем, я бы проверял физический уровень связи.
физический уровень связи работает. вот вывод другого скрипта на перле. кстати, хорошо бы задавать tty с командной строки.

Код: Выделить всё

root@homeserver:~# ./mercury236 --debug
Sent bytes: 4
        00 00 01 B0 
Received bytes: 4
        00 00 01 B0 
Sent bytes: 4
        00 00 01 B0 
Received bytes: 1
        00 
Power meter communication channel test failed.: Success
root@homeserver:~# ./mercury236 --debug
Sent bytes: 4
        00 00 01 B0 
Received bytes: 7
        00 01 B0 00 00 01 B0 
Check channel failure.: Success
root@homeserver:~# ./mon230 00 111111 /dev/ttyV0
99;0;208.69;0;0;0;0;50.02;null;null;null;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;43650.541;null;4991.05;null;22751.748;null;2882.026;null

den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Re: Электросчетчик Меркурий 236, интеграция

Сообщение den » 23 апр 2014, 02:26

Командная строка - это дело, поправил :-)

По поводу ошибок канала, видимо надо сравнивать параметры с которыми открывается сериальный порт на перле и у меня. Других гипотез нет...

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Электросчетчик Меркурий 236, интеграция

Сообщение dimonix » 23 апр 2014, 17:47

я в перле не силен, видимо это:

Код: Выделить всё

...
my $port=Device::SerialPort->new("$device");
my ($status,$cnt,@data);
...
скрипт полностью http://pastebin.com/uAWMjdqb

den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Re: Электросчетчик Меркурий 236, интеграция

Сообщение den » 26 апр 2014, 01:47

Кажется, нашел возможную причину. Dimonix - попробуйте плз, уже интересно что там )))

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Электросчетчик Меркурий 236, интеграция

Сообщение dimonix » 26 апр 2014, 18:02

den писал(а):Кажется, нашел возможную причину. Dimonix - попробуйте плз, уже интересно что там )))
кажется работает ;) правда углы между фазами какие-то нереальные. у меня тестовый счетчик подключен только к одной фазе.

Код: Выделить всё

root@homeserver# ./mercury236 /dev/ttyV0 --debug
Sent bytes: 4
        00 00 01 B0 
Received bytes: 4
        00 00 01 B0 
Sent bytes: 11
        00 01 01 01 01 01 01 01 01 77 81 
Received bytes: 4
        00 00 01 B0 
Sent bytes: 6
        00 08 16 11 4F 8A 
Received bytes: 12
        00 00 00 00 00 DA 52 00 00 00 39 6C 
Sent bytes: 6
        00 08 16 21 4F 9E 
Received bytes: 12
        00 00 00 00 00 00 00 00 00 00 70 07 
Sent bytes: 6
        00 08 16 30 8F 92 
Received bytes: 15
        00 00 00 00 00 00 00 00 00 00 00 00 00 03 EB 
Sent bytes: 6
        00 08 16 40 8E 76 
Received bytes: 6
        00 00 89 13 26 79 
Sent bytes: 6
        00 08 16 51 4E 7A 
Received bytes: 12
        00 FF FF FF FF FF FF FF FF FF 74 77 
Sent bytes: 6
        00 08 16 00 8F 86 
Received bytes: 15
        00 00 00 00 00 00 00 00 00 00 00 00 00 03 EB 
Sent bytes: 6
        00 08 16 08 8E 40 
Received bytes: 15
        00 00 00 00 00 00 00 00 00 00 00 00 00 03 EB 
Sent bytes: 6
        00 05 00 00 10 25 
Received bytes: 19
        00 F5 03 F1 37 FF FF FF FF 78 00 33 22 FF FF FF FF E0 37 
Sent bytes: 6
        00 05 50 00 2C 25 
Received bytes: 19
        00 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF 65 E1 
Sent bytes: 6
        00 05 40 00 21 E5 
Received bytes: 19
        00 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF 65 E1 
Sent bytes: 4
        00 02 80 71 
Received bytes: 4
        00 00 01 B0 
  Voltage (V):                 0.00   212.10     0.00
  Current (A):                 0.00     0.00     0.00
  Cos(f):                      0.00     0.00     0.00 (    0.00)
  Frequency (Hz):             50.01
  Phase angles (deg):      41943.03 41943.03 41943.03
  Active power (W):            0.00     0.00     0.00 (    0.00)
  Reactive power (VA):         0.00     0.00     0.00 (    0.00)
  Total consumed (KW):     66402.29  7873.08
  Yesterday consumed (KW):     0.00     0.00
  Today consumed (KW):         0.00     0.00

den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Re: Электросчетчик Меркурий 236, интеграция

Сообщение den » 26 апр 2014, 22:30

Ю-хууу :)

Углы в такой конфигурации (при 1 фазе) такие и есть - очевидно, в реализации на стороне счетчика просто происходит переполнение чего-то в ожидании несуществующей фазы. Когда будут все три, картинка станет более правдоподобной, хотя тоже не вполне реальная - у меня он показывает 2 фазы с углом 120 и одну 240. Но в общем-то эти углы не особо полезны в быту - вряд ли кто-то подключает 3-фазные двигатели и прочую сантехнику для которой нужн именно 3 фазы с нужным чередованием.

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Электросчетчик Меркурий 236, интеграция

Сообщение dimonix » 27 апр 2014, 16:31

den писал(а):Ю-хууу :)

Углы в такой конфигурации (при 1 фазе) такие и есть - очевидно, в реализации на стороне счетчика просто происходит переполнение чего-то в ожидании несуществующей фазы. Когда будут все три, картинка станет более правдоподобной, хотя тоже не вполне реальная - у меня он показывает 2 фазы с углом 120 и одну 240. Но в общем-то эти углы не особо полезны в быту - вряд ли кто-то подключает 3-фазные двигатели и прочую сантехнику для которой нужн именно 3 фазы с нужным чередованием.
С углами так и должно быть. На картинке пример данных реального счетчика на подстанции нашей "деревни" (ток и мощность умножить на 30).
pic1.jpg
pic1.jpg (51.43 КБ) 6319 просмотров

den
Сообщения: 8
Зарегистрирован: 17 апр 2014, 16:29

Re: Электросчетчик Меркурий 236, интеграция

Сообщение den » 21 авг 2017, 22:43

Перенес в отдельный модуль, новый адрес: https://github.com/Shden/mercury236.

FlyRouter
Сообщения: 3
Зарегистрирован: 30 авг 2018, 15:09

Re: Электросчетчик Меркурий 236, интеграция

Сообщение FlyRouter » 30 авг 2018, 15:44

Приветствую.
Написал вопрос на GitHub https://github.com/Shden/mercury236/issues/4 однако спрошу и здесь, может кому-то еще будет интересно.
Программка с трехфазным счётчиком работает хорошо, а вот на однофазном Меркурий 206 RN, приобретённом недавно, добиться результата не удалось.
Должен-ли счётчик однофазный что-либо отвечать или проблема в чём-то другом может быть ?

P.S. Удалось выяснить что нужно в качестве RS485 ID использовать не 0, а все восемь цифр серийного номера, потому что эти счётчики не понимают 0 как широковещательный адрес.
В связи с этим предложение - ввести соответствующую опцию в командную строку (номер) ну и подрезать, может (опционально)выхлоп по параметрам, что-бы только одну фазу показывало.

P.P.S. Подключил счётчик в Windows к стандартной программе Конфигуратор, настроил себе тарифные планы (счётчик будет использоваться во внутренней энергосистеме) - т.е. аппаратная часть исправна.
При сборке утилиты из исходников, если вместо 0 указывать серийный номер, ругается на недопустимо большое значение, наверное там что-то нужно еще править.

FlyRouter
Сообщения: 3
Зарегистрирован: 30 авг 2018, 15:09

Re: Электросчетчик Меркурий 236, интеграция

Сообщение FlyRouter » 14 дек 2018, 14:14

Осмелюсь предложить свою самоделку для Меркурий 206 под OpenWrt - https://github.com/ZigFisher/Glutinium/ ... mercury206

Подборка некоторых ссылок и недописанные мои заметки здесь - https://zftlab.org/pages/2018022100.html

Фидбек, тесты и правки приветствуются  Спасибо !

Ответить