Модуль отображения информации МИРТ-830 из ардуины
Re: Модуль отображения информации МИРТ-830 из ардуины
Спасибо большое за помощь и консультации. Все работает. Новую версию проверю на неделе, старая вроде тоже хорошо работает, не вылетает. Данные исправно приходят.
- Реклама
Re: Модуль отображения информации МИРТ-830 из ардуины
Небольшие очепятки нашел в коде, уменьшая размерность массива забыл циклы поправить.
- Вложения
-
- My_Mirtek_GW_upd8.zip
- исправлены очепятки
- (8.75 КБ) 191 скачивание
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="SysCat",url="/forum/viewtopic.php?p=4455561#p4455561"]Небольшие очепятки нашел в коде, уменьшая размерность массива забыл циклы поправить.[/uquote]
В вордовом документе, который здесь был, написано про 4 байта данных о тарифах. Т.е на мой взгляд, сумма будет: и т1 и т2 соответственно.
И температура устройства может быть отрицательной. Надо знак проверять.
Можно от счетчика получить какой текущий тариф сейчас работает. Это в конфигурационном (14) байте. Как то так, например:
В вордовом документе, который здесь был, написано про 4 байта данных о тарифах. Т.е на мой взгляд, сумма будет:
Код: Выделить всё
sum = float((resultbuffer[26] << 32) | (resultbuffer[25] << 16) | (resultbuffer[24] << 8) | resultbuffer[23]) / 100И температура устройства может быть отрицательной. Надо знак проверять.
Можно от счетчика получить какой текущий тариф сейчас работает. Это в конфигурационном (14) байте. Как то так, например:
Код: Выделить всё
MirtekCurrentT = ((resultbuffer[14] >> 2 ) & 0b00000011 ) + 1;
Serial.print("Current Tariff: T");
Serial.println(MirtekCurrentT);
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="paulerr",url="/forum/viewtopic.php?p=4460021#p4460021"]В вордовом документе, который здесь был, написано про 4 байта данных о тарифах. Т.е на мой взгляд, сумма будет: и т1 и т2 соответственно.[/uquote]
Согласен, тогда будет наверное верно так (с учетом что в программе счетчика задано место для 4-х тарифов):
Всего у нас в полученном пакете после байтстаффинга 45 байт (0-44), 2-а последних это контрольная сумма и конец пакета, первых два - старт пакета.
Пример реально полученного пакета:
Packet_recive = 73 55 1E 0 FE FF XX XX 5 A8 3 5B 0 0 62 1 0 1 0 AF FE 18 0 AF FE 18 0 74 22 11 0 3B DC 7 0 0 0 0 0 0 0 0 0 DA 55
Packet_recive = start 73 55 | 1E | reserv 0 | pult FE FF | addr XX XX | command 5 | A8 3 5B 0 | type_erg 0 | 62 | koef_U 1 0 | koef_I 1 0 | sum AF FE 18 0 | sum_act_t AF FE 18 0 | t1 74 22 11 0 | t2 3B DC 7 0 | t3 0 0 0 0 | t4 0 0 0 0 | crc DA | stop 55
Причём sum_all равен sum_act_t.
[uquote="paulerr",url="/forum/viewtopic.php?p=4460021#p4460021"]И температура устройства может быть отрицательной. Надо знак проверять.[/uquote]
Кодируется так же как и для Cos ф (значение выше 128 (байтом 0x80) например 0x05 0x80 для -0,005 и 0x0F 0x80 для -0,015)?
[uquote="paulerr",url="/forum/viewtopic.php?p=4460021#p4460021"]Можно от счетчика получить какой текущий тариф сейчас работает. Это в конфигурационном (14) байте. Как то так, например:
[/uquote]
А тут можно по подробнее? Это получается байт который равен 0x62? Почему +1? Какие варианты получения ответа?
Проверил, при переходе 22:59 в 23:01 байт меняется с 0x62 на 0x66.
А как расшифровать A8 3 5B 0 ? иногда принимает значение A8 43 5B 0, причём этот кусок встречается в любом ответе на запрос вне зависимости от команды, проверял прохождение 22:59 на 23:01, не повлияло, пока изменение не понятно когда происходит.
Трейтий байт принятого пакета 0x1E он же в двоичной системе:
0x00011110b --> C 0 | V0 0 | D 0 | L4 1 | L3 1 | L2 1 | L1 1 | L0 0
Parameters:
бит C – кодирование данных,
0 - данные не закодированы;
1 - данные требуют раскодирования;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
1 - пакета для устройств с достаточными вычислительными мощностями (УСПД).
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x11110b -> 30 байт.
Согласно L4-L0 - длина пакета 30 байт: в аккурат между байтов A8 3 5B 0 и CRC, причём считается с 1 по 30 байт. Причём считается что L4 старший бит, а L0 младший, иначе длина получится 15, а не 30. А при запросе даты/времени данный байт длины равен 0x07h (0x00000111b), что для L4-L0 составляет 0x00111, что соответствует длине в 7 байт.
0x00000111b --> C 0 | V0 0 | D 0 | L4 0 | L3 0 | L2 1 | L1 1 | L0 1
бит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00111b -> 7 байт.
Теперь понятная расшифровка байта 3 при отправке:
Дата/время - команда 1C,
0x00100000b --> C 0 | V0 0 | D 1 | L4 0 | L3 0 | L2 0 | L1 0 | L0 0
бит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00000b -> 0 байт, дополнительная подкоманда не передается.
Остальные (0x05, 0x00; 0x2b, 0x00; 0x2b, 0x10):
0x00100001b --> C 0 | V0 0 | D 0 | L4 0 | L3 0 | L2 0 | L1 0 | L0 1
бит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00001b -> 1 байт, передается подкоманда transmitt_byte[14] = c14;.
Код: Выделить всё
sum = float((resultbuffer[26] << 32) | (resultbuffer[25] << 16) | (resultbuffer[24] << 8) | resultbuffer[23]) / 100Согласен, тогда будет наверное верно так (с учетом что в программе счетчика задано место для 4-х тарифов):
Всего у нас в полученном пакете после байтстаффинга 45 байт (0-44), 2-а последних это контрольная сумма и конец пакета, первых два - старт пакета.
Пример реально полученного пакета:
Packet_recive = 73 55 1E 0 FE FF XX XX 5 A8 3 5B 0 0 62 1 0 1 0 AF FE 18 0 AF FE 18 0 74 22 11 0 3B DC 7 0 0 0 0 0 0 0 0 0 DA 55
Packet_recive = start 73 55 | 1E | reserv 0 | pult FE FF | addr XX XX | command 5 | A8 3 5B 0 | type_erg 0 | 62 | koef_U 1 0 | koef_I 1 0 | sum AF FE 18 0 | sum_act_t AF FE 18 0 | t1 74 22 11 0 | t2 3B DC 7 0 | t3 0 0 0 0 | t4 0 0 0 0 | crc DA | stop 55
Код: Выделить всё
sum = float((resultbuffer[22] << 32) | (resultbuffer[21] << 16) | (resultbuffer[20] << 8) | resultbuffer[19]) / 100 // - полная сумма
sum_act_t = float((resultbuffer[26] << 32) | (resultbuffer[25] << 16) | (resultbuffer[24] << 8) | resultbuffer[23]) / 100 // - сумма по задействоанным тарифам
t1 = float((resultbuffer[30] << 32) | (resultbuffer[29] << 16) | (resultbuffer[28] << 8) | resultbuffer[27]) / 100;
t2 = float((resultbuffer[34] << 32) | (resultbuffer[33] << 16) | (resultbuffer[32] << 8) | resultbuffer[31]) / 100;
t3 = float((resultbuffer[38] << 32) | (resultbuffer[37] << 16) | (resultbuffer[36] << 8) | resultbuffer[35]) / 100;
t4 = float((resultbuffer[42] << 32) | (resultbuffer[41] << 16) | (resultbuffer[40] << 8) | resultbuffer[39]) / 100;[uquote="paulerr",url="/forum/viewtopic.php?p=4460021#p4460021"]И температура устройства может быть отрицательной. Надо знак проверять.[/uquote]
Кодируется так же как и для Cos ф (значение выше 128 (байтом 0x80) например 0x05 0x80 для -0,005 и 0x0F 0x80 для -0,015)?
Код: Выделить всё
if (resultbuffer[19] >= 128) {
cosinA = float((resultbuffer[18] | ((resultbuffer[19] - 128) << 8))) / -1000;}
else {cosinA = float((resultbuffer[18] | (resultbuffer[19] << 8))) / 1000;}Код: Выделить всё
MirtekCurrentT = ((resultbuffer[14] >> 2 ) & 0b00000011 ) + 1;
Serial.print("Current Tariff: T");
Serial.println(MirtekCurrentT);
А тут можно по подробнее? Это получается байт который равен 0x62? Почему +1? Какие варианты получения ответа?
Проверил, при переходе 22:59 в 23:01 байт меняется с 0x62 на 0x66.
А как расшифровать A8 3 5B 0 ? иногда принимает значение A8 43 5B 0, причём этот кусок встречается в любом ответе на запрос вне зависимости от команды, проверял прохождение 22:59 на 23:01, не повлияло, пока изменение не понятно когда происходит.
Трейтий байт принятого пакета 0x1E он же в двоичной системе:
0x00011110b --> C 0 | V0 0 | D 0 | L4 1 | L3 1 | L2 1 | L1 1 | L0 0
Parameters:
бит C – кодирование данных,
0 - данные не закодированы;
1 - данные требуют раскодирования;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
1 - пакета для устройств с достаточными вычислительными мощностями (УСПД).
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x11110b -> 30 байт.
Согласно L4-L0 - длина пакета 30 байт:
Код: Выделить всё
0 62 1 0 1 0 AF FE 18 0 AF FE 18 0 74 22 11 0 3B DC 7 0 0 0 0 0 0 0 0 0Код: Выделить всё
0x07h --> 0x0000111bбит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00111b -> 7 байт.
Теперь понятная расшифровка байта 3 при отправке:
Дата/время - команда 1C,
Код: Выделить всё
transmitt_byte[3] = 0x20; //тип запроса/пакета
0x20h --> 0x00100000bбит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00000b -> 0 байт, дополнительная подкоманда не передается.
Остальные (0x05, 0x00; 0x2b, 0x00; 0x2b, 0x10):
Код: Выделить всё
transmitt_byte[3] = 0x21; //тип запроса/пакета
0x21h --> 0x00100001bбит C – кодирование данных,
0 - данные не закодированы;
биты V0 – вид структуры пакета:
0 - пакета для устройств с малыми вычислительными мощностями (счетчиков);
бит D – Направление движения пакета (1 – запрос к устройству, 0 – ответ устройства);
биты L4…L0 –длинна поля Data, значения могут принимать (0 до 31) в зависимости от структуры - 0x00001b -> 1 байт, передается подкоманда transmitt_byte[14] = c14;.
Последний раз редактировалось SysCat Чт авг 10, 2023 23:17:00, всего редактировалось 1 раз.
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="SysCat",url="/forum/viewtopic.php?p=4460201#p4460201"]Кодируется так же как и для Cos ф? (значение выше 128 (байтом 0x80))[/uquote]Да, только с учетом, что по описанию один байт.
В том же вордовом файле есть описание конфигурационного байта, который отдается на 05 команду:
вот приняли в этом байте 0х66 - > 0b01100110.
10 - 000000.00
01 - действующ тариф
10 - количество знаков ОУ
01 - 2 тарифа
Отсюда и "+1" , как я понял, что 00 - Т1, 01 - Т2, 10 - Т3, 11 - Т4. Т.е биты 3,2 будут меняться от времени запроса. Все остальное должно остаться неизменным.
Смотрите на время, которое отдает счетчик. Не факт , что оно совпадает с реальным.
вот с моего счетчика ответ на команду "0x05 00"
73 55 1E 0 FE FF EC 4 5 A8 1 53 0 0 66 1 0 1 0 D1 2F 22 0 D1 2F 22 0 FB 24 15 0 D6 A D 0 0 0 0 0 0 0 0 0 D2 55
2 стартовых пакета 73 55
1 параметры+длина 1E
1 резерв 00
2 адрес EC 04 (01260)
1 команда 05
4 статус A8 01 53 00 (A8 тип счетчика, 01 53 статус, 00 ошибок нет)
дальше ответ по команде, из описания
В том же вордовом файле есть описание конфигурационного байта, который отдается на 05 команду:
Код: Выделить всё
*Конфигурационный байт:
Биты 1,0 – положение точки на ЖКИ
(00-«00000000», 01-«0000000.0»,
10-«000000.00», 11-«00000.000»)
Бит 3,2 – действующий тариф (0-1й);
Бит 5,4 – количество знаков ОУ (отчетное устройство)
(0 - 6,1 - 7, 2 - 8, 3 - 8);
Бит 7,6 – Количество задействованных тарифов (0 - только 1й, 1 - 1й и 2й,
2 - 1й,2й,3й, 3 - 1й,2й,3й,4й);10 - 000000.00
01 - действующ тариф
10 - количество знаков ОУ
01 - 2 тарифа
Отсюда и "+1" , как я понял, что 00 - Т1, 01 - Т2, 10 - Т3, 11 - Т4. Т.е биты 3,2 будут меняться от времени запроса. Все остальное должно остаться неизменным.
Смотрите на время, которое отдает счетчик. Не факт , что оно совпадает с реальным.
вот с моего счетчика ответ на команду "0x05 00"
73 55 1E 0 FE FF EC 4 5 A8 1 53 0 0 66 1 0 1 0 D1 2F 22 0 D1 2F 22 0 FB 24 15 0 D6 A D 0 0 0 0 0 0 0 0 0 D2 55
2 стартовых пакета 73 55
1 параметры+длина 1E
1 резерв 00
2 адрес EC 04 (01260)
1 команда 05
4 статус A8 01 53 00 (A8 тип счетчика, 01 53 статус, 00 ошибок нет)
дальше ответ по команде, из описания
Код: Выделить всё
Выходные данные (30 байт):
1 байт – тип энергии,
1 байт – конфигурационный байт;
2 байта – коэф. трансформации по напряжению;
2 байта – коэф. трансформации по току;
4 байта - сумма полная;
4 байта - сумма по задействованным тарифам;
16 байт – значения по тарифам- Реклама
Re: Модуль отображения информации МИРТ-830 из ардуины
Понял, при прохождении отметки 22:59 - байт равен 0x62h --> 0x01100010b превращается в байт 0x66h --> 0x01100110b
Согласно расшифровке:
0x62h (после 07:00 до 23:00) --> 0x011000010b
считаем справа на лево, итого:
бит 1,0 = 0x10b;
бит 3,2 = 0x00b;
бит 5,4 = 0x10b;
бит 7,6 = 0x10b.
Конфигурационный байт:
Биты 1,0 – положение точки на ЖКИ
(00-«00000000», 01-«0000000.0»,
10-«000000.00», 11-«00000.000»)
Бит 3,2 – действующий тариф (0-1й); --> 0x00b --> 0 --> t1
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b; --> 0x10b --> 2 --> 8
Бит 7,6 – Количество задействованных тарифов (0 - только 1й, 1 - 1й и 2й,
2 - 1й,2й,3й, 3 - 1й,2й,3й,4й); что соответствует в бинарном формате 0x00b, 0x01b, 0x10b, 0x11b --> 0x01b --> 1
0x66h (после 23:00 до 07:00) --> 0x011000110b
считаем справа на лево, итого:
бит 1,0 = 0x10b;
бит 3,2 = 0x01b;
бит 5,4 = 0x10b;
бит 7,6 = 0x10b.
Конфигурационный байт:
Биты 1,0 – положение точки на ЖКИ
(00-«00000000», 01-«0000000.0»,
10-«000000.00», 11-«00000.000»)
Бит 3,2 – действующий тариф (0-1й); --> 0x01b --> 1 --> t2
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b; --> 0x10b --> 2 --> 8
Бит 7,6 – Количество задействованных тарифов (0 - только 1й, 1 - 1й и 2й,
2 - 1й,2й,3й, 3 - 1й,2й,3й,4й); что соответствует в бинарном формате 0x00b, 0x01b, 0x10b, 0x11b --> 0x01b --> 1
[uquote="paulerr",url="/forum/viewtopic.php?p=4460229#p4460229"]4 статус A8 01 53 00 (A8 тип счетчика, 01 53 статус, 00 ошибок нет)[/uquote]
У меня статусы были другие: 0x03 0x5B и 0x43 0x5B.
0xA8 - Счетчик электроэнергии 3ф трансформаторный активно-реактивный (двунаправленный с параметрами сети)
Согласно расшифровке:
0x62h (после 07:00 до 23:00) --> 0x011000010b
считаем справа на лево, итого:
бит 1,0 = 0x10b;
бит 3,2 = 0x00b;
бит 5,4 = 0x10b;
бит 7,6 = 0x10b.
Конфигурационный байт:
Биты 1,0 – положение точки на ЖКИ
(00-«00000000», 01-«0000000.0»,
10-«000000.00», 11-«00000.000»)
Бит 3,2 – действующий тариф (0-1й); --> 0x00b --> 0 --> t1
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b; --> 0x10b --> 2 --> 8
Бит 7,6 – Количество задействованных тарифов (0 - только 1й, 1 - 1й и 2й,
2 - 1й,2й,3й, 3 - 1й,2й,3й,4й); что соответствует в бинарном формате 0x00b, 0x01b, 0x10b, 0x11b --> 0x01b --> 1
0x66h (после 23:00 до 07:00) --> 0x011000110b
считаем справа на лево, итого:
бит 1,0 = 0x10b;
бит 3,2 = 0x01b;
бит 5,4 = 0x10b;
бит 7,6 = 0x10b.
Конфигурационный байт:
Биты 1,0 – положение точки на ЖКИ
(00-«00000000», 01-«0000000.0»,
10-«000000.00», 11-«00000.000»)
Бит 3,2 – действующий тариф (0-1й); --> 0x01b --> 1 --> t2
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b; --> 0x10b --> 2 --> 8
Бит 7,6 – Количество задействованных тарифов (0 - только 1й, 1 - 1й и 2й,
2 - 1й,2й,3й, 3 - 1й,2й,3й,4й); что соответствует в бинарном формате 0x00b, 0x01b, 0x10b, 0x11b --> 0x01b --> 1
[uquote="paulerr",url="/forum/viewtopic.php?p=4460229#p4460229"]4 статус A8 01 53 00 (A8 тип счетчика, 01 53 статус, 00 ошибок нет)[/uquote]
У меня статусы были другие: 0x03 0x5B и 0x43 0x5B.
0xA8 - Счетчик электроэнергии 3ф трансформаторный активно-реактивный (двунаправленный с параметрами сети)
Последний раз редактировалось SysCat Пт авг 11, 2023 00:00:27, всего редактировалось 1 раз.
Re: Модуль отображения информации МИРТ-830 из ардуины
У меня ваш скетч не корректно работает с MQTT. Похоже, что валится при попытке отправки принятого длинного сырого пакета.
возможно эта строчка : Если эту строку закомментировать, то работает.
Для диагностики лог с сервера mosquitto
Добавлено after 3 minutes 29 seconds:
[uquote="SysCat",url="/forum/viewtopic.php?p=4460234#p4460234"]У меня статусы были другие: 0x03 0x5B и 0x43 0x5B.[/uquote]
Можно разобрать побитно по тому же документу, понять что меняется.
0x43 - 0100 0011 . "Синхронизация времени была в текущих сутках". Возможно ваш вариант с двухсторонней телеметрией
возможно эта строчка :
Код: Выделить всё
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);Для диагностики лог с сервера mosquitto
Код: Выделить всё
1691699273: Received PUBLISH from Mirtek_GW (d0, q0, r0, m0, 'mirtek/01260/Packet_send', ... (41 bytes))
1691699273: Received PUBLISH from Mirtek_GW (d0, q0, r0, m0, 'mirtek/01260/Packet_recive', ... (56 bytes))
1691699273: Received PUBLISH from Mirtek_GW (d0, q0, r0, m0, 'mirtek/01260/LastRequest', ... (22 bytes))
1691699283: Received PINGREQ from Mirtek_GW
1691699283: Sending PINGRESP to Mirtek_GW
1691699284: Received PUBLISH from Mirtek_GW (d0, q0, r0, m0, 'mirtek/01260/Packet_send', ... (43 bytes))
1691699284: Client Mirtek_GW closed its connection.
1691699289: New client connected from 192.168.13.162:57624 as Mirtek_GW (p2, c1, k10, u'mqttuser').
1691699289: Sending CONNACK to Mirtek_GW (0, 0)[uquote="SysCat",url="/forum/viewtopic.php?p=4460234#p4460234"]У меня статусы были другие: 0x03 0x5B и 0x43 0x5B.[/uquote]
Можно разобрать побитно по тому же документу, понять что меняется.
Код: Выделить всё
Информационное поле
W SY M2 M1 P3 P2 P1 JL
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки;
P2 - Вскрытие пломбы крышки корпуса;
P3 - Вскрытие пломбы крышки модуля связи;
M1 - Воздействие постоянного магнитного поля
M2 - Воздействие переменного магнитного поля
SY - Синхронизация времени была в текущих сутках
W - Достигнут критический уровень потребительского баланса
Последний раз редактировалось paulerr Пт авг 11, 2023 00:05:16, всего редактировалось 1 раз.
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="paulerr",url="/forum/viewtopic.php?p=4460237#p4460237"]У меня ваш скетч не корректно работает с MQTT. Похоже, что валится при попытке отправки принятого длинного сырого пакета.
возможно эта строчка : Если эту строку закомментировать, то работает.
Для диагностики лог с сервера mosquitto[/uquote]
Там пакет не сырой, обработан байтстафингом, странно конечно, у меня работает и других вроде тоже, у Вас по логам MQTT принял 56 байт "сырого" пакета (с учетом пробелов). Судя по логам ESP32 разорвал соединение с сервером MQTT (такое обычно когда они не в одной сети).
Саму отправку/прием пакетов сделал как дебаг, так как удаленно смотрел пакеты для парсинга новых данных и в новой версии уже отключил.
возможно эта строчка :
Код: Выделить всё
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);Для диагностики лог с сервера mosquitto
Код: Выделить всё
1691699273: Received PUBLISH from Mirtek_GW (d0, q0, r0, m0, 'mirtek/01260/Packet_recive', ... (56 bytes)) - принял же 56 байт
....
1691699284: Client Mirtek_GW closed its connection. - дисконнект (возможно клиент и сервер не в одной сети)
1691699289: New client connected from 192.168.13.162:57624 as Mirtek_GW (p2, c1, k10, u'mqttuser') - коннект.
Там пакет не сырой, обработан байтстафингом, странно конечно, у меня работает и других вроде тоже, у Вас по логам MQTT принял 56 байт "сырого" пакета (с учетом пробелов). Судя по логам ESP32 разорвал соединение с сервером MQTT (такое обычно когда они не в одной сети).
Саму отправку/прием пакетов сделал как дебаг, так как удаленно смотрел пакеты для парсинга новых данных и в новой версии уже отключил.
Последний раз редактировалось SysCat Пт авг 11, 2023 00:11:08, всего редактировалось 2 раза.
Re: Модуль отображения информации МИРТ-830 из ардуины
Сырой я так обозвал.. От 05 команды явно длиннее, чем ответ на запрос времени.
То, что я сам писал висло через 1-3 суток работы. Причем висяк еще и происходил со включенным передатчиком
У меня метеостанция на 433 МГц терялась 
Так что это может быть мой конкретный ESP32 глючит...
То, что я сам писал висло через 1-3 суток работы. Причем висяк еще и происходил со включенным передатчиком
Так что это может быть мой конкретный ESP32 глючит...
Re: Модуль отображения информации МИРТ-830 из ардуины
Тогда получается так:
0x01 --> 0x00000001b --> 0xW 0 | SY 0 | M2 0 | M1 0 | P3 0 | P2 0 | P1 0 | JL 1
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x03 --> 0x00000011b
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x43 --> 0x01000011b
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x5B --> 0x01011011b --> N 0 | AR 1 | ND 0 | W 1 | R2 1 | R1 0 | R0 1 | J 1
J – Положение заводской перемычки: (1 – отсутствует, 0 – установлен);
R0 – Наличие реле: (0 не имеет реле, 1 –имеет реле);
R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);
IN – Импульсный вход учета: (0 – есть, 1 – нет);
ND - Возникновение аварийной ситуации (0 - нет аварии, 1 - авария);
AR – Авто-регистрация (0 – отключена, 1 – включена).
N – Небаланс токов: (0– нет небаланса, 1 – есть небаланс).
Позже тогда внесу доработки в код, расширив парсинг.
paulerr - спасибо за доработки! Вместе мы сила!
0x01 --> 0x00000001b --> 0xW 0 | SY 0 | M2 0 | M1 0 | P3 0 | P2 0 | P1 0 | JL 1
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x03 --> 0x00000011b
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x43 --> 0x01000011b
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да);
P2 - Вскрытие пломбы крышки корпуса (0 - нет, 1- да);
P3 - Вскрытие пломбы крышки модуля связи (0 - нет, 1- да);
M1 - Воздействие постоянного магнитного поля (0 - нет, 1- да);
M2 - Воздействие переменного магнитного поля (0 - нет, 1- да);
SY - Синхронизация времени была в текущих сутках (0 - нет, 1- да);
W - Достигнут критический уровень потребительского баланса (0 - нет, 1- да).
0x5B --> 0x01011011b --> N 0 | AR 1 | ND 0 | W 1 | R2 1 | R1 0 | R0 1 | J 1
J – Положение заводской перемычки: (1 – отсутствует, 0 – установлен);
R0 – Наличие реле: (0 не имеет реле, 1 –имеет реле);
R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);
IN – Импульсный вход учета: (0 – есть, 1 – нет);
ND - Возникновение аварийной ситуации (0 - нет аварии, 1 - авария);
AR – Авто-регистрация (0 – отключена, 1 – включена).
N – Небаланс токов: (0– нет небаланса, 1 – есть небаланс).
Позже тогда внесу доработки в код, расширив парсинг.
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="SysCat",url="/forum/viewtopic.php?p=4460250#p4460250"]P1 - Вскрытие пломбы крышки клеммной колодки (0 - нет, 1 - да)[/uquote] А что Вам на это говорят местные электросети?
[uquote="SysCat",url="/forum/viewtopic.php?p=4460250#p4460250"]R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);[/uquote] фигня какая-то, электричество выключили?
Может не стоит это парсить, вопросов много будет?
Возможно в веб морде стоит нарисовать по данным счетчика график потребления по месяцам. Он же в себе хранит срезы, вопрос только в месте на esp32
[uquote="SysCat",url="/forum/viewtopic.php?p=4460250#p4460250"]R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);[/uquote] фигня какая-то, электричество выключили?
Может не стоит это парсить, вопросов много будет?
Возможно в веб морде стоит нарисовать по данным счетчика график потребления по месяцам. Он же в себе хранит срезы, вопрос только в месте на esp32
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="paulerr",url="/forum/viewtopic.php?p=4460254#p4460254"]А что Вам на это говорят местные электросети?[/uquote]
У меня в свое время были перепутаны провода и при замене одиночных алюминиевых линий на витой кабель было не верное подключение, по стандарту по цветам одно, по факту те кто заводил в дом от столба руководствовался своей логикой. И при переключении мне не корректно подключили, так что получилось 2 фазы со столба в розетке сразу, возможно что-то тогда потом и ковыряли, меняли подключение, не помню точно был ли уже тогда счетчик или нет, но счетчик на столбе высоко, пока претензий не было. Мы же продвинулись и читаем значения со счетчика выше тех, которые заложены в пульте.
[uquote="paulerr",url="/forum/viewtopic.php?p=4460254#p4460254"][uquote="SysCat",url="/forum/viewtopic.php?p=4460250#p4460250"]R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);[/uquote] фигня какая-то, электричество выключили?
Может не стоит это парсить, вопросов много будет?[/uquote]
При выключенном электричестве значений бы от счетчика не поступало бы, ранее пару раз срабатывало реле в самом счетчике когда станок запускал и были кз, но автоматы в доме не срабатывали, сработала защита в самом счетчике, тогда на пульте (4-х кнопочном) и рисовало разомкнутый контакт, через 15 минут оно самовосстанавливалось. Тут данные согласно Word-овскому файлу, возможно в нем тоже есть ошибки. Так же есть же реле NO и NC, может то которое установлено - инвертное и значения на самом деле нужно инвертировать?!
У Вас статус 0x01h 0x53h - Вам проще
0x53h --> 01010011b
J – Положение заводской перемычки: (1 – отсутствует, 0 – установлен);
R0 – Наличие реле: (0 не имеет реле, 1 –имеет реле);
R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);
IN – Импульсный вход учета: (0 – есть, 1 – нет);
ND - Возникновение аварийной ситуации (0 - нет аварии, 1 - авария);
AR – Авто-регистрация (0 – отключена, 1 – включена).
N – Небаланс токов: (0 – нет небаланса, 1 – есть небаланс).
[uquote="paulerr",url="/forum/viewtopic.php?p=4460254#p4460254"]Возможно в веб морде стоит нарисовать по данным счетчика график потребления по месяцам. Он же в себе хранит срезы, вопрос только в месте на esp32[/uquote]
Это надо реализовывать работу с EEPROM, работу с RDTools, тема хорошая, но пока с этим не работал. В счетчике есть какие-то данные прям за разный период. Но надо делать парсинг.
Есть тоже интересный приборчик - PowerMeter там реализовано все на Demos W1 mini, данные хранятся в EEPROM откуда строятся графики в Web-интерфейсе --> вот так например:
Нам бы для начала реализовать OTA обновление прошивки бы 
А вы заметили, что:
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b;
2-я конфигурация - 8 символов и
3-я конфигурвция - 8 символов?
У меня в свое время были перепутаны провода и при замене одиночных алюминиевых линий на витой кабель было не верное подключение, по стандарту по цветам одно, по факту те кто заводил в дом от столба руководствовался своей логикой. И при переключении мне не корректно подключили, так что получилось 2 фазы со столба в розетке сразу, возможно что-то тогда потом и ковыряли, меняли подключение, не помню точно был ли уже тогда счетчик или нет, но счетчик на столбе высоко, пока претензий не было. Мы же продвинулись и читаем значения со счетчика выше тех, которые заложены в пульте.
[uquote="paulerr",url="/forum/viewtopic.php?p=4460254#p4460254"][uquote="SysCat",url="/forum/viewtopic.php?p=4460250#p4460250"]R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);[/uquote] фигня какая-то, электричество выключили?
Может не стоит это парсить, вопросов много будет?[/uquote]
При выключенном электричестве значений бы от счетчика не поступало бы, ранее пару раз срабатывало реле в самом счетчике когда станок запускал и были кз, но автоматы в доме не срабатывали, сработала защита в самом счетчике, тогда на пульте (4-х кнопочном) и рисовало разомкнутый контакт, через 15 минут оно самовосстанавливалось. Тут данные согласно Word-овскому файлу, возможно в нем тоже есть ошибки. Так же есть же реле NO и NC, может то которое установлено - инвертное и значения на самом деле нужно инвертировать?!
У Вас статус 0x01h 0x53h - Вам проще
0x53h --> 01010011b
J – Положение заводской перемычки: (1 – отсутствует, 0 – установлен);
R0 – Наличие реле: (0 не имеет реле, 1 –имеет реле);
R1 – Тип реле: (0 – реле отключения, 1 – реле управления);
R2 – Состояние реле: (0 – держит нагрузку, 1 – отключило нагрузку);
IN – Импульсный вход учета: (0 – есть, 1 – нет);
ND - Возникновение аварийной ситуации (0 - нет аварии, 1 - авария);
AR – Авто-регистрация (0 – отключена, 1 – включена).
N – Небаланс токов: (0 – нет небаланса, 1 – есть небаланс).
[uquote="paulerr",url="/forum/viewtopic.php?p=4460254#p4460254"]Возможно в веб морде стоит нарисовать по данным счетчика график потребления по месяцам. Он же в себе хранит срезы, вопрос только в месте на esp32[/uquote]
Это надо реализовывать работу с EEPROM, работу с RDTools, тема хорошая, но пока с этим не работал. В счетчике есть какие-то данные прям за разный период. Но надо делать парсинг.
Есть тоже интересный приборчик - PowerMeter там реализовано все на Demos W1 mini, данные хранятся в EEPROM откуда строятся графики в Web-интерфейсе --> вот так например:
Спойлер

А вы заметили, что:
Бит 5,4 – количество знаков ОУ
(0 - 6,1 - 7, 2 - 8, 3 - 8 ) 0x00b, 0x01b, 0x10b, 0x11b;
2-я конфигурация - 8 символов и
3-я конфигурвция - 8 символов?
Re: Модуль отображения информации МИРТ-830 из ардуины
Мы тут доки смотрим от ИЭКа - может быть конфигурация разная с Миртеком
Для жилого дома точное соответствие фаз (L1, L2, L3) не сильно принципиально. Если есть 3х фазный двигатель, то прибором найти правильное чередование фаз. У нас уже пару лет идет замена старой проводки на СИП и уже раза три менялись фазы. В щитке стоит 3х фазный вольтметр, и хорошо видно изменения, ибо на разных фазах сильно напряжение гуляет по разному. Вот обещают в этом году закончить - на вводном автомате перекину провода для правильного чередования.
Про ОТА: для библиотеки IotWebConf есть пример IotWebConf04UpdateServer . Похоже на ОТА.
Для жилого дома точное соответствие фаз (L1, L2, L3) не сильно принципиально. Если есть 3х фазный двигатель, то прибором найти правильное чередование фаз. У нас уже пару лет идет замена старой проводки на СИП и уже раза три менялись фазы. В щитке стоит 3х фазный вольтметр, и хорошо видно изменения, ибо на разных фазах сильно напряжение гуляет по разному. Вот обещают в этом году закончить - на вводном автомате перекину провода для правильного чередования.
Про ОТА: для библиотеки IotWebConf есть пример IotWebConf04UpdateServer . Похоже на ОТА.
Re: Модуль отображения информации МИРТ-830 из ардуины
Всем привет!
SysCat, спасибо за старания!
В моем случае последняя сборка заработала после внесения следующих правок:
1. Почему-то принимаемый пакет после байта 0x55 содержит всегда еще один байт. Из-за этого вычисление CRC работало неверно. Для решения добавил в обработке байтстаффингом:
2. Так же как у paulerr mqtt не получал никакие данные кроме даты последнего обращения к счетчику, пока не закомментил строчку
3. int gdo0 = 2 (вместо 22); #define STATUS_PIN 16 (вместо 2). Тут не разбирался что к чему, саму схемку паял давно для первой версии скетча, сейчас просто подставил старые значения, т.к. с новыми все зависало глухо при отправке запроса
SysCat, спасибо за старания!
В моем случае последняя сборка заработала после внесения следующих правок:
1. Почему-то принимаемый пакет после байта 0x55 содержит всегда еще один байт. Из-за этого вычисление CRC работало неверно. Для решения добавил в обработке байтстаффингом:
Код: Выделить всё
if (tempbuffer[i] == 0x55 and tempbuffer[i-1] != 0x73){
break;
} Код: Выделить всё
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="digiboy",url="/forum/viewtopic.php?p=4464577#p4464577"]1. Почему-то принимаемый пакет после байта 0x55 содержит всегда еще один байт. Из-за этого вычисление CRC работало неверно. Для решения добавил в обработке байтстаффингом:
[/uquote]
У Вас случаем не однофазный счетчик? Тут у Вас проверка, что если подряд НЕ идут 0x73 0x55 (стартовый пакет), странно что у вас он в конце попадается, но таким образом при первом значении 0x55 он должен выйти из цикла и далее не обрабатывать пакет, таким образом в результирующий буффер может попасть пакет не полностью, и парсинги не будут работать, если в середине пакета встретиться зачине 0x55 как значение, а не маркер старта/стопа пакета. Если я правильно понимаю.
[uquote="digiboy",url="/forum/viewtopic.php?p=4464577#p4464577"]2. Так же как у paulerr mqtt не получал никакие данные кроме даты последнего обращения к счетчику, пока не закомментил строчку[/uquote]
Очень странно у меня и знакомого все работает, но это строка более для отладки была, туда выводится полученный пакет.
[uquote="digiboy",url="/forum/viewtopic.php?p=4464577#p4464577"]3. int gdo0 = 2 (вместо 22); #define STATUS_PIN 16 (вместо 2). Тут не разбирался что к чему, саму схемку паял давно для первой версии скетча, сейчас просто подставил старые значения, т.к. с новыми все зависало глухо при отправке запроса[/uquote]
Тут физически надо перепаять 2 контакт на 22 между ESP32 и CC1101, что так же писалось выше.
Код: Выделить всё
if (tempbuffer[i] == 0x55 and tempbuffer[i-1] != 0x73){
break;
} У Вас случаем не однофазный счетчик? Тут у Вас проверка, что если подряд НЕ идут 0x73 0x55 (стартовый пакет), странно что у вас он в конце попадается, но таким образом при первом значении 0x55 он должен выйти из цикла и далее не обрабатывать пакет, таким образом в результирующий буффер может попасть пакет не полностью, и парсинги не будут работать, если в середине пакета встретиться зачине 0x55 как значение, а не маркер старта/стопа пакета. Если я правильно понимаю.
[uquote="digiboy",url="/forum/viewtopic.php?p=4464577#p4464577"]2. Так же как у paulerr mqtt не получал никакие данные кроме даты последнего обращения к счетчику, пока не закомментил строчку
Код: Выделить всё
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);Очень странно у меня и знакомого все работает, но это строка более для отладки была, туда выводится полученный пакет.
[uquote="digiboy",url="/forum/viewtopic.php?p=4464577#p4464577"]3. int gdo0 = 2 (вместо 22); #define STATUS_PIN 16 (вместо 2). Тут не разбирался что к чему, саму схемку паял давно для первой версии скетча, сейчас просто подставил старые значения, т.к. с новыми все зависало глухо при отправке запроса[/uquote]
Тут физически надо перепаять 2 контакт на 22 между ESP32 и CC1101, что так же писалось выше.
Re: Модуль отображения информации МИРТ-830 из ардуины
Нет, счетчик 3ф, большой, с экраном.У Вас случаем не однофазный счетчик?
Почему-то в принимаемом пакете всегда есть хвост после байта 0x55. В середине 0x55 попасться не может, т.к. обрезка происходит ДО обратного байтстаффинга (то есть в сыром принимаемом пакете). А 55 в середине может появиться только после байтстаффинга.но таким образом при первом значении 0x55 он должен выйти из цикла и далее не обрабатывать пакет, таким образом в результирующий буффер может попасть пакет не полностью, и парсинги не будут работать, если в середине пакета встретиться зачине 0x55 как значение, а не маркер старта/стопа пакета.
Re: Модуль отображения информации МИРТ-830 из ардуины
Добрый день.
Никто не сталкивался с Миртеками у которых радиомодуль на 2400МГц? Интересно, чем к нему можно подключиться из доступных радиомодулей, какой там протокол радиосвязи, частота, модуляция и т.д. У производителя есть модем МИРТ-541, но он уж очень дорогой. Судя по всему, для MeterTools он выглядит как com-порт. Сомневаюсь, что там WiFi; по документам ZigBee - это отдельная опция.
Конкретно у меня модификация RF2400/2.
Производитель пишет очень мало:
на 2400 МГц в радиоканале составляет 250 кБод/с.
• RF2400/1 – радиомодуль с модуляцией сигнала в радиоэфире №1, по умолчанию рабочая частота излучения 2404,880404 МГц;
• RF2400/2 – радиомодуль с модуляцией сигнала в радиоэфире №2;
• RF2400/3 – радиомодуль с модуляцией сигнала в радиоэфире №3, по умолчанию рабочая частота излучения 2404,880404 МГц;
• RF2400/4 – радиомодуль с модуляцией сигнала в радиоэфире №4;
• RF2400/5 – радиомодуль с модуляцией сигнала в радиоэфире №2 и возможность передачи информации об отключении питания у счетчика;
• RF2400/6 – радиомодуль работающей в стандарте Bluetooth 5.0 предназначенный для работы с индикаторным устройством. Модуль по умолчанию имеет встроенную антенну.
Никто не сталкивался с Миртеками у которых радиомодуль на 2400МГц? Интересно, чем к нему можно подключиться из доступных радиомодулей, какой там протокол радиосвязи, частота, модуляция и т.д. У производителя есть модем МИРТ-541, но он уж очень дорогой. Судя по всему, для MeterTools он выглядит как com-порт. Сомневаюсь, что там WiFi; по документам ZigBee - это отдельная опция.
Конкретно у меня модификация RF2400/2.
Производитель пишет очень мало:
Спойлер
Скорость обмена информации при связи со счетчиком по радиоинтерфейсуна 2400 МГц в радиоканале составляет 250 кБод/с.
• RF2400/1 – радиомодуль с модуляцией сигнала в радиоэфире №1, по умолчанию рабочая частота излучения 2404,880404 МГц;
• RF2400/2 – радиомодуль с модуляцией сигнала в радиоэфире №2;
• RF2400/3 – радиомодуль с модуляцией сигнала в радиоэфире №3, по умолчанию рабочая частота излучения 2404,880404 МГц;
• RF2400/4 – радиомодуль с модуляцией сигнала в радиоэфире №4;
• RF2400/5 – радиомодуль с модуляцией сигнала в радиоэфире №2 и возможность передачи информации об отключении питания у счетчика;
• RF2400/6 – радиомодуль работающей в стандарте Bluetooth 5.0 предназначенный для работы с индикаторным устройством. Модуль по умолчанию имеет встроенную антенну.
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="Raincons",url="/forum/viewtopic.php?p=4485675#p4485675"]Добрый день.
Никто не сталкивался с Миртеками у которых радиомодуль на 2400МГц?[/uquote]
В MeterTools доступны следующие типы каналов связи: RS232, Ethernet, M2MConnect, HayesModem, TechReport, Bluetooth. Режима ZigBee не видно. Так же вроде есть модуль на основе CC1101 на 2.4Ghz (2.4GHz Full-duplex UART 2km 100mw Wireless CC1100/CC1101 RF Transceiver Module)
https://www.alibaba.com/product-detail/ ... 98214.html
AS69-T20 2,4G nRF24L01 UART двунаправленный модуль беспроводной последовательной передачи
https://aliexpress.ru/item/32880748312. ... 5607378660
Никто не сталкивался с Миртеками у которых радиомодуль на 2400МГц?[/uquote]
В MeterTools доступны следующие типы каналов связи: RS232, Ethernet, M2MConnect, HayesModem, TechReport, Bluetooth. Режима ZigBee не видно. Так же вроде есть модуль на основе CC1101 на 2.4Ghz (2.4GHz Full-duplex UART 2km 100mw Wireless CC1100/CC1101 RF Transceiver Module)
Спойлер

AS69-T20 2,4G nRF24L01 UART двунаправленный модуль беспроводной последовательной передачи
https://aliexpress.ru/item/32880748312. ... 5607378660
Re: Модуль отображения информации МИРТ-830 из ардуины
Купил миртек с опцией 2400/2 для экспериментов. Спасибо продавцу, он совершенно бесплатно добавил модуль 2400/2 от неисправного трехфазного счетчика. Но задачка подключения не такая простая, как я надеялся.
Модуль называется "ComMod Z", построен на контроллере EM357. Интернет утверждает, что это разработка ООО "ТелеПозиционный Проект". Больше никакой информации не нашел, кроме той, что модули с таким же названием ставились не только в счетчики миртек. Но не факт, что с аналогичной прошивкой и настройками.
Модуль ComMod Z Другой модуль, установленный в счетчик Подключается он к счетчику 4 выводами, GND, 5V, Rx, Tx, протокол UART. При старте происходит обмен модуля со счетчиком, потом тишина. Запрос и ответ:
F50C - это адрес счетчика, команда 1C - запрос даты-времени. Запрос и ответ повторяется 2 раза, различаются только секунды в ответе. Затем полная тишина.
Получается, что модуль знает адрес счетчика и конфигурируют его заранее. И он не просто прозрачный радиомодем, а способен самостоятельно получать данные и, видимо, отправлять их в радиоканал.
EM357 это ZigBee передатчик, но он может реализовать и "ZigBee-подобный" протокол, тогда без его прошивки не разобраться, что он и как передает. И получится ли его связать с китайскими ZigBee модулями. Надеюсь, что это все же обычный ZigBee.
Пока что идеи понять что это и как работает закончились.
Модуль называется "ComMod Z", построен на контроллере EM357. Интернет утверждает, что это разработка ООО "ТелеПозиционный Проект". Больше никакой информации не нашел, кроме той, что модули с таким же названием ставились не только в счетчики миртек. Но не факт, что с аналогичной прошивкой и настройками.
Модуль ComMod Z Другой модуль, установленный в счетчик Подключается он к счетчику 4 выводами, GND, 5V, Rx, Tx, протокол UART. При старте происходит обмен модуля со счетчиком, потом тишина. Запрос и ответ:
Код: Выделить всё
73 55 20 00 0C F5 FF FF 1C 00 00 00 00 A1 55
73 55 07 00 FF FF 0C F5 1C 98 07 53 00 29 22 02 01 06 08 12 F1 55
Получается, что модуль знает адрес счетчика и конфигурируют его заранее. И он не просто прозрачный радиомодем, а способен самостоятельно получать данные и, видимо, отправлять их в радиоканал.
EM357 это ZigBee передатчик, но он может реализовать и "ZigBee-подобный" протокол, тогда без его прошивки не разобраться, что он и как передает. И получится ли его связать с китайскими ZigBee модулями. Надеюсь, что это все же обычный ZigBee.
Пока что идеи понять что это и как работает закончились.
Re: Модуль отображения информации МИРТ-830 из ардуины
[uquote="SysCat",url="/forum/viewtopic.php?p=4488839#p4488839"]Так же вроде есть модуль на основе CC1101 на 2.4Ghz (2.4GHz Full-duplex UART 2km 100mw Wireless CC1100/CC1101 RF Transceiver Module)[/uquote]CC1101 работает только на частотах ниже 1 ГГц. Там на сайте ошибка в описании.


