kopia lustrzana https://github.com/weetmuts/wmbusmeters
Store numeric values based on name+unit instead of name+quantity.
rodzic
94d4ddce16
commit
71fe4b4392
|
@ -1111,7 +1111,7 @@ bool MeterCommonImplementation::handleTelegram(AboutTelegram &about, vector<ucha
|
||||||
}
|
}
|
||||||
|
|
||||||
triggerUpdate(&t);
|
triggerUpdate(&t);
|
||||||
/* string s = debugValues();
|
/*string s = debugValues();
|
||||||
|
|
||||||
printf("\n\nVALUES------\n%s\n--------------\n", s.c_str());*/
|
printf("\n\nVALUES------\n%s\n--------------\n", s.c_str());*/
|
||||||
|
|
||||||
|
@ -1255,12 +1255,12 @@ void MeterCommonImplementation::setNumericValue(FieldInfo *fi, DVEntry *dve, Uni
|
||||||
if (dve == NULL)
|
if (dve == NULL)
|
||||||
{
|
{
|
||||||
string field_name_no_unit = fi->vname();
|
string field_name_no_unit = fi->vname();
|
||||||
numeric_values_[pair<string,Quantity>(field_name_no_unit, fi->xuantity())] = NumericField(u, v, fi);
|
numeric_values_[pair<string,Unit>(field_name_no_unit, fi->displayUnit())] = NumericField(u, v, fi);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
field_name_no_unit = fi->generateFieldNameNoUnit(dve);
|
field_name_no_unit = fi->generateFieldNameNoUnit(dve);
|
||||||
numeric_values_[pair<string,Quantity>(field_name_no_unit, fi->xuantity())] = NumericField(u, v, fi, *dve);
|
numeric_values_[pair<string,Unit>(field_name_no_unit, fi->displayUnit())] = NumericField(u, v, fi, *dve);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1284,7 +1284,7 @@ bool MeterCommonImplementation::hasValue(FieldInfo *fi)
|
||||||
|
|
||||||
bool MeterCommonImplementation::hasNumericValue(FieldInfo *fi)
|
bool MeterCommonImplementation::hasNumericValue(FieldInfo *fi)
|
||||||
{
|
{
|
||||||
pair<string,Quantity> key(fi->vname(),fi->xuantity());
|
pair<string,Unit> key(fi->vname(),fi->displayUnit());
|
||||||
|
|
||||||
return numeric_values_.count(key) != 0;
|
return numeric_values_.count(key) != 0;
|
||||||
}
|
}
|
||||||
|
@ -1297,7 +1297,7 @@ bool MeterCommonImplementation::hasStringValue(FieldInfo *fi)
|
||||||
double MeterCommonImplementation::getNumericValue(FieldInfo *fi, Unit to)
|
double MeterCommonImplementation::getNumericValue(FieldInfo *fi, Unit to)
|
||||||
{
|
{
|
||||||
string field_name_no_unit = fi->vname();
|
string field_name_no_unit = fi->vname();
|
||||||
pair<string,Quantity> key(field_name_no_unit,fi->xuantity());
|
pair<string,Unit> key(field_name_no_unit,fi->displayUnit());
|
||||||
if (numeric_values_.count(key) == 0)
|
if (numeric_values_.count(key) == 0)
|
||||||
{
|
{
|
||||||
return std::numeric_limits<double>::quiet_NaN(); // This is translated into a null in the json.
|
return std::numeric_limits<double>::quiet_NaN(); // This is translated into a null in the json.
|
||||||
|
@ -1308,9 +1308,7 @@ double MeterCommonImplementation::getNumericValue(FieldInfo *fi, Unit to)
|
||||||
|
|
||||||
double MeterCommonImplementation::getNumericValue(string vname, Unit to)
|
double MeterCommonImplementation::getNumericValue(string vname, Unit to)
|
||||||
{
|
{
|
||||||
Quantity q = toQuantity(to);
|
pair<string,Unit> key(vname,to);
|
||||||
|
|
||||||
pair<string,Quantity> key(vname,q);
|
|
||||||
if (numeric_values_.count(key) == 0)
|
if (numeric_values_.count(key) == 0)
|
||||||
{
|
{
|
||||||
return std::numeric_limits<double>::quiet_NaN(); // This is translated into a null in the json.
|
return std::numeric_limits<double>::quiet_NaN(); // This is translated into a null in the json.
|
||||||
|
@ -1408,10 +1406,10 @@ string MeterCommonImplementation::debugValues()
|
||||||
for (auto &p : numeric_values_)
|
for (auto &p : numeric_values_)
|
||||||
{
|
{
|
||||||
string vname = p.first.first;
|
string vname = p.first.first;
|
||||||
Quantity q = p.first.second;
|
string us = unitToStringLowerCase(p.first.second);
|
||||||
NumericField& nf = p.second;
|
NumericField& nf = p.second;
|
||||||
|
|
||||||
s += tostrprintf("%s %s = %g\n", toString(q), vname.c_str(), nf.value);
|
s += tostrprintf("%s_%s = %g\n", vname.c_str(), us.c_str(), nf.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto &p : string_values_)
|
for (auto &p : string_values_)
|
||||||
|
|
|
@ -240,8 +240,8 @@ protected:
|
||||||
vector<string> selected_fields_;
|
vector<string> selected_fields_;
|
||||||
// Map difvif key to hex values from telegrams.
|
// Map difvif key to hex values from telegrams.
|
||||||
std::map<std::string,std::pair<int,std::string>> hex_values_;
|
std::map<std::string,std::pair<int,std::string>> hex_values_;
|
||||||
// Map field name including unit (total_volume_m3) to numeric value.
|
// Map field name+Unit to Numeric field which includes the value.
|
||||||
std::map<pair<std::string,Quantity>,NumericField> numeric_values_;
|
std::map<pair<std::string,Unit>,NumericField> numeric_values_;
|
||||||
// Map field name (at_date) to string value.
|
// Map field name (at_date) to string value.
|
||||||
std::map<std::string,StringField> string_values_;
|
std::map<std::string,StringField> string_values_;
|
||||||
// Used to block next poll, until this poll has received a respones.
|
// Used to block next poll, until this poll has received a respones.
|
||||||
|
|
|
@ -7,15 +7,15 @@ mkdir -p $TEST
|
||||||
TESTNAME="Test additional json from cmdline"
|
TESTNAME="Test additional json from cmdline"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat simulations/simulation_additional_json.txt | grep '^{' > $TEST/test_expected.txt
|
cat simulations/simulation_additional_json.txt | grep '^{' | jq --sort-keys . > $TEST/test_expected.txt
|
||||||
$PROG --format=json --json_floor=5 --json_address="RoodRd 42" --field_city="Stockholm" simulations/simulation_additional_json.txt \
|
$PROG --format=json --json_floor=5 --json_address="RoodRd 42" --field_city="Stockholm" simulations/simulation_additional_json.txt \
|
||||||
MyTapWater multical21 76348799 "" \
|
MyTapWater multical21 76348799 "" 2> $TEST/test_stderr.txt | jq --sort-keys . > $TEST/test_output.txt
|
||||||
> $TEST/test_output.txt 2> $TEST/test_stderr.txt
|
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
|
@ -23,14 +23,14 @@ then
|
||||||
else
|
else
|
||||||
if [ "$USE_MELD" = "true" ]
|
if [ "$USE_MELD" = "true" ]
|
||||||
then
|
then
|
||||||
meld $TEST/test_expected.txt $TEST/test_response.txt
|
meld $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
TESTNAME="Test additional shell envs from cmdline"
|
TESTNAME="Test additional shell envs from cmdline"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
|
@ -11,7 +11,7 @@ TESTRESULT="ERROR"
|
||||||
|
|
||||||
HEX="5E44A51139259471410D7A720050052F2F0C06742400008C1006000000000C13823522008C2013494400000B3B0000000C2B000000000A5A22030A5E91020AA61800004C0619130000CC100600000000426CDF252F2F2F2F2F2F2F2F2F2F2F"
|
HEX="5E44A51139259471410D7A720050052F2F0C06742400008C1006000000000C13823522008C2013494400000B3B0000000C2B000000000A5A22030A5E91020AA61800004C0619130000CC100600000000426CDF252F2F2F2F2F2F2F2F2F2F2F"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
"set_date":"2022-05-31",
|
"set_date":"2022-05-31",
|
||||||
"set_1_fromd_utc":"2022-12-22T01:00:00Z",
|
"set_1_fromd_utc":"2022-12-22T01:00:00Z",
|
||||||
"set_2_fromdhm_utc":"2022-12-22T13:12:00Z",
|
"set_2_fromdhm_utc":"2022-12-22T13:12:00Z",
|
||||||
|
@ -46,6 +46,8 @@ cat > $TEST/test_expected.txt <<EOF
|
||||||
"set_31_from_setdate2_datetime":"2022-07-31 07:33",
|
"set_31_from_setdate2_datetime":"2022-07-31 07:33",
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
sort $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
# TZ=UTC+1 date --date 2022-12-22T12:12:12Z +%s --> 1671711132 # UTC time
|
# TZ=UTC+1 date --date 2022-12-22T12:12:12Z +%s --> 1671711132 # UTC time
|
||||||
# TZ=UTC+1 date --date '2022-12-22 12:12:12' +%s --> 1671714732 # Local time in UTC+1 ie Stockholm no daylight savings.
|
# TZ=UTC+1 date --date '2022-12-22 12:12:12' +%s --> 1671714732 # Local time in UTC+1 ie Stockholm no daylight savings.
|
||||||
# TZ=UTC+1 date --date '2022-12-22 12:12' +%s --> 1671714720
|
# TZ=UTC+1 date --date '2022-12-22 12:12' +%s --> 1671714720
|
||||||
|
@ -91,7 +93,7 @@ TZ=UTC+1 $PROG --format=json --ppjson \
|
||||||
\
|
\
|
||||||
--calculate_set_31_from_setdate2_datetime="set_30_from_setdate_datetime + 1 month + 7 h + '00:33'"\
|
--calculate_set_31_from_setdate2_datetime="set_30_from_setdate_datetime + 1 month + 7 h + '00:33'"\
|
||||||
"$HEX" \
|
"$HEX" \
|
||||||
Moo sharky774 71942539 NOKEY | grep \"set_ > $TEST/test_output.txt
|
Moo sharky774 71942539 NOKEY | grep \"set_ | sort > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
|
@ -100,6 +102,11 @@ then
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ Received telegram from: 76348799
|
||||||
driver: multical21
|
driver: multical21
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
$PROG 2A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24 2> $TEST/test_output.txt 1>&2
|
$PROG 2A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24 > $TEST/test_output.txt 2>&1
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
|
@ -25,6 +25,11 @@ then
|
||||||
then
|
then
|
||||||
echo OK: $TESTNAME
|
echo OK: $TESTNAME
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: $TESTNAME"
|
echo "ERROR: $TESTNAME"
|
||||||
|
@ -33,18 +38,20 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"cold water","meter":"multical21","name":"MyWater","id":"76348799","status":"DRY","total_m3":6.408,"target_m3":6.408,"flow_temperature_c":127,"external_temperature_c":19,"current_status":"DRY","time_dry":"22-31 days","time_reversed":"","time_leaking":"","time_bursting":"","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"cold water","meter":"multical21","name":"MyWater","id":"76348799","status":"DRY","total_m3":6.408,"target_m3":6.408,"flow_temperature_c":127,"external_temperature_c":19,"current_status":"DRY","time_dry":"22-31 days","time_reversed":"","time_leaking":"","time_bursting":"","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
TESTNAME="Test hex on commandline with meter"
|
TESTNAME="Test hex on commandline with meter"
|
||||||
|
|
||||||
$PROG --format=json 2A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24 \
|
$PROG --format=json 2A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24 \
|
||||||
MyWater auto 76348799 28F64A24988064A079AA2C807D6102AE > $TEST/test_output.txt 2> $TEST/test_stderr.txt
|
MyWater auto 76348799 28F64A24988064A079AA2C807D6102AE 2> $TEST/test_stderr.txt | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
|
@ -92,18 +99,20 @@ fi
|
||||||
|
|
||||||
TESTNAME="Test hex on stdin"
|
TESTNAME="Test hex on stdin"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"other","meter":"lansenpu","name":"MyCounter","id":"00010206","status":"OK","a_counter":4711,"b_counter":1234,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"other","meter":"lansenpu","name":"MyCounter","id":"00010206","status":"OK","a_counter":4711,"b_counter":1234,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"cold water","meter":"multical21","name":"MyWater","id":"76348799","status":"DRY","total_m3":6.408,"target_m3":6.408,"flow_temperature_c":127,"external_temperature_c":19,"current_status":"DRY","time_dry":"22-31 days","time_reversed":"","time_leaking":"","time_bursting":"","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"cold water","meter":"multical21","name":"MyWater","id":"76348799","status":"DRY","total_m3":6.408,"target_m3":6.408,"flow_temperature_c":127,"external_temperature_c":19,"current_status":"DRY","time_dry":"22-31 days","time_reversed":"","time_leaking":"","time_bursting":"","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"other","meter":"lansenpu","name":"MyCounter","id":"00010206","status":"OK","a_counter":4711,"b_counter":1234,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"other","meter":"lansenpu","name":"MyCounter","id":"00010206","status":"OK","a_counter":4711,"b_counter":1234,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
echo 234433300602010014007a8e0000002f2f0efd3a1147000000008e40fd3a3412000000002A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24234433300602010014007a8e0000002f2f0efd3a1147000000008e40fd3a341200000000999 | \
|
echo 234433300602010014007a8e0000002f2f0efd3a1147000000008e40fd3a3412000000002A442D2C998734761B168D2091D37CAC21E1D68CDAFFCD3DC452BD802913FF7B1706CA9E355D6C2701CC24234433300602010014007a8e0000002f2f0efd3a1147000000008e40fd3a341200000000999 | \
|
||||||
$PROG --silent --ignoreduplicates=false --format=json stdin:hex MyCounter auto 00010206 NOKEY MyWater auto 76348799 28F64A24988064A079AA2C807D6102AE > $TEST/test_output.txt 2> $TEST/test_stderr.txt
|
$PROG --silent --ignoreduplicates=false --format=json stdin:hex MyCounter auto 00010206 NOKEY MyWater auto 76348799 28F64A24988064A079AA2C807D6102AE 2> $TEST/test_stderr.txt | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
|
|
|
@ -10,22 +10,29 @@ TEST=testoutput
|
||||||
TESTNAME="Test duplicates are ignored"
|
TESTNAME="Test duplicates are ignored"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
$PROG --format=json --ignoreduplicates simulations/simulation_duplicates.txt \
|
$PROG --format=json --ignoreduplicates simulations/simulation_duplicates.txt \
|
||||||
Rummet lansensm 01000273 "" \
|
Rummet lansensm 01000273 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -35,7 +42,7 @@ if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
TESTNAME="Test duplicates are left alone"
|
TESTNAME="Test duplicates are left alone"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
|
@ -43,18 +50,25 @@ cat > $TEST/test_expected.txt <<EOF
|
||||||
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"smoke detector","meter":"lansensm","name":"Rummet","id":"01000273","status":"OK","async_msg_id_counter":588,"minutes_since_last_manual_test_counter":30022,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
$PROG --format=json --ignoreduplicates=false simulations/simulation_duplicates.txt \
|
$PROG --format=json --ignoreduplicates=false simulations/simulation_duplicates.txt \
|
||||||
Rummet lansensm 01000273 "" \
|
Rummet lansensm 01000273 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -10,26 +10,33 @@ TEST=testoutput
|
||||||
TESTNAME="Test ok serial rawtty telegram on stdin"
|
TESTNAME="Test ok serial rawtty telegram on stdin"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
xxd -r -p simulations/serial_rawtty_ok.hex | \
|
xxd -r -p simulations/serial_rawtty_ok.hex | \
|
||||||
$PROG --silent --format=json --listento=any stdin:rawtty \
|
$PROG --silent --format=json --listento=any stdin:rawtty \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -39,20 +46,27 @@ if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
TESTNAME="Test bad serial rawtty telegram with interspersed noise, on stdin"
|
TESTNAME="Test bad serial rawtty telegram with interspersed noise, on stdin"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
xxd -r -p simulations/serial_rawtty_bad.hex | $PROG --silent --format=json --listento=any stdin:rawtty Rummet1 lansenth 00010203 "" Rummet2 rfmamb 11772288 "" | grep Rummet > $TEST/test_output.txt
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
|
xxd -r -p simulations/serial_rawtty_bad.hex | $PROG --silent --format=json --listento=any stdin:rawtty Rummet1 lansenth 00010203 "" Rummet2 rfmamb 11772288 "" | grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -10,26 +10,33 @@ TEST=testoutput
|
||||||
TESTNAME="Reading binary telegram from stdin"
|
TESTNAME="Reading binary telegram from stdin"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
xxd -r -p simulations/serial_rawtty_ok.hex | \
|
xxd -r -p simulations/serial_rawtty_ok.hex | \
|
||||||
$PROG --silent --format=json --listento=any stdin:rawtty \
|
$PROG --silent --format=json --listento=any stdin:rawtty \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -41,24 +48,31 @@ TESTRESULT="ERROR"
|
||||||
|
|
||||||
xxd -r -p simulations/serial_rawtty_ok.hex > $TEST/test_raw
|
xxd -r -p simulations/serial_rawtty_ok.hex > $TEST/test_raw
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z"}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z"}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
$PROG --silent --format=json --listento=any $TEST/test_raw:rawtty \
|
$PROG --silent --format=json --listento=any $TEST/test_raw:rawtty \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo OK: $TESTNAME
|
echo OK: $TESTNAME
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -68,25 +82,32 @@ if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
TESTNAME="Reading rtlwmbus formatted telegrams from stdin"
|
TESTNAME="Reading rtlwmbus formatted telegrams from stdin"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
cat simulations/serial_rtlwmbus_ok.msg | \
|
cat simulations/serial_rtlwmbus_ok.msg | \
|
||||||
$PROG --silent --format=json --listento=any stdin:rtlwmbus \
|
$PROG --silent --format=json --listento=any stdin:rtlwmbus \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -96,24 +117,31 @@ if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
TESTNAME="Reading rtlwmbus formatted telegrams from file"
|
TESTNAME="Reading rtlwmbus formatted telegrams from file"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtlwmbus[]","rssi_dbm":97}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
$PROG --silent --format=json --listento=any simulations/serial_rtlwmbus_ok.msg:rtlwmbus \
|
$PROG --silent --format=json --listento=any simulations/serial_rtlwmbus_ok.msg:rtlwmbus \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -121,25 +149,32 @@ fi
|
||||||
TESTNAME="Reading rtl433 formatted telegrams from stdin"
|
TESTNAME="Reading rtl433 formatted telegrams from stdin"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
cat simulations/serial_rtl433_ok.msg | \
|
cat simulations/serial_rtl433_ok.msg | \
|
||||||
$PROG --silent --format=json --listento=any stdin:rtl433 \
|
$PROG --silent --format=json --listento=any stdin:rtl433 \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -149,24 +184,31 @@ if [ "$TESTRESULT" = "ERROR" ]; then echo ERROR: $TESTNAME; exit 1; fi
|
||||||
TESTNAME="Reading rtl433 formatted telegrams from file"
|
TESTNAME="Reading rtl433 formatted telegrams from file"
|
||||||
TESTRESULT="ERROR"
|
TESTRESULT="ERROR"
|
||||||
|
|
||||||
cat > $TEST/test_expected.txt <<EOF
|
cat > $TEST/test_expected_unsorted.txt <<EOF
|
||||||
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
{"media":"room sensor","meter":"lansenth","name":"Rummet1","id":"00010203","status":"PERMANENT_ERROR SABOTAGE_ENCLOSURE","current_temperature_c":21.8,"current_relative_humidity_rh":43,"average_temperature_1h_c":21.79,"average_relative_humidity_1h_rh":43,"average_temperature_24h_c":21.97,"average_relative_humidity_24h_rh":42.5,"timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
||||||
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
{"media":"room sensor","meter":"rfmamb","name":"Rummet2","id":"11772288","status":"PERMANENT_ERROR","current_temperature_c":22.08,"average_temperature_1h_c":21.91,"average_temperature_24h_c":22.07,"maximum_temperature_1h_c":22.08,"maximum_temperature_24h_c":23.47,"minimum_temperature_1h_c":21.85,"minimum_temperature_24h_c":21.29,"current_relative_humidity_rh":44.2,"average_relative_humidity_1h_rh":43.2,"average_relative_humidity_24h_rh":44.5,"maximum_relative_humidity_1h_rh":44.2,"maximum_relative_humidity_24h_rh":50.1,"minimum_relative_humidity_1h_rh":42.5,"minimum_relative_humidity_24h_rh":42.2,"device_datetime":"2019-10-11 19:59","timestamp":"1111-11-11T11:11:11Z","device":"rtl433[]","rssi_dbm":999}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
jq --sort-keys . $TEST/test_expected_unsorted.txt > $TEST/test_expected.txt
|
||||||
|
|
||||||
$PROG --silent --format=json --listento=any simulations/serial_rtl433_ok.msg:rtl433 \
|
$PROG --silent --format=json --listento=any simulations/serial_rtl433_ok.msg:rtl433 \
|
||||||
Rummet1 lansenth 00010203 "" \
|
Rummet1 lansenth 00010203 "" \
|
||||||
Rummet2 rfmamb 11772288 "" \
|
Rummet2 rfmamb 11772288 "" \
|
||||||
| grep Rummet > $TEST/test_output.txt
|
| grep Rummet | jq --sort-keys . > $TEST/test_output.txt
|
||||||
|
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
cat $TEST/test_output.txt | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
cat $TEST/test_output.txt | sed 's/"timestamp": "....-..-..T..:..:..Z"/"timestamp": "1111-11-11T11:11:11Z"/' > $TEST/test_responses.txt
|
||||||
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
diff $TEST/test_expected.txt $TEST/test_responses.txt
|
||||||
if [ "$?" = "0" ]
|
if [ "$?" = "0" ]
|
||||||
then
|
then
|
||||||
echo "OK: $TESTNAME"
|
echo "OK: $TESTNAME"
|
||||||
TESTRESULT="OK"
|
TESTRESULT="OK"
|
||||||
|
else
|
||||||
|
if [ "$USE_MELD" = "true" ]
|
||||||
|
then
|
||||||
|
meld $TEST/test_expected.txt $TEST/test_output.txt
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue