2023-11-10 20:33:09 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
PROG="$1"
|
|
|
|
TEST=testoutput
|
|
|
|
mkdir -p $TEST
|
|
|
|
|
|
|
|
performCheck() {
|
|
|
|
if [ "$?" = "0" ]
|
|
|
|
then
|
2024-02-11 22:06:59 +00:00
|
|
|
cat $TEST/test_output.txt | grep -v == | grep -v \# | grep -v Indirect | grep -v Direct | grep -v -e "^$" | grep -v SUMMARY | sed 's/"timestamp":"....-..-..T..:..:..Z"/"timestamp":"1111-11-11T11:11:11Z"/' > $TEST/test_response.txt
|
2023-11-10 20:33:09 +00:00
|
|
|
diff $TEST/test_expected.txt $TEST/test_response.txt
|
|
|
|
if [ "$?" = "0" ]
|
|
|
|
then
|
|
|
|
echo "OK: $TESTNAME"
|
|
|
|
TESTRESULT="OK"
|
|
|
|
else
|
|
|
|
if [ "$USE_MELD" = "true" ]
|
|
|
|
then
|
|
|
|
meld $TEST/test_expected.txt $TEST/test_response.txt
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "ERROR: $TESTNAME $0"
|
|
|
|
echo "wmbusmeters returned error code: $?"
|
|
|
|
cat $TEST/test_output.txt
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
########################################################################################################################
|
|
|
|
########################################################################################################################
|
|
|
|
########################################################################################################################
|
|
|
|
|
|
|
|
TESTNAME="Test no driver root"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
ddriver { name = Iffo }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/name
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
A driver file looks like this: driver { name = abc123 ... }
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test bad driver name"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
driver { name = 'a b' }
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, bad driver name: a b
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
The driver name must consist of lower case ascii a-z and digits 0-9.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test no meter_type"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/meter_type
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Remember to add: meter_type = ...
|
|
|
|
Available meter types are:
|
|
|
|
DoorWindowDetector
|
|
|
|
ElectricityMeter
|
|
|
|
GasMeter
|
2023-12-04 12:12:16 +00:00
|
|
|
HeatCoolingMeter
|
2023-11-12 11:36:22 +00:00
|
|
|
HeatCostAllocationMeter
|
|
|
|
HeatMeter
|
2023-12-04 12:12:16 +00:00
|
|
|
PressureSensor
|
2023-11-12 11:36:22 +00:00
|
|
|
PulseCounter
|
2023-12-04 12:12:16 +00:00
|
|
|
Repeater
|
2023-11-12 11:36:22 +00:00
|
|
|
SmokeDetector
|
|
|
|
TempHygroMeter
|
|
|
|
WaterMeter
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test bad meter_type"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = gurka }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, unknown meter type: gurka
|
|
|
|
-------------------------------------------------------------------------------
|
2023-11-10 20:33:09 +00:00
|
|
|
Available meter types are:
|
|
|
|
DoorWindowDetector
|
|
|
|
ElectricityMeter
|
|
|
|
GasMeter
|
2023-12-04 12:12:16 +00:00
|
|
|
HeatCoolingMeter
|
2023-11-10 20:33:09 +00:00
|
|
|
HeatCostAllocationMeter
|
|
|
|
HeatMeter
|
2023-12-04 12:12:16 +00:00
|
|
|
PressureSensor
|
2023-11-10 20:33:09 +00:00
|
|
|
PulseCounter
|
2023-12-04 11:10:39 +00:00
|
|
|
Repeater
|
2023-11-10 20:33:09 +00:00
|
|
|
SmokeDetector
|
|
|
|
TempHygroMeter
|
|
|
|
WaterMeter
|
2023-11-12 11:36:22 +00:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test no default_fields"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/default_fields
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Remember to add for example: default_fields = name,id,total_m3,timestamp
|
|
|
|
Where you change total_m3 to your meters most important field.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test no detect mvt:s"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp }
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find any detection triplets: driver/detect/mvt
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Remember to add: detect { mvt = AAA,05,07 mvt = AAA,06,07 ... }
|
|
|
|
The triplets consists of MANUFACTURER,VERSION,TYPE
|
|
|
|
You can see these values when listening to all meters.
|
|
|
|
The manufacturer can be given as three uppercase characters A-Z
|
|
|
|
or as 4 lower case hex digits.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test bad mvt"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = alfa }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 11:36:22 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, wrong number of fields in mvt triple: mvt = alfa
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
There should be three fields, for example: mvt = AAA,07,05
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Failed to load driver from file: testoutput/driver.xmq
|
2023-11-10 20:33:09 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
2023-11-12 11:36:22 +00:00
|
|
|
|
|
|
|
TESTNAME="Test no field name"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { namee = total }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/field/name
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Remember to add for example: field { name = total ... }
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej;?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=fields --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test bad field name with unit"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total_m3 }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
(driver) error in testoutput/driver.xmq, bad field name total_m3 (field names should not have units)
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
The field name should not have a unit since units are added automatically.
|
|
|
|
Either indirectly based on the quantity or directly based on the display_unit.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej;?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=fields --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field missing quantity"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/field/quantity
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Remember to add for example: field { quantity = Volume ... }
|
|
|
|
Available quantities:
|
|
|
|
Time
|
|
|
|
Length
|
|
|
|
Mass
|
|
|
|
Amperage
|
|
|
|
Temperature
|
|
|
|
AmountOfSubstance
|
|
|
|
LuminousIntensity
|
|
|
|
Energy
|
|
|
|
Reactive_Energy
|
|
|
|
Apparent_Energy
|
|
|
|
Power
|
|
|
|
Volume
|
|
|
|
Flow
|
|
|
|
Voltage
|
|
|
|
Frequency
|
|
|
|
Pressure
|
|
|
|
PointInTime
|
|
|
|
RelativeHumidity
|
|
|
|
HCA
|
|
|
|
Text
|
|
|
|
Angle
|
|
|
|
Dimensionless
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej;?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=fields --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field bad quantity"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = gurka }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
(driver) error in testoutput/driver.xmq, bad quantity: gurka
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Available quantities:
|
|
|
|
Time
|
|
|
|
Length
|
|
|
|
Mass
|
|
|
|
Amperage
|
|
|
|
Temperature
|
|
|
|
AmountOfSubstance
|
|
|
|
LuminousIntensity
|
|
|
|
Energy
|
|
|
|
Reactive_Energy
|
|
|
|
Apparent_Energy
|
|
|
|
Power
|
|
|
|
Volume
|
|
|
|
Flow
|
|
|
|
Voltage
|
|
|
|
Frequency
|
|
|
|
Pressure
|
|
|
|
PointInTime
|
|
|
|
RelativeHumidity
|
|
|
|
HCA
|
|
|
|
Text
|
|
|
|
Angle
|
|
|
|
Dimensionless
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej;?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=fields --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field with no matcher and null output"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# There is no calculate nor match in the driver. Thus no value is inserted to it remains null.
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
Hej;null
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=fields --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field with calculate"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume calculate = '4711.23m3 + 0.9m3' }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
Hej 4712.13 m³
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=hr --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field matcher without measurement_type"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume match { } }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 12:23:37 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/field/match/measurement_type
|
2023-11-12 11:36:22 +00:00
|
|
|
-------------------------------------------------------------------------------
|
2023-11-12 12:23:37 +00:00
|
|
|
Remember to add for example: match { measurement_type = Instantaneous ... }
|
2023-11-12 11:36:22 +00:00
|
|
|
Available measurement types:
|
|
|
|
Instantaneous
|
|
|
|
Minimum
|
|
|
|
Maximum
|
|
|
|
AtError
|
|
|
|
Any
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej ?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=hr --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field matcher with bad measurement_type "
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume match { measurement_type = sdfInstantaneous } }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
(driver) error in testoutput/driver.xmq, bad measurement_type: sdfInstantaneous
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Available measurement types:
|
|
|
|
Instantaneous
|
|
|
|
Minimum
|
|
|
|
Maximum
|
|
|
|
AtError
|
|
|
|
Any
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej ?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=hr --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
|
|
|
TESTNAME="Test field matcher without vif_range"
|
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume match { measurement_type = Instantaneous } }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
2023-11-12 12:23:37 +00:00
|
|
|
(driver) error in testoutput/driver.xmq, cannot find: driver/field/match/vif_range
|
2023-11-12 11:36:22 +00:00
|
|
|
-------------------------------------------------------------------------------
|
2023-11-12 12:23:37 +00:00
|
|
|
Remember to add for example: match { ... vif_range = ReturnTemperature ... }
|
2023-11-12 11:36:22 +00:00
|
|
|
Available vif ranges:
|
|
|
|
Volume
|
|
|
|
OnTime
|
|
|
|
OperatingTime
|
|
|
|
VolumeFlow
|
|
|
|
FlowTemperature
|
|
|
|
ReturnTemperature
|
|
|
|
TemperatureDifference
|
|
|
|
ExternalTemperature
|
|
|
|
Pressure
|
|
|
|
HeatCostAllocation
|
|
|
|
Date
|
|
|
|
DateTime
|
|
|
|
EnergyMJ
|
|
|
|
EnergyWh
|
|
|
|
PowerW
|
|
|
|
ActualityDuration
|
|
|
|
FabricationNo
|
|
|
|
EnhancedIdentification
|
2024-01-15 14:29:43 +00:00
|
|
|
EnergyMWh
|
2023-11-12 11:36:22 +00:00
|
|
|
RelativeHumidity
|
|
|
|
AccessNumber
|
2024-01-11 19:26:17 +00:00
|
|
|
Medium
|
|
|
|
Manufacturer
|
2023-11-12 11:36:22 +00:00
|
|
|
ParameterSet
|
|
|
|
ModelVersion
|
|
|
|
HardwareVersion
|
|
|
|
FirmwareVersion
|
|
|
|
SoftwareVersion
|
|
|
|
Location
|
|
|
|
Customer
|
|
|
|
ErrorFlags
|
|
|
|
DigitalOutput
|
|
|
|
DigitalInput
|
|
|
|
DurationSinceReadout
|
|
|
|
DurationOfTariff
|
|
|
|
Dimensionless
|
|
|
|
Voltage
|
|
|
|
Amperage
|
|
|
|
ResetCounter
|
|
|
|
CumulationCounter
|
|
|
|
SpecialSupplierInformation
|
|
|
|
RemainingBattery
|
|
|
|
AnyVolumeVIF
|
|
|
|
AnyEnergyVIF
|
|
|
|
AnyPowerVIF
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Hej ?total_m3?
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=hr --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|
|
|
|
|
2023-11-12 12:23:37 +00:00
|
|
|
TESTNAME="Test proper field matcher"
|
2023-11-12 11:36:22 +00:00
|
|
|
TESTRESULT="ERROR"
|
|
|
|
cat > $TEST/driver.xmq <<EOF
|
|
|
|
driver { name = iffo meter_type = WaterMeter default_fields = name,id,total_m3,timestamp
|
|
|
|
detect { mvt = SEN,99,07 }
|
|
|
|
field { name = total quantity = Volume match { measurement_type = Instantaneous vif_range = Volume } }
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat > $TEST/test_expected.txt <<EOF
|
|
|
|
Hej 123.529 m³
|
|
|
|
EOF
|
|
|
|
|
|
|
|
$PROG --format=hr --selectfields=name,total_m3 1844AE4C4455223399077A55000000_041389E20100023B0000 Hej $TEST/driver.xmq 33225544 NO_KEY > $TEST/test_output.txt 2>&1 || true
|
|
|
|
|
|
|
|
performCheck
|