Сбор показаний электросчетчика Меркурий 200

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 21 июн 2016, 14:24

Так вот в чем дело, конечно, на голодный желудок никогда ничего не получается ;)
БонАппетит!
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

Булат
Сообщения: 23
Зарегистрирован: 22 май 2011, 10:32

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Булат » 21 июн 2016, 14:33

Спасибо!

THK
Модератор
Сообщения: 568
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение THK » 22 июн 2016, 22:12

Борщ помог? :)
Если нет, попробуйте перед запуском скрипта выполнить:

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

setserial /dev/ttyS0 autoconfig
Также можно попробовать явно указать тип UART

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

setserial /dev/ttyS0 uart 16550A
Кажется так команда должна выглядеть, если что, уточните в мане...

PS Действо происходит под root?

Булат
Сообщения: 23
Зарегистрирован: 22 май 2011, 10:32

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Булат » 22 июн 2016, 23:42

Здорова,мужики!
Попробовал два варианта "CAT" "DD",результат на лице:

root@homeService:/opt/bin/powermeter# ./electro_counter.sh amper
OS: LINUX; DEVICE: /dev/ttyS0; COUNTER_SN: 13961366(x0exabx56); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: No; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: amper; PARAMS: none; SIZE: 14; OUTPARSER: "02x3,02x4#Aprintf(\"%0.2f\",^b0/100)"; DESCRIBE: Сила тока A (А)
SEND: _0x00_0x0e_0xab_0x56_0x63_0x28_0x81
ANSWER(1): 0 1
ANSWER(2): 0 1
ANSWER(3): 0 1
Error! Counter(13961366) not answer!

root@homeService:/opt/bin/powermeter# ./electro_counter.sh amper
OS: LINUX; DEVICE: /dev/ttyS0; COUNTER_SN: 13961366(x0exabx56); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: No; DEV_EMULATOR: NO; METHOD_COMMUNITY: CAT; FUZZY_MATCHING_CRC: NO
COMMAND: amper; PARAMS: none; SIZE: 14; OUTPARSER: "02x3,02x4#Aprintf(\"%0.2f\",^b0/100)"; DESCRIBE: Сила тока A (А)
SEND: _0x00_0x0e_0xab_0x56_0x63_0x28_0x81
ANSWER(1): 0 1
ANSWER(2): 0 1
ANSWER(3): 0 1
Error! Counter(13961366) not answer!

Мне,так кажется,что это,дело не в настройках СОМ порта.Но я могу ошибаться.
Интересно, где собака зарыта?
Спасибо за ответ.

kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 23 июн 2016, 11:00

Я делал скрипт под Меркурий200 "по крупицам информации найденными в сети".
Возможно скрипт что-то не так шлет. На практике проверить не могу (нет у меня Меркурия200)

Нужно смотреть что на самом деле летит в ком-порт и что оттуда вылетает, если вылетает.
Снифер jpnevulator.
На одном терминале: jpnevulator --tty /dev/ttyS0 --read
На другом jpnevulator --tty /dev/ttyS0 --write
И пробовать скриптом слать команду.
А потом PHP через dio - раз этот вариант работает.

У меня под FreeBSD Меркурий230 скрипт работает.
Отличия с Меркурием200 только в командах, думаю.
Чуть освобожусь, проведу тесты Linux Debian с тем же Меркурием230.

В смежной теме отписывался форумчанин, у которого скрипт заработал на Raspberry (Linux), правда пришлось ему повозиться с параметрами ком-порта. viewtopic.php?f=1&t=540&start=60#p21451
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

Булат
Сообщения: 23
Зарегистрирован: 22 май 2011, 10:32

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Булат » 23 июн 2016, 15:34

Попробовал сегодня закомментировать ,убрать DEV_FLAGS_LINUX. Скрипт даже не ругнулся,продолжал талдычить Error! Counter(13961366) not answer!.
Я запустил скрипт во время запуска по крону PHP скрипта опроса счетчика,и вот что получилось:

root@homeService:/opt/bin/powermeter# ./electro_counter.sh volt
OS: LINUX; DEVICE: /dev/ttyS0; COUNTER_SN: 13961366(x0exabx56); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: Yes; DEV_EMULATOR: NO; METHOD_COMMUNITY: CAT; FUZZY_MATCHING_CRC: NO
COMMAND: volt; PARAMS: none; SIZE: 14; OUTPARSER: "02x1,02x2#Aprintf(\"%0.1f\",^b0/10)"; DESCRIBE: Напряжение U (В)
SEND: _0x00_0x0e_0xab_0x56_0x63_0x28_0x81
ANSWER(1): x00x0ExABx56x63x22x62x01x61x00x03x25x5Fx44 14 0
0.0

Булат
Сообщения: 23
Зарегистрирован: 22 май 2011, 10:32

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Булат » 23 июн 2016, 15:39

Да, я еще немножко поигрался с настройкой временных задержек(WAITTICK,ID_TIMEOUT и так же кол-во попыток отправки целевого запроса
TRY_COUNT_COMMAND)
root@homeService:/opt/bin/powermeter# ./electro_counter.sh amper
OS: LINUX; DEVICE: /dev/ttyS0; COUNTER_SN: 13961366(x0exabx56); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: CAT; FUZZY_MATCHING_CRC: NO
COMMAND: amper; PARAMS: none; SIZE: 14; OUTPARSER: "02x3,02x4#Aprintf(\"%0.2f\",^b0/100)"; DESCRIBE: Сила тока A (А)
SEND: _0x00_0x0e_0xab_0x56_0x63_0x28_0x81
ANSWER(1): 0 1
ANSWER(2): 0 1
ANSWER(3): x00x0ExABx56x63x22x96x01 8 2
ANSWER(4): x00x0ExABx56x27x00x84x56x81x00x00x00x09x00x00x00x00x00x00x00x00x69x4E 23 2
ANSWER(5): 0 1
Error! Counter(13961366) not answer!

kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 23 июн 2016, 16:52

О, что-то отвечает счетчик ;)
Попробуйте FUZZY_MATCHING_CRC=YES
Параллельно electro_counter.sh и PHP скрипт лучше не запускать.
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

Aquarius
Сообщения: 360
Зарегистрирован: 19 дек 2011, 17:17
Откуда: Дзержинск

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Aquarius » 24 июн 2016, 17:56

Ещё нужно дать права на считывание /dev/ttyUSB0 или как там он у вас определяется.

yuoras
Сообщения: 11
Зарегистрирован: 22 окт 2015, 22:20

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение yuoras » 20 мар 2017, 15:16

Хочу на Synology читать показания с Меркурий 200.
Вот что имею на сегодня
root@Synology:/opt/etc/200# ./electro_counter.sh
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: CAT; FUZZY_MATCHING_CRC: YES
COMMAND: kwatthour; PARAMS: "kwatthour"> zona=01; SIZE: 23; OUTPARSER: "02x$((${zona} * 4 - 3)),02x$((${zona} * 4 - 2)),02x$((${zona} * 4 - 1)),02x$((${zona} * 4))#Aprintf(\"%0.3f\",^b0/1000)"; DESCRIBE: Опрос накопленной энергии
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
TEST_ANSWER(1) 7
TEST_ANSWER(2) 7
TEST_ANSWER(3) 7
TEST_ANSWER(4) 7
TEST_ANSWER(5) 7
Set params device "/dev/ttyUSB0"...
Set params device "/dev/ttyUSB0" - 0.
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
METHOD_COMMUNITY=CAT len=4
./electro_counter.sh: line 69: hexdump: command not found
TEST_ANSWER(1) 7
TEST_ANSWER(2) 7
TEST_ANSWER(3) 7
TEST_ANSWER(4) 7
TEST_ANSWER(5) 7
Error! Not answer "/dev/ttyUSB0"!
root@Synology:/opt/etc/200#
Кстати , использую не родной адаптер Меркурий 221.
Но на винде, он прекрасно работает

kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 21 мар 2017, 16:24

Для начала нужно побороть это
./electro_counter.sh: line 69: hexdump: command not found
Нужно доставить в систему утилиту hexdump
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

yuoras
Сообщения: 11
Зарегистрирован: 22 окт 2015, 22:20

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение yuoras » 26 мар 2017, 19:35

kpp писал(а):Для начала нужно побороть это
./electro_counter.sh: line 69: hexdump: command not found
Нужно доставить в систему утилиту hexdump
Спасибо. Это уже сделанно.

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

sh electro_counter.sh volt
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: volt; PARAMS: none; SIZE: 14; OUTPARSER: "02x1,02x2#Aprintf(\"%0.1f\",^b0/10)"; DESCRIBE: Напряжение U (В)
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x63_0xF4_0x0E
METHOD_COMMUNITY=DD len=14
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x63xF4x0Ex00x01x72x40x63x23x24 14 0
METHOD_COMMUNITY=DD len=14
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x63xF4x0Ex00x01x72x40x63x23x24 14 0
METHOD_COMMUNITY=DD len=14
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x63xF4x0Ex00x01x72x40x63x23x24 14 0
Error CRC!
Это в режиме DD , если в САТ , вообще на порт ругается.
Если разков десять запускать , один раз пробивается

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

sh electro_counter.sh volt
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: volt; PARAMS: none; SIZE: 14; OUTPARSER: "02x1,02x2#Aprintf(\"%0.1f\",^b0/10)"; DESCRIBE: Напряжение U (В)
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x63_0xF4_0x0E
METHOD_COMMUNITY=DD len=14
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x63xF4x0Ex00x01x72x40x63x23x33 14 0
METHOD_COMMUNITY=DD len=14
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x63x23x33x00x00x00x00x00xA3xE0 14 0
233.3

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

/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x20x26x03x17x45xEB 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x20x26x03x17x45xEB 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x20x26x03x17x45xEB 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x21x26x03x17x44x17 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x21x26x03x17x44x17 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x21x26x03x17x44x17 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x22x26x03x17x44x53 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x23x26x03x17x45xAF 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x23x26x03x17x45xAF 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1)  0
TEST_ANSWER(2) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x24x26x03x17x44xDB 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x24x26x03x17x44xDB 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x3Fx00x01x72x40x21x00x18x49x24x26x03x17x44xDB 15 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x25x26x03x17x45x27 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x21x74 2 2
electro_counter.sh: line 312: divide by zero
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x25x26x03x17x45x27 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x26x26x03x17x45x63 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x27x26x03x17x44x9F 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x27x26x03x17x44x9F 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x28x26x03x17x47x8B 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x28x26x03x17x47x8B 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x28x26x03x17x47x8B 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x29x26x03x17x46x77 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x29x26x03x17x46x77 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x29x26x03x17x46x77 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x00x18x49x30x26x03x17x41x2B 21 2
METHOD_COMMUNITY=DD len=255
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(2): x00x01x72x40x21x00x18x49x31x26x03x17x40xD7 14 2
18:49:31 26.03.17
С показаниями вообще странно .Показывает только тариф1 и то не правильно

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

sh electro_counter.sh kwatthour
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: YES; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: kwatthour; PARAMS: "kwatthour"> zona=01; SIZE: 23; OUTPARSER: "02x$((${zona} * 4 - 3)),02x$((${zona} * 4 - 2)),02x$((${zona} * 4 - 1)),02x$((${zona} * 4))#Aprintf(\"%0.3f\",^b0/1000)"; DESCRIBE: Опрос накопленной энергии
TEST_SEND: _0x00_0x01_0x72_0x40_0x00_0xB4_0x27 4
METHOD_COMMUNITY=DD len=4
sleep: invalid number '.050'
sleep: invalid number '.050'
TEST_ANSWER(1) x00x01x72x40 4
SEND: _0x00_0x01_0x72_0x40_0x27_0xF4_0x3D
METHOD_COMMUNITY=DD len=23
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
sleep: invalid number '.050'
ANSWER(1): x00x01x72x40x27x00x57x49x00x00x54x36x00x00x19x45x00x00x00x00x00x96xA4 23 0
574.900
У меня на счётчике 5749,00.
Соответственно пакет, который приходит от счётчика верный
NSWER(1): x00x01x72x40x27x00x57x49x00x00x54x36x00x00x19x45x00x00x00x00x00x96xA4 23 0
Тариф 1- 57x49x00
Тариф-2 54x36x00
Тариф-3 19x45x00

Andrey2509
Сообщения: 139
Зарегистрирован: 22 июн 2015, 13:24

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Andrey2509 » 26 мар 2017, 21:13

Какое напряжение подаёте для питания RS485 ? И какое доходит до самого счётчика?
У меня были проблемы с питанием ровно 5 Вольт (доходило меньше). Нашёл зарядку которая даёт ~6 Вольт и проблемы исчезли.

kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 27 мар 2017, 11:58

Теперь нужно побороть
sleep: invalid number '.050'
Видимо утилита sleep в вашем линуксе не понимает значения меньше единицы.
Можно попробовать в файле getinfo_var_1.sh заменить строку
sleep .050
на
ping -c1 127.0.0.1 > /dev/null
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

yuoras
Сообщения: 11
Зарегистрирован: 22 окт 2015, 22:20

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение yuoras » 27 мар 2017, 20:46

Спасибо .
Питание 5.1 Вольт.
Решило проблему sleep .050
ping -c1 127.0.0.1 > /dev/null.

Актуально с количеством запросов

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

~ # cd /opt/etc/200
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x27x27x03x17x38x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x27x27x03x17x38x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x27x27x03x17x38x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(4): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x27x27x03x17x38x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(5): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x27x27x03x17x38x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(6): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(7): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(8): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(9): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(10): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(11): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x28x27x03x17x3Bx55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(12): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x29x27x03x17x3AxA9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(13): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x29x27x03x17x3AxA9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(14): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x29x27x03x17x3AxA9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(15): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x29x27x03x17x3AxA9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(16): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x29x27x03x17x3AxA9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(17): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x30x27x03x17x3DxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(18): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x30x27x03x17x3DxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(19): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x30x27x03x17x3DxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(20): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x30x27x03x17x3DxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(21): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x30x27x03x17x3DxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(22): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x31x27x03x17x3Cx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(23): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x31x27x03x17x3Cx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(24): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x31x27x03x17x3Cx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(25): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x31x27x03x17x3Cx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(26): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x31x27x03x17x3Cx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(27): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x32x27x03x17x3Cx4D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(28): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x32x27x03x17x3Cx4D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(29): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x32x27x03x17x3Cx4D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(30): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x32x27x03x17x3Cx4D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(31): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x32x27x03x17x3Cx4D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(32): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(33): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(34): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(35): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(36): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(37): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x33x27x03x17x3DxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(38): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x34x27x03x17x3CxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(39): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x34x27x03x17x3CxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(40): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x34x27x03x17x3CxC5 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x36x27x03x17x3Dx7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x08x36x27x03x17x3Dx7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(3): x00x01x72x40x21x01x19x08x36x27x03x17x3Dx7D 14 2
19:08:36 27.03.17
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x31x27x03x17x01xC9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x31x27x03x17x01xC9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x31x27x03x17x01xC9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(4): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(5): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(6): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(7): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(8): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(9): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x32x27x03x17x01x8D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(10): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x33x27x03x17x00x71 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(11): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x33x27x03x17x00x71 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(12): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x33x27x03x17x00x71 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(13): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x33x27x03x17x00x71 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(14): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x33x27x03x17x00x71 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(15): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x34x27x03x17x01x05 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(16): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x34x27x03x17x01x05 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(17): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x34x27x03x17x01x05 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(18): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x34x27x03x17x01x05 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(19): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x34x27x03x17x01x05 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(20): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x35x27x03x17x00xF9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(21): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x35x27x03x17x00xF9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(22): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x35x27x03x17x00xF9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(23): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x35x27x03x17x00xF9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(24): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x35x27x03x17x00xF9 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(25): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x36x27x03x17x00xBD 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(26): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x36x27x03x17x00xBD 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(27): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x36x27x03x17x00xBD 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(28): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x36x27x03x17x00xBD 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(29): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x36x27x03x17x00xBD 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(30): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(31): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(32): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(33): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(34): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(35): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x37x27x03x17x01x41 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(36): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x38x27x03x17x02x55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(37): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x38x27x03x17x02x55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(38): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x38x27x03x17x02x55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(39): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x38x27x03x17x02x55 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(40): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x38x27x03x17x02x55 21 2
Error CRC!
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x40x27x03x17x1AxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x40x27x03x17x1AxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x40x27x03x17x1AxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(4): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x40x27x03x17x1AxF5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(5): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x41x27x03x17x1Bx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(6): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x41x27x03x17x1Bx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(7): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x41x27x03x17x1Bx09 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(8): x00x01x72x40x21x01x19x09x41x27x03x17x1Bx09 14 2
19:09:41 27.03.17
/opt/etc/200 # sh electro_counter.sh datetime
OS: LINUX; DEVICE: /dev/ttyUSB0; COUNTER_SN: 094784(x01x72x40); COUNTER_TYPE: merc200.sh; TEST_COMMUNITY: NO; DEV_EMULATOR: NO; METHOD_COMMUNITY: DD; FUZZY_MATCHING_CRC: NO
COMMAND: datetime; PARAMS: none; SIZE: ${MAX_BLOCK_SIZE}; OUTPARSER: "2#0#3#:\t:#0#4#\t\0#0#5#\t.#0#6#\t.#0#7"; DESCRIBE: Дата время по счетчику
SEND: _0x00_0x01_0x72_0x40_0x21_0x74_0x3F
METHOD_COMMUNITY=DD len=255
ANSWER(1): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x43x27x03x17x1AxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(2): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x43x27x03x17x1AxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(3): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x43x27x03x17x1AxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(4): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x43x27x03x17x1AxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(5): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x43x27x03x17x1AxB1 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(6): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(7): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(8): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(9): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(10): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(11): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x44x27x03x17x1BxC5 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(12): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x45x27x03x17x1Ax39 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(13): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x45x27x03x17x1Ax39 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(14): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x45x27x03x17x1Ax39 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(15): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x45x27x03x17x1Ax39 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(16): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x45x27x03x17x1Ax39 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(17): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x46x27x03x17x1Ax7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(18): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x46x27x03x17x1Ax7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(19): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x46x27x03x17x1Ax7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(20): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x46x27x03x17x1Ax7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(21): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x46x27x03x17x1Ax7D 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(22): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x47x27x03x17x1Bx81 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(23): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x47x27x03x17x1Bx81 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(24): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x47x27x03x17x1Bx81 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(25): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x47x27x03x17x1Bx81 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(26): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x47x27x03x17x1Bx81 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(27): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x48x27x03x17x18x95 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(28): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x48x27x03x17x18x95 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(29): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x48x27x03x17x18x95 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(30): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x48x27x03x17x18x95 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(31): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x48x27x03x17x18x95 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(32): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(33): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(34): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(35): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(36): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(37): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x49x27x03x17x19x69 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(38): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x50x27x03x17x1Ex35 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(39): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x50x27x03x17x1Ex35 21 2
METHOD_COMMUNITY=DD len=255
ANSWER(40): x00x01x72x40x21x74x3Fx00x01x72x40x21x01x19x09x50x27x03x17x1Ex35 21 2
Error CRC!
/opt/etc/200 #

kpp
Сообщения: 142
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение kpp » 28 мар 2017, 12:18

Лучше пока тестировать на командах: amper, power, volt, kwatthour и test.
Попробуйте установить FUZZY_MATCHING_CRC = YES
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

yuoras
Сообщения: 11
Зарегистрирован: 22 окт 2015, 22:20

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение yuoras » 28 мар 2017, 13:48

Так я так и делал , в основном на volt.

Оно практически на всех параметрах ругается на Error CRC!

Окей, попробую установить FUZZY_MATCHING_CRC = YES

Вечером о результатах отпишусь.

А как с показаниями ?
Приходит

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

ANSWER(1): x00x01x72x40x27x00x57x49x00x00x54x36x00x00x19x45x00x00x00x00x00x96xA4 23 0
574.900
и только по одному из тарифов , нужно читать все
У меня на счётчике 5749,00.
Соответственно пакет, который приходит от счётчика верный
АNSWER(1): x00x01x72x40x27x00x57x49x00x00x54x36x00x00x19x45x00x00x00x00x00x96xA4 23 0
Тариф 1- 57x49x00
Тариф-2 54x36x00
Тариф-3 19x45x00

Andrey2509
Сообщения: 139
Зарегистрирован: 22 июн 2015, 13:24

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Andrey2509 » 28 мар 2017, 14:25

1. Какое расстояние от порта компьютера до счётчика?
2. Тип кабеля? Витая пара?
3. Напряжение питания на БП и на самом счётчике?

yuoras
Сообщения: 11
Зарегистрирован: 22 окт 2015, 22:20

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение yuoras » 28 мар 2017, 16:08

0.Кто Вам сказал ,что у Меркурий 200.02 RS-485 ?
Всегда был CAN !!
1.20 сантиметров
2.Витая Пара
3.5.02 Вольт на самом клеммнике счётчика

Andrey2509
Сообщения: 139
Зарегистрирован: 22 июн 2015, 13:24

Re: Сбор показаний электросчетчика Меркурий 200

Сообщение Andrey2509 » 28 мар 2017, 19:02

Контроллер у меня именно RS485, CAN как я понимаю частный случай реализации RS485.
Скрипт брал отсюда: https://github.com/mrkrasser/MercuryStats

Ответить