Вт авг 01, 2023 17:56:18
Вт авг 01, 2023 18:11:17
Чт авг 10, 2023 14:40:20
sum = float((resultbuffer[26] << 32) | (resultbuffer[25] << 16) | (resultbuffer[24] << 8) | resultbuffer[23]) / 100
MirtekCurrentT = ((resultbuffer[14] >> 2 ) & 0b00000011 ) + 1;
Serial.print("Current Tariff: T");
Serial.println(MirtekCurrentT);
Чт авг 10, 2023 21:48:18
sum = float((resultbuffer[26] << 32) | (resultbuffer[25] << 16) | (resultbuffer[24] << 8) | resultbuffer[23]) / 100
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;
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);
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
transmitt_byte[3] = 0x20; //тип запроса/пакета
0x20h --> 0x00100000b
transmitt_byte[3] = 0x21; //тип запроса/пакета
0x21h --> 0x00100001b
Чт авг 10, 2023 23:13:10
*Конфигурационный байт:
Биты 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й);
Выходные данные (30 байт):
1 байт – тип энергии,
1 байт – конфигурационный байт;
2 байта – коэф. трансформации по напряжению;
2 байта – коэф. трансформации по току;
4 байта - сумма полная;
4 байта - сумма по задействованным тарифам;
16 байт – значения по тарифам
Чт авг 10, 2023 23:36:51
Чт авг 10, 2023 23:57:59
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);
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)
Информационное поле
W SY M2 M1 P3 P2 P1 JL
JL - Есть изменения в журнале (0 - нет, 1- да);
P1 - Вскрытие пломбы крышки клеммной колодки;
P2 - Вскрытие пломбы крышки корпуса;
P3 - Вскрытие пломбы крышки модуля связи;
M1 - Воздействие постоянного магнитного поля
M2 - Воздействие переменного магнитного поля
SY - Синхронизация времени была в текущих сутках
W - Достигнут критический уровень потребительского баланса
Пт авг 11, 2023 00:04:46
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);
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') - коннект.
Пт авг 11, 2023 00:08:35
Пт авг 11, 2023 00:28:30
Пт авг 11, 2023 00:49:13
Пт авг 11, 2023 01:12:45
Пт авг 11, 2023 13:38:27
Сб авг 19, 2023 11:19:10
if (tempbuffer[i] == 0x55 and tempbuffer[i-1] != 0x73){
break;
}
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);
Сб авг 19, 2023 18:04:37
if (tempbuffer[i] == 0x55 and tempbuffer[i-1] != 0x73){
break;
}
mqttClient.publish("mirtek/" + (String)MeterAdressValue + "/Packet_recive", packet);
Сб авг 19, 2023 22:04:40
У Вас случаем не однофазный счетчик?
но таким образом при первом значении 0x55 он должен выйти из цикла и далее не обрабатывать пакет, таким образом в результирующий буффер может попасть пакет не полностью, и парсинги не будут работать, если в середине пакета встретиться зачине 0x55 как значение, а не маркер старта/стопа пакета.
Пт окт 06, 2023 18:20:54
Пт окт 13, 2023 21:36:11
Вт ноя 14, 2023 17:52:04
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
Вт ноя 14, 2023 21:47:40