Added test case for unismart gas meter.

pull/348/head
Fredrik Öhrström 2021-09-25 11:01:51 +02:00
rodzic 61dbc60fa7
commit 3e64ba587c
6 zmienionych plików z 74 dodań i 2 usunięć

Wyświetl plik

@ -1,4 +1,6 @@
Added support for the Apator uniSMART gas meter.
You can now decode a telegram just by supplying hex on the command line: You can now decode a telegram just by supplying hex on the command line:
wmbusmeters --format=json <hex_string> MyMeter auto 12345678 NOKEY wmbusmeters --format=json <hex_string> MyMeter auto 12345678 NOKEY
or just or just

Wyświetl plik

@ -388,6 +388,10 @@ Tauron Amiplus (amiplus) (includes vendor apator and echelon)
Gavazzi EM24 (em24) Gavazzi EM24 (em24)
Gransystems 301 and 303 (gransystems) Gransystems 301 and 303 (gransystems)
Kamstrup Omnipower (omnipower) Kamstrup Omnipower (omnipower)
Support gas meters:
uniSMART (unismart)
``` ```
The wmbus dongle im871a can listen to either s1, c1 or t1. The wmbus dongle im871a can listen to either s1, c1 or t1.

Wyświetl plik

@ -270,3 +270,8 @@ telegram=|19442423850798160018A2410100133EBBD44081053F243A82A3|
telegram=76442104710007612507727100076121042507B5006005E2E95A3C2A1279A5415E6732679B43369FD5FDDDD783EEEBB48236D34E7C94AF0A18A5FDA5F7D64111EB42D4D891622139F2952F9D12A20088DFA4CF8123871123EE1F6C1DCEA414879DDB4E05E508F1826D7EFBA6964DF804C9261EA23BBF03 telegram=76442104710007612507727100076121042507B5006005E2E95A3C2A1279A5415E6732679B43369FD5FDDDD783EEEBB48236D34E7C94AF0A18A5FDA5F7D64111EB42D4D891622139F2952F9D12A20088DFA4CF8123871123EE1F6C1DCEA414879DDB4E05E508F1826D7EFBA6964DF804C9261EA23BBF03
{"media":"water","meter":"aventieswm","name":"Votten","id":"61070071","total_m3":466.472,"consumption_at_set_date_1_m3":465.96,"consumption_at_set_date_2_m3":458.88,"consumption_at_set_date_3_m3":449.65,"consumption_at_set_date_4_m3":442.35,"consumption_at_set_date_5_m3":431.07,"consumption_at_set_date_6_m3":423.98,"consumption_at_set_date_7_m3":415.23,"consumption_at_set_date_8_m3":409.03,"consumption_at_set_date_9_m3":400.79,"consumption_at_set_date_10_m3":393.2,"consumption_at_set_date_11_m3":388.63,"consumption_at_set_date_12_m3":379.26,"consumption_at_set_date_13_m3":371.26,"consumption_at_set_date_14_m3":357.84,"error_flags":"","timestamp":"1111-11-11T11:11:11Z"} {"media":"water","meter":"aventieswm","name":"Votten","id":"61070071","total_m3":466.472,"consumption_at_set_date_1_m3":465.96,"consumption_at_set_date_2_m3":458.88,"consumption_at_set_date_3_m3":449.65,"consumption_at_set_date_4_m3":442.35,"consumption_at_set_date_5_m3":431.07,"consumption_at_set_date_6_m3":423.98,"consumption_at_set_date_7_m3":415.23,"consumption_at_set_date_8_m3":409.03,"consumption_at_set_date_9_m3":400.79,"consumption_at_set_date_10_m3":393.2,"consumption_at_set_date_11_m3":388.63,"consumption_at_set_date_12_m3":379.26,"consumption_at_set_date_13_m3":371.26,"consumption_at_set_date_14_m3":357.84,"error_flags":"","timestamp":"1111-11-11T11:11:11Z"}
|Votten;61070071;466.472000;;1111-11-11 11:11.11 |Votten;61070071;466.472000;;1111-11-11 11:11.11
# Test Unismart Gas Meter
telegram=|6044B8059430040001037A1D005085E2B670BCF1A5C87E0C1A51DA18924EF984613DA2A9CD39D8F4C7208326C76D42DBEADF80D574192B71BD7C4F56A7F1513151768A9DB804883B28CB085CA2D0F7438C361CB9E2734712ED9BFBB2A14EF55208|
{"media":"gas","meter":"unismart","name":"GasMeter","id":"00043094","total_m3":917,"timestamp":"1111-11-11T11:11:11Z"}
|GasMeter;00043094;917.000000;1111-11-11 11:11.11

Wyświetl plik

@ -58,7 +58,62 @@ MeterUnismart::MeterUnismart(MeterInfo &mi) :
void MeterUnismart::processContent(Telegram *t) void MeterUnismart::processContent(Telegram *t)
{ {
int offset; /*
(unismart) 11: 0C dif (8 digit BCD Instantaneous value)
(unismart) 12: 78 vif (Fabrication no)
(unismart) 13: 96221603
(unismart) 17: 04 dif (32 Bit Integer/Binary Instantaneous value)
(unismart) 18: 6D vif (Date and time type)
(unismart) 19: 122DAF29
(unismart) 1d: 0C dif (8 digit BCD Instantaneous value)
(unismart) 1e: 94 vif (Volume 10² m³)
(unismart) 1f: 3A vife (uncorrected meter unit)
(unismart) 20: * 00170900 total consumption (917.000000 m3)
(unismart) 24: 44 dif (32 Bit Integer/Binary Instantaneous value storagenr=1)
(unismart) 25: 6D vif (Date and time type)
(unismart) 26: 0026A129
(unismart) 2a: 4C dif (8 digit BCD Instantaneous value storagenr=1)
(unismart) 2b: 94 vif (Volume 10² m³)
(unismart) 2c: 3A vife (uncorrected meter unit)
(unismart) 2d: 32110900
(unismart) 31: 01 dif (8 Bit Integer/Binary Instantaneous value)
(unismart) 32: FD vif (Second extension FD of VIF-codes)
(unismart) 33: 67 vife (Special supplier information)
(unismart) 34: 00
(unismart) 35: 02 dif (16 Bit Integer/Binary Instantaneous value)
(unismart) 36: FD vif (Second extension FD of VIF-codes)
(unismart) 37: 74 vife (Reserved)
(unismart) 38: F00C
(unismart) 3a: 0D dif (variable length Instantaneous value)
(unismart) 3b: FD vif (Second extension FD of VIF-codes)
(unismart) 3c: 0C vife (Model/Version)
(unismart) 3d: 06 varlen=6
(unismart) 3e: 554747342020
(unismart) 44: 01 dif (8 Bit Integer/Binary Instantaneous value)
(unismart) 45: FD vif (Second extension FD of VIF-codes)
(unismart) 46: 0B vife (Parameter set identification)
(unismart) 47: 02
(unismart) 48: 01 dif (8 Bit Integer/Binary Instantaneous value)
(unismart) 49: 7F vif (Manufacturer specific)
(unismart) 4a: 14
(unismart) 4b: 06 dif (48 Bit Integer/Binary Instantaneous value)
(unismart) 4c: 6D vif (Date and time type)
(unismart) 4d: 1E120DAF296D
(unismart) 53: 2F skip
(unismart) 54: 2F skip
(unismart) 55: 2F skip
(unismart) 56: 2F skip
(unismart) 57: 2F skip
(unismart) 58: 2F skip
(unismart) 59: 2F skip
(unismart) 5a: 2F skip
(unismart) 5b: 2F skip
(unismart) 5c: 2F skip
(unismart) 5d: 2F skip
(unismart) 5e: 2F skip
*/
int offset;
string key; string key;
if(findKey(MeasurementType::Unknown, ValueInformation::Volume, 0, 0, &key, &t->values)) { if(findKey(MeasurementType::Unknown, ValueInformation::Volume, 0, 0, &key, &t->values)) {

Wyświetl plik

@ -303,6 +303,11 @@ Received telegram from: 61070071
type: Water meter (0x07) type: Water meter (0x07)
ver: 0x25 ver: 0x25
driver: aventieswm aventieswm driver: aventieswm aventieswm
Received telegram from: 00043094
manufacturer: (AMX) APATOR METRIX, Poland (0x5b8)
type: Gas meter (0x03)
ver: 0x01
driver: unismart
EOF EOF
RES=$($PROG --logfile=$LOGFILE --t1 simulations/simulation_t1.txt 2>&1) RES=$($PROG --logfile=$LOGFILE --t1 simulations/simulation_t1.txt 2>&1)

Wyświetl plik

@ -58,7 +58,8 @@ METERS="MyWarmWater supercom587 12345678 NOKEY
Heating compact5 62626262 NOKEY Heating compact5 62626262 NOKEY
Hetta elf 01885619 NOKEY Hetta elf 01885619 NOKEY
DigiWasser dme_07 93929190 NOKEY DigiWasser dme_07 93929190 NOKEY
Votten aventieswm 61070071 A004EB23329A477F1DD2D7820B56EB3D" Votten aventieswm 61070071 A004EB23329A477F1DD2D7820B56EB3D
GasMeter unismart 00043094 00000000000000000000000000000000"
cat simulations/simulation_t1.txt | grep '^{' > $TEST/test_expected.txt cat simulations/simulation_t1.txt | grep '^{' > $TEST/test_expected.txt