Change default V5 to mbus
At least the BE and the NL DSMR devices use MBUS. Therefor we make the MBUS obis reference generic, and convert the V5 telegram to use MBUS values. Also remove BELGIUM_MAX_POWER_PER_PHASE as this was a duplicate. Finally set self.maxDiff = None to have a full test output on some tests.
This commit is contained in:
parent
5810770b74
commit
9c679bafe2
@ -69,8 +69,48 @@ ACTUAL_TRESHOLD_ELECTRICITY = r'^\d-\d:17\.0\.0.+?\r\n'
|
||||
ACTUAL_SWITCH_POSITION = r'^\d-\d:96\.3\.10.+?\r\n'
|
||||
VALVE_POSITION_GAS = r'^\d-\d:24\.4\.0.+?\r\n'
|
||||
|
||||
# Multiple 'slaves' can be linked to the main device.
|
||||
# The type is reported on 24.1.0
|
||||
# Specifications are in EN 13757-3
|
||||
# For example: Water mater = 7, Gas meter = 3
|
||||
# Identifier is on 96.1.0 (in NL for ex) or
|
||||
# on 96.1.1 (in BE for ex)
|
||||
# The values are reported on 24.2.1
|
||||
# With an exception in Belgium for the GAS meter
|
||||
# Be aware that for the gas volume, another OBIS-code is published
|
||||
# than the one listed in section 7 of DSMR P1.
|
||||
# This is due to the fact that in Belgium the not-temperature
|
||||
# corrected gas volume is used while in the Netherlands,
|
||||
# the temperature corrected gas volume is used.
|
||||
MBUS1_DEVICE_TYPE = r'^\d-1:24\.1\.0.+?\r\n'
|
||||
MBUS1_EQUIPMENT_IDENTIFIER = r'^\d-1:96\.1\.0.+?\r\n'
|
||||
MBUS1_EQUIPMENT_IDENTIFIER_ALT = r'^\d-1:96\.1\.1.+?\r\n'
|
||||
MBUS1_VALVE_POSITION = r'^\d-1:24\.4\.0.+?\r\n'
|
||||
MBUS1_METER_READING = r'^\d-1:24\.2\.1.+?\r\n'
|
||||
MBUS1_METER_READING_ALT = r'^\d-1:24\.2\.3.+?\r\n'
|
||||
|
||||
MBUS2_DEVICE_TYPE = r'^\d-2:24\.1\.0.+?\r\n'
|
||||
MBUS2_EQUIPMENT_IDENTIFIER = r'^\d-2:96\.1\.0.+?\r\n'
|
||||
MBUS2_EQUIPMENT_IDENTIFIER_ALT = r'^\d-2:96\.1\.1.+?\r\n'
|
||||
MBUS2_VALVE_POSITION = r'^\d-2:24\.4\.0.+?\r\n'
|
||||
MBUS2_METER_READING = r'^\d-2:24\.2\.1.+?\r\n'
|
||||
MBUS2_METER_READING_ALT = r'^\d-2:24\.2\.3.+?\r\n'
|
||||
|
||||
MBUS3_DEVICE_TYPE = r'^\d-3:24\.1\.0.+?\r\n'
|
||||
MBUS3_EQUIPMENT_IDENTIFIER = r'^\d-3:96\.1\.0.+?\r\n'
|
||||
MBUS3_EQUIPMENT_IDENTIFIER_ALT = r'^\d-3:96\.1\.1.+?\r\n'
|
||||
MBUS3_VALVE_POSITION = r'^\d-3:24\.4\.0.+?\r\n'
|
||||
MBUS3_METER_READING = r'^\d-3:24\.2\.1.+?\r\n'
|
||||
MBUS3_METER_READING_ALT = r'^\d-3:24\.2\.3.+?\r\n'
|
||||
|
||||
MBUS4_DEVICE_TYPE = r'^\d-4:24\.1\.0.+?\r\n'
|
||||
MBUS4_EQUIPMENT_IDENTIFIER = r'^\d-4:96\.1\.0.+?\r\n'
|
||||
MBUS4_EQUIPMENT_IDENTIFIER_ALT = r'^\d-4:96\.1\.1.+?\r\n'
|
||||
MBUS4_VALVE_POSITION = r'^\d-4:24\.4\.0.+?\r\n'
|
||||
MBUS4_METER_READING = r'^\d-4:24\.2\.1.+?\r\n'
|
||||
MBUS4_METER_READING_ALT = r'^\d-4:24\.2\.3.+?\r\n'
|
||||
|
||||
# TODO 17.0.0
|
||||
# TODO 96.3.10
|
||||
|
||||
ELECTRICITY_USED_TARIFF_ALL = (
|
||||
ELECTRICITY_USED_TARIFF_1,
|
||||
@ -91,37 +131,6 @@ BELGIUM_EQUIPMENT_IDENTIFIER = r'^\d-0:96\.1\.1.+?\r\n'
|
||||
BELGIUM_CURRENT_AVERAGE_DEMAND = r'^\d-\d:1\.4\.0.+?\r\n'
|
||||
BELGIUM_MAXIMUM_DEMAND_MONTH = r'^\d-\d:1\.6\.0.+?\r\n'
|
||||
BELGIUM_MAXIMUM_DEMAND_13_MONTHS = r'^\d-\d:98\.1\.0.+?\r\n'
|
||||
BELGIUM_MAX_POWER_PER_PHASE = r'^\d-\d:17\.0\.0.+?\r\n' # Applicable when power limitation is active
|
||||
|
||||
# Multiple 'slaves' can be linked to the main device.
|
||||
# Mostly MBUS1 = GAS METER with values on 24.2.3
|
||||
# While WATER METER reports it's values on 24.2.1
|
||||
# The GAS METER also reports its valve state on 24.4.0
|
||||
# Dev type for gas = 7 and water = 8
|
||||
BELGIUM_MBUS1_DEVICE_TYPE = r'^\d-1:24\.1\.0.+?\r\n'
|
||||
BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER = r'^\d-1:96\.1\.1.+?\r\n'
|
||||
BELGIUM_MBUS1_VALVE_POSITION = r'^\d-1:24\.4\.0.+?\r\n'
|
||||
BELGIUM_MBUS1_METER_READING1 = r'^\d-1:24\.2\.1.+?\r\n'
|
||||
BELGIUM_MBUS1_METER_READING2 = r'^\d-1:24\.2\.3.+?\r\n'
|
||||
|
||||
BELGIUM_MBUS2_DEVICE_TYPE = r'^\d-2:24\.1\.0.+?\r\n'
|
||||
BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER = r'^\d-2:96\.1\.1.+?\r\n'
|
||||
BELGIUM_MBUS2_VALVE_POSITION = r'^\d-2:24\.4\.0.+?\r\n'
|
||||
BELGIUM_MBUS2_METER_READING1 = r'^\d-2:24\.2\.1.+?\r\n'
|
||||
BELGIUM_MBUS2_METER_READING2 = r'^\d-2:24\.2\.3.+?\r\n'
|
||||
|
||||
BELGIUM_MBUS3_DEVICE_TYPE = r'^\d-3:24\.1\.0.+?\r\n'
|
||||
BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER = r'^\d-3:96\.1\.1.+?\r\n'
|
||||
BELGIUM_MBUS3_VALVE_POSITION = r'^\d-3:24\.4\.0.+?\r\n'
|
||||
BELGIUM_MBUS3_METER_READING1 = r'^\d-3:24\.2\.1.+?\r\n'
|
||||
BELGIUM_MBUS3_METER_READING2 = r'^\d-3:24\.2\.3.+?\r\n'
|
||||
|
||||
BELGIUM_MBUS4_DEVICE_TYPE = r'^\d-4:24\.1\.0.+?\r\n'
|
||||
BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER = r'^\d-4:96\.1\.1.+?\r\n'
|
||||
BELGIUM_MBUS4_VALVE_POSITION = r'^\d-4:24\.4\.0.+?\r\n'
|
||||
BELGIUM_MBUS4_METER_READING1 = r'^\d-4:24\.2\.1.+?\r\n'
|
||||
BELGIUM_MBUS4_METER_READING2 = r'^\d-4:24\.2\.3.+?\r\n'
|
||||
|
||||
|
||||
LUXEMBOURG_EQUIPMENT_IDENTIFIER = r'^\d-\d:42\.0\.0.+?\r\n' # Logical device name
|
||||
|
||||
|
@ -430,11 +430,6 @@ V5 = {
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'TEXT_MESSAGE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE,
|
||||
'value_parser': CosemParser(ValueParser(Decimal)),
|
||||
@ -466,17 +461,128 @@ V5 = {
|
||||
'value_name': 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.EQUIPMENT_IDENTIFIER_GAS,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'EQUIPMENT_IDENTIFIER_GAS'
|
||||
'obis_reference': obis.MBUS1_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS1_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.HOURLY_GAS_METER_READING,
|
||||
'obis_reference': obis.MBUS1_EQUIPMENT_IDENTIFIER,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'MBUS1_EQUIPMENT_IDENTIFIER'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS1_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS1_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS1_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'HOURLY_GAS_METER_READING'
|
||||
'value_name': 'MBUS1_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS1_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS1_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS2_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS2_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS2_EQUIPMENT_IDENTIFIER,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'MBUS2_EQUIPMENT_IDENTIFIER'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS2_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS2_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS2_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS2_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS2_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS2_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS3_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS3_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS3_EQUIPMENT_IDENTIFIER,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'MBUS3_EQUIPMENT_IDENTIFIER'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS3_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS3_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS3_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS3_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS3_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS3_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS4_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS4_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS4_EQUIPMENT_IDENTIFIER,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'MBUS4_EQUIPMENT_IDENTIFIER'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS4_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'MBUS4_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS4_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS4_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.MBUS4_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'MBUS4_METER_READING_ALT'
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -624,11 +730,6 @@ BELGIUM_FLUVIUS = {
|
||||
'value_parser': CosemParser(ValueParser(Decimal)),
|
||||
'value_name': 'ACTUAL_TRESHOLD_ELECTRICITY'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MAX_POWER_PER_PHASE,
|
||||
'value_parser': CosemParser(ValueParser(Decimal)),
|
||||
'value_name': 'BELGIUM_MAX_POWER_PER_PHASE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.FUSE_THRESHOLD_L1,
|
||||
'value_parser': CosemParser(ValueParser(Decimal)),
|
||||
@ -640,128 +741,128 @@ BELGIUM_FLUVIUS = {
|
||||
'value_name': 'TEXT_MESSAGE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS1_DEVICE_TYPE,
|
||||
'obis_reference': obis.MBUS1_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS1_DEVICE_TYPE'
|
||||
'value_name': 'MBUS1_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER,
|
||||
'obis_reference': obis.MBUS1_EQUIPMENT_IDENTIFIER_ALT,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER'
|
||||
'value_name': 'MBUS1_EQUIPMENT_IDENTIFIER_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS1_VALVE_POSITION,
|
||||
'obis_reference': obis.MBUS1_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS1_VALVE_POSITION'
|
||||
'value_name': 'MBUS1_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS1_METER_READING1,
|
||||
'obis_reference': obis.MBUS1_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS1_METER_READING1'
|
||||
'value_name': 'MBUS1_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS1_METER_READING2,
|
||||
'obis_reference': obis.MBUS1_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS1_METER_READING2'
|
||||
'value_name': 'MBUS1_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS2_DEVICE_TYPE,
|
||||
'obis_reference': obis.MBUS2_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS2_DEVICE_TYPE'
|
||||
'value_name': 'MBUS2_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER,
|
||||
'obis_reference': obis.MBUS2_EQUIPMENT_IDENTIFIER_ALT,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER'
|
||||
'value_name': 'MBUS2_EQUIPMENT_IDENTIFIER_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS2_VALVE_POSITION,
|
||||
'obis_reference': obis.MBUS2_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS2_VALVE_POSITION'
|
||||
'value_name': 'MBUS2_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS2_METER_READING1,
|
||||
'obis_reference': obis.MBUS2_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS2_METER_READING1'
|
||||
'value_name': 'MBUS2_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS2_METER_READING2,
|
||||
'obis_reference': obis.MBUS2_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS2_METER_READING2'
|
||||
'value_name': 'MBUS2_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS3_DEVICE_TYPE,
|
||||
'obis_reference': obis.MBUS3_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS3_DEVICE_TYPE'
|
||||
'value_name': 'MBUS3_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER,
|
||||
'obis_reference': obis.MBUS3_EQUIPMENT_IDENTIFIER_ALT,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER'
|
||||
'value_name': 'MBUS3_EQUIPMENT_IDENTIFIER_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS3_VALVE_POSITION,
|
||||
'obis_reference': obis.MBUS3_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS3_VALVE_POSITION'
|
||||
'value_name': 'MBUS3_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS3_METER_READING1,
|
||||
'obis_reference': obis.MBUS3_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS3_METER_READING1'
|
||||
'value_name': 'MBUS3_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS3_METER_READING2,
|
||||
'obis_reference': obis.MBUS3_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS3_METER_READING2'
|
||||
'value_name': 'MBUS3_METER_READING_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS4_DEVICE_TYPE,
|
||||
'obis_reference': obis.MBUS4_DEVICE_TYPE,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS4_DEVICE_TYPE'
|
||||
'value_name': 'MBUS4_DEVICE_TYPE'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER,
|
||||
'obis_reference': obis.MBUS4_EQUIPMENT_IDENTIFIER_ALT,
|
||||
'value_parser': CosemParser(ValueParser(str)),
|
||||
'value_name': 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER'
|
||||
'value_name': 'MBUS4_EQUIPMENT_IDENTIFIER_ALT'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS4_VALVE_POSITION,
|
||||
'obis_reference': obis.MBUS4_VALVE_POSITION,
|
||||
'value_parser': CosemParser(ValueParser(int)),
|
||||
'value_name': 'BELGIUM_MBUS4_VALVE_POSITION'
|
||||
'value_name': 'MBUS4_VALVE_POSITION'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS4_METER_READING1,
|
||||
'obis_reference': obis.MBUS4_METER_READING,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS4_METER_READING1'
|
||||
'value_name': 'MBUS4_METER_READING'
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MBUS4_METER_READING2,
|
||||
'obis_reference': obis.MBUS4_METER_READING_ALT,
|
||||
'value_parser': MBusParser(
|
||||
ValueParser(timestamp),
|
||||
ValueParser(Decimal)
|
||||
),
|
||||
'value_name': 'BELGIUM_MBUS4_METER_READING2'
|
||||
'value_name': 'MBUS4_METER_READING_ALT'
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -1233,7 +1334,7 @@ EON_HUNGARY = {
|
||||
# This seems to be wrong in documentation, it's not 0-0:96.50.68, but 0-0:96.3.10
|
||||
},
|
||||
{
|
||||
'obis_reference': obis.BELGIUM_MAX_POWER_PER_PHASE,
|
||||
'obis_reference': obis.ACTUAL_TRESHOLD_ELECTRICITY,
|
||||
'value_parser': CosemParser(ValueParser(Decimal)),
|
||||
'value_name': 'ACTUAL_TRESHOLD_ELECTRICITY'
|
||||
},
|
||||
|
@ -15,59 +15,59 @@ class MbusDeviceTest(unittest.TestCase):
|
||||
device_type_parser = [
|
||||
object["value_parser"]
|
||||
for object in v5_objects
|
||||
if object["obis_reference"] == obis_references.DEVICE_TYPE
|
||||
if object["obis_reference"] == obis_references.MBUS2_DEVICE_TYPE
|
||||
][0]
|
||||
device_type = device_type_parser.parse('0-2:24.1.0(003)\r\n')
|
||||
|
||||
equipment_parser = [
|
||||
object["value_parser"]
|
||||
for object in v5_objects
|
||||
if object["obis_reference"] == obis_references.EQUIPMENT_IDENTIFIER_GAS
|
||||
if object["obis_reference"] == obis_references.MBUS2_EQUIPMENT_IDENTIFIER
|
||||
][0]
|
||||
equipment = equipment_parser.parse('0-2:96.1.0(4730303339303031393336393930363139)\r\n')
|
||||
|
||||
gas_reading_parser = [
|
||||
object["value_parser"]
|
||||
for object in v5_objects
|
||||
if object["obis_reference"] == obis_references.HOURLY_GAS_METER_READING
|
||||
if object["obis_reference"] == obis_references.MBUS2_METER_READING
|
||||
][0]
|
||||
gas_reading = gas_reading_parser.parse('0-2:24.2.1(200426223001S)(00246.138*m3)\r\n')
|
||||
|
||||
mbus_device = MbusDevice(channel_id=1)
|
||||
mbus_device.add(obis_references.DEVICE_TYPE, device_type, "DEVICE_TYPE")
|
||||
mbus_device.add(obis_references.EQUIPMENT_IDENTIFIER_GAS, equipment, "EQUIPMENT_IDENTIFIER_GAS")
|
||||
mbus_device.add(obis_references.HOURLY_GAS_METER_READING, gas_reading, "HOURLY_GAS_METER_READING")
|
||||
mbus_device = MbusDevice(channel_id=2)
|
||||
mbus_device.add(obis_references.MBUS2_DEVICE_TYPE, device_type, "MBUS2_DEVICE_TYPE")
|
||||
mbus_device.add(obis_references.MBUS2_EQUIPMENT_IDENTIFIER, equipment, "MBUS2_EQUIPMENT_IDENTIFIER")
|
||||
mbus_device.add(obis_references.MBUS2_METER_READING, gas_reading, "MBUS2_METER_READING")
|
||||
|
||||
self.mbus_device = mbus_device
|
||||
|
||||
def test_attributes(self):
|
||||
self.assertEqual(self.mbus_device.DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(self.mbus_device.DEVICE_TYPE.unit, None)
|
||||
self.assertEqual(self.mbus_device.MBUS2_DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(self.mbus_device.MBUS2_DEVICE_TYPE.unit, None)
|
||||
|
||||
self.assertEqual(self.mbus_device.EQUIPMENT_IDENTIFIER_GAS.value,
|
||||
self.assertEqual(self.mbus_device.MBUS2_EQUIPMENT_IDENTIFIER.value,
|
||||
'4730303339303031393336393930363139')
|
||||
self.assertEqual(self.mbus_device.EQUIPMENT_IDENTIFIER_GAS.unit, None)
|
||||
self.assertEqual(self.mbus_device.MBUS2_EQUIPMENT_IDENTIFIER.unit, None)
|
||||
|
||||
self.assertEqual(self.mbus_device.HOURLY_GAS_METER_READING.value, Decimal('246.138'))
|
||||
self.assertEqual(self.mbus_device.HOURLY_GAS_METER_READING.unit, 'm3')
|
||||
self.assertEqual(self.mbus_device.MBUS2_METER_READING.value, Decimal('246.138'))
|
||||
self.assertEqual(self.mbus_device.MBUS2_METER_READING.unit, 'm3')
|
||||
|
||||
def test_to_json(self):
|
||||
self.assertEqual(
|
||||
json.loads(self.mbus_device.to_json()),
|
||||
{
|
||||
'CHANNEL_ID': 1,
|
||||
'DEVICE_TYPE': {'value': 3, 'unit': None},
|
||||
'EQUIPMENT_IDENTIFIER_GAS': {'value': '4730303339303031393336393930363139', 'unit': None},
|
||||
'HOURLY_GAS_METER_READING': {'datetime': '2020-04-26T20:30:01+00:00', 'value': 246.138, 'unit': 'm3'}}
|
||||
'CHANNEL_ID': 2,
|
||||
'MBUS2_DEVICE_TYPE': {'value': 3, 'unit': None},
|
||||
'MBUS2_EQUIPMENT_IDENTIFIER': {'value': '4730303339303031393336393930363139', 'unit': None},
|
||||
'MBUS2_METER_READING': {'datetime': '2020-04-26T20:30:01+00:00', 'value': 246.138, 'unit': 'm3'}}
|
||||
)
|
||||
|
||||
def test_str(self):
|
||||
self.assertEqual(
|
||||
str(self.mbus_device),
|
||||
(
|
||||
'MBUS DEVICE (channel 1)\n'
|
||||
'\tDEVICE_TYPE: 3 [None]\n'
|
||||
'\tEQUIPMENT_IDENTIFIER_GAS: 4730303339303031393336393930363139 [None]\n'
|
||||
'\tHOURLY_GAS_METER_READING: 246.138 [m3] at 2020-04-26T20:30:01+00:00\n'
|
||||
'MBUS DEVICE (channel 2)\n'
|
||||
'\tMBUS2_DEVICE_TYPE: 3 [None]\n'
|
||||
'\tMBUS2_EQUIPMENT_IDENTIFIER: 4730303339303031393336393930363139 [None]\n'
|
||||
'\tMBUS2_METER_READING: 246.138 [m3] at 2020-04-26T20:30:01+00:00\n'
|
||||
)
|
||||
)
|
||||
|
@ -216,14 +216,6 @@ class TelegramTest(unittest.TestCase):
|
||||
value_type=Decimal,
|
||||
value_val=Decimal('2'))
|
||||
|
||||
# DEVICE_TYPE (0-x:24.1.0)
|
||||
self.verify_telegram_item(telegram,
|
||||
'DEVICE_TYPE',
|
||||
object_type=CosemObject,
|
||||
unit_val=None,
|
||||
value_type=int,
|
||||
value_val=3)
|
||||
|
||||
# INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE (1-0:21.7.0)
|
||||
self.verify_telegram_item(telegram,
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE',
|
||||
@ -272,7 +264,15 @@ class TelegramTest(unittest.TestCase):
|
||||
value_type=Decimal,
|
||||
value_val=Decimal('0'))
|
||||
|
||||
# EQUIPMENT_IDENTIFIER_GAS (0-x:96.1.0)
|
||||
# DEVICE_TYPE (0-1:24.1.0)
|
||||
self.verify_telegram_item(telegram,
|
||||
'DEVICE_TYPE',
|
||||
object_type=CosemObject,
|
||||
unit_val=None,
|
||||
value_type=int,
|
||||
value_val=3)
|
||||
|
||||
# EQUIPMENT_IDENTIFIER_GAS (0-1:96.1.0)
|
||||
self.verify_telegram_item(telegram,
|
||||
'EQUIPMENT_IDENTIFIER_GAS',
|
||||
object_type=CosemObject,
|
||||
@ -340,28 +340,28 @@ class TelegramTest(unittest.TestCase):
|
||||
self.assertEqual(len(mbus_devices), 2)
|
||||
|
||||
mbus_device_1 = mbus_devices[0]
|
||||
self.assertEqual(mbus_device_1.DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_1.EQUIPMENT_IDENTIFIER_GAS.value, None)
|
||||
self.assertEqual(mbus_device_1.HOURLY_GAS_METER_READING.value, Decimal('0'))
|
||||
self.assertEqual(mbus_device_1.MBUS1_DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_1.MBUS1_EQUIPMENT_IDENTIFIER.value, None)
|
||||
self.assertEqual(mbus_device_1.MBUS1_METER_READING.value, Decimal('0'))
|
||||
|
||||
mbus_device_2 = mbus_devices[1]
|
||||
self.assertEqual(mbus_device_2.DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_2.EQUIPMENT_IDENTIFIER_GAS.value, '4730303339303031393336393930363139')
|
||||
self.assertEqual(mbus_device_2.HOURLY_GAS_METER_READING.value, Decimal('246.138'))
|
||||
self.assertEqual(mbus_device_2.MBUS2_DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_2.MBUS2_EQUIPMENT_IDENTIFIER.value, '4730303339303031393336393930363139')
|
||||
self.assertEqual(mbus_device_2.MBUS2_METER_READING.value, Decimal('246.138'))
|
||||
|
||||
def test_get_mbus_device_by_channel(self):
|
||||
parser = TelegramParser(telegram_specifications.V5)
|
||||
telegram = parser.parse(TELEGRAM_V5_TWO_MBUS)
|
||||
|
||||
mbus_device_1 = telegram.get_mbus_device_by_channel(1)
|
||||
self.assertEqual(mbus_device_1.DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_1.EQUIPMENT_IDENTIFIER_GAS.value, None)
|
||||
self.assertEqual(mbus_device_1.HOURLY_GAS_METER_READING.value, Decimal('0'))
|
||||
self.assertEqual(mbus_device_1.MBUS1_DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_1.MBUS1_EQUIPMENT_IDENTIFIER.value, None)
|
||||
self.assertEqual(mbus_device_1.MBUS1_METER_READING.value, Decimal('0'))
|
||||
|
||||
mbus_device_2 = telegram.get_mbus_device_by_channel(2)
|
||||
self.assertEqual(mbus_device_2.DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_2.EQUIPMENT_IDENTIFIER_GAS.value, '4730303339303031393336393930363139')
|
||||
self.assertEqual(mbus_device_2.HOURLY_GAS_METER_READING.value, Decimal('246.138'))
|
||||
self.assertEqual(mbus_device_2.MBUS2_DEVICE_TYPE.value, 3)
|
||||
self.assertEqual(mbus_device_2.MBUS2_EQUIPMENT_IDENTIFIER.value, '4730303339303031393336393930363139')
|
||||
self.assertEqual(mbus_device_2.MBUS2_METER_READING.value, Decimal('246.138'))
|
||||
|
||||
def test_without_mbus_devices(self):
|
||||
parser = TelegramParser(telegram_specifications.V5, apply_checksum_validation=False)
|
||||
@ -375,11 +375,12 @@ class TelegramTest(unittest.TestCase):
|
||||
telegram = parser.parse(TELEGRAM_V5)
|
||||
json_data = json.loads(telegram.to_json())
|
||||
|
||||
self.maxDiff = None
|
||||
|
||||
self.assertEqual(
|
||||
json_data,
|
||||
{'CURRENT_ELECTRICITY_DELIVERY': {'unit': 'kW', 'value': 0.0},
|
||||
'CURRENT_ELECTRICITY_USAGE': {'unit': 'kW', 'value': 0.244},
|
||||
'DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'ELECTRICITY_ACTIVE_TARIFF': {'unit': None, 'value': '0002'},
|
||||
'ELECTRICITY_DELIVERED_TARIFF_1': {'unit': 'kWh', 'value': 2.444},
|
||||
'ELECTRICITY_DELIVERED_TARIFF_2': {'unit': 'kWh', 'value': 0.0},
|
||||
@ -387,10 +388,6 @@ class TelegramTest(unittest.TestCase):
|
||||
'ELECTRICITY_USED_TARIFF_2': {'unit': 'kWh', 'value': 2.399},
|
||||
'EQUIPMENT_IDENTIFIER': {'unit': None,
|
||||
'value': '4B384547303034303436333935353037'},
|
||||
'EQUIPMENT_IDENTIFIER_GAS': {'unit': None, 'value': None},
|
||||
'HOURLY_GAS_METER_READING': {'datetime': '2017-01-02T15:10:05+00:00',
|
||||
'unit': 'm3',
|
||||
'value': 0.107},
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE': {'unit': 'kW', 'value': 0.0},
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE': {'unit': 'kW', 'value': 0.07},
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE': {'unit': 'kW', 'value': 0.0},
|
||||
@ -404,16 +401,25 @@ class TelegramTest(unittest.TestCase):
|
||||
'INSTANTANEOUS_VOLTAGE_L2': {'unit': 'V', 'value': 230.0},
|
||||
'INSTANTANEOUS_VOLTAGE_L3': {'unit': 'V', 'value': 229.0},
|
||||
'LONG_POWER_FAILURE_COUNT': {'unit': None, 'value': 0},
|
||||
'MBUS_DEVICES': [{'CHANNEL_ID': 1,
|
||||
'DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'EQUIPMENT_IDENTIFIER_GAS': {'unit': None,
|
||||
'MBUS1_DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'MBUS1_EQUIPMENT_IDENTIFIER': {'unit': None,
|
||||
'value': '3232323241424344313233343536373839'},
|
||||
'HOURLY_GAS_METER_READING': {'datetime': '2017-01-02T15:10:05+00:00',
|
||||
'MBUS1_METER_READING': {'datetime': '2017-01-02T15:10:05+00:00',
|
||||
'unit': 'm3',
|
||||
'value': 0.107},
|
||||
'MBUS2_DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'MBUS2_EQUIPMENT_IDENTIFIER': {'unit': None, 'value': None},
|
||||
'MBUS_DEVICES': [{'CHANNEL_ID': 1,
|
||||
'MBUS1_DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'MBUS1_EQUIPMENT_IDENTIFIER': {'unit': None,
|
||||
'value': '3232323241424344313233343536373839'},
|
||||
'MBUS1_METER_READING': {'datetime': '2017-01-02T15:10:05+00:00',
|
||||
'unit': 'm3',
|
||||
'value': 0.107}},
|
||||
{'CHANNEL_ID': 2,
|
||||
'DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'EQUIPMENT_IDENTIFIER_GAS': {'unit': None, 'value': None}}],
|
||||
'MBUS2_DEVICE_TYPE': {'unit': None, 'value': 3},
|
||||
'MBUS2_EQUIPMENT_IDENTIFIER': {'unit': None,
|
||||
'value': None}}],
|
||||
'P1_MESSAGE_HEADER': {'unit': None, 'value': '50'},
|
||||
'P1_MESSAGE_TIMESTAMP': {'unit': None, 'value': '2017-01-02T18:20:02+00:00'},
|
||||
'POWER_EVENT_FAILURE_LOG': {'buffer': [],
|
||||
@ -433,6 +439,8 @@ class TelegramTest(unittest.TestCase):
|
||||
parser = TelegramParser(telegram_specifications.V5)
|
||||
telegram = parser.parse(TELEGRAM_V5)
|
||||
|
||||
self.maxDiff = None
|
||||
|
||||
self.assertEqual(
|
||||
str(telegram),
|
||||
(
|
||||
@ -463,22 +471,24 @@ class TelegramTest(unittest.TestCase):
|
||||
'INSTANTANEOUS_CURRENT_L2: 0.44 [A]\n'
|
||||
'INSTANTANEOUS_CURRENT_L3: 0.86 [A]\n'
|
||||
'TEXT_MESSAGE: None [None]\n'
|
||||
'DEVICE_TYPE: 3 [None]\n'
|
||||
'MBUS DEVICE (channel 1)\n'
|
||||
' DEVICE_TYPE: 3 [None]\n'
|
||||
' EQUIPMENT_IDENTIFIER_GAS: 3232323241424344313233343536373839 [None]\n'
|
||||
' HOURLY_GAS_METER_READING: 0.107 [m3] at 2017-01-02T15:10:05+00:00\n'
|
||||
'MBUS DEVICE (channel 2)\n'
|
||||
' DEVICE_TYPE: 3 [None]\n'
|
||||
' EQUIPMENT_IDENTIFIER_GAS: None [None]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE: 0.070 [kW]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE: 0.032 [kW]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE: 0.142 [kW]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE: 0.000 [kW]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE: 0.000 [kW]\n'
|
||||
'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE: 0.000 [kW]\n'
|
||||
'EQUIPMENT_IDENTIFIER_GAS: None [None]\n'
|
||||
'HOURLY_GAS_METER_READING: 0.107 [m3] at 2017-01-02T15:10:05+00:00\n'
|
||||
'MBUS1_DEVICE_TYPE: 3 [None]\n'
|
||||
'MBUS DEVICE (channel 1)\n'
|
||||
' MBUS1_DEVICE_TYPE: 3 [None]\n'
|
||||
' MBUS1_EQUIPMENT_IDENTIFIER: 3232323241424344313233343536373839 [None]\n'
|
||||
' MBUS1_METER_READING: 0.107 [m3] at 2017-01-02T15:10:05+00:00\n'
|
||||
'MBUS DEVICE (channel 2)\n'
|
||||
' MBUS2_DEVICE_TYPE: 3 [None]\n'
|
||||
' MBUS2_EQUIPMENT_IDENTIFIER: None [None]\n'
|
||||
'MBUS1_EQUIPMENT_IDENTIFIER: 3232323241424344313233343536373839 [None]\n'
|
||||
'MBUS1_METER_READING: 0.107 [m3] at 2017-01-02T15:10:05+00:00\n'
|
||||
'MBUS2_DEVICE_TYPE: 3 [None]\n'
|
||||
'MBUS2_EQUIPMENT_IDENTIFIER: None [None]\n'
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -210,11 +210,11 @@ class TelegramParserFluviusTest(unittest.TestCase):
|
||||
assert isinstance(result.ACTUAL_SWITCH_POSITION.value, int)
|
||||
assert result.ACTUAL_SWITCH_POSITION.value == 1
|
||||
|
||||
# BELGIUM_MAX_POWER_PER_PHASE (0-0:17.0.0)
|
||||
assert isinstance(result.BELGIUM_MAX_POWER_PER_PHASE, CosemObject)
|
||||
assert result.BELGIUM_MAX_POWER_PER_PHASE.unit == 'kW'
|
||||
assert isinstance(result.BELGIUM_MAX_POWER_PER_PHASE.value, Decimal)
|
||||
assert result.BELGIUM_MAX_POWER_PER_PHASE.value == Decimal('999.9')
|
||||
# ACTUAL_TRESHOLD_ELECTRICITY (0-0:17.0.0)
|
||||
assert isinstance(result.ACTUAL_TRESHOLD_ELECTRICITY, CosemObject)
|
||||
assert result.ACTUAL_TRESHOLD_ELECTRICITY.unit == 'kW'
|
||||
assert isinstance(result.ACTUAL_TRESHOLD_ELECTRICITY.value, Decimal)
|
||||
assert result.ACTUAL_TRESHOLD_ELECTRICITY.value == Decimal('999.9')
|
||||
|
||||
# FUSE_THRESHOLD_L1 (1-0:31.4.0)
|
||||
assert isinstance(result.FUSE_THRESHOLD_L1, CosemObject)
|
||||
@ -227,47 +227,47 @@ class TelegramParserFluviusTest(unittest.TestCase):
|
||||
assert result.TEXT_MESSAGE.unit is None
|
||||
assert result.TEXT_MESSAGE.value is None
|
||||
|
||||
# BELGIUM_MBUS1_DEVICE_TYPE (0-1:24.1.0)
|
||||
assert isinstance(result.BELGIUM_MBUS1_DEVICE_TYPE, CosemObject)
|
||||
assert result.BELGIUM_MBUS1_DEVICE_TYPE.unit is None
|
||||
assert isinstance(result.BELGIUM_MBUS1_DEVICE_TYPE.value, int)
|
||||
assert result.BELGIUM_MBUS1_DEVICE_TYPE.value == 3
|
||||
# MBUS1_DEVICE_TYPE (0-1:24.1.0)
|
||||
assert isinstance(result.MBUS1_DEVICE_TYPE, CosemObject)
|
||||
assert result.MBUS1_DEVICE_TYPE.unit is None
|
||||
assert isinstance(result.MBUS1_DEVICE_TYPE.value, int)
|
||||
assert result.MBUS1_DEVICE_TYPE.value == 3
|
||||
|
||||
# BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER (0-1:96.1.1)
|
||||
assert isinstance(result.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER, CosemObject)
|
||||
assert result.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER.unit is None
|
||||
assert isinstance(result.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER.value, str)
|
||||
assert result.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER.value == '37464C4F32313139303333373333'
|
||||
# MBUS1_EQUIPMENT_IDENTIFIER_ALT (0-1:96.1.1)
|
||||
assert isinstance(result.MBUS1_EQUIPMENT_IDENTIFIER_ALT, CosemObject)
|
||||
assert result.MBUS1_EQUIPMENT_IDENTIFIER_ALT.unit is None
|
||||
assert isinstance(result.MBUS1_EQUIPMENT_IDENTIFIER_ALT.value, str)
|
||||
assert result.MBUS1_EQUIPMENT_IDENTIFIER_ALT.value == '37464C4F32313139303333373333'
|
||||
|
||||
# BELGIUM_MBUS1_VALVE_POSITION (0-1:24.4.0)
|
||||
assert isinstance(result.BELGIUM_MBUS1_VALVE_POSITION, CosemObject)
|
||||
assert result.BELGIUM_MBUS1_VALVE_POSITION.unit is None
|
||||
assert isinstance(result.BELGIUM_MBUS1_VALVE_POSITION.value, int)
|
||||
assert result.BELGIUM_MBUS1_VALVE_POSITION.value == 1
|
||||
# MBUS1_VALVE_POSITION (0-1:24.4.0)
|
||||
assert isinstance(result.MBUS1_VALVE_POSITION, CosemObject)
|
||||
assert result.MBUS1_VALVE_POSITION.unit is None
|
||||
assert isinstance(result.MBUS1_VALVE_POSITION.value, int)
|
||||
assert result.MBUS1_VALVE_POSITION.value == 1
|
||||
|
||||
# BELGIUM_MBUS1_METER_READING2 (0-1:24.2.3)
|
||||
assert isinstance(result.BELGIUM_MBUS1_METER_READING2, MBusObject)
|
||||
assert result.BELGIUM_MBUS1_METER_READING2.unit == 'm3'
|
||||
assert isinstance(result.BELGIUM_MBUS1_METER_READING2.value, Decimal)
|
||||
assert result.BELGIUM_MBUS1_METER_READING2.value == Decimal('112.384')
|
||||
# MBUS1_METER_READING_ALT (0-1:24.2.3)
|
||||
assert isinstance(result.MBUS1_METER_READING_ALT, MBusObject)
|
||||
assert result.MBUS1_METER_READING_ALT.unit == 'm3'
|
||||
assert isinstance(result.MBUS1_METER_READING_ALT.value, Decimal)
|
||||
assert result.MBUS1_METER_READING_ALT.value == Decimal('112.384')
|
||||
|
||||
# BELGIUM_MBUS2_DEVICE_TYPE (0-2:24.1.0)
|
||||
assert isinstance(result.BELGIUM_MBUS2_DEVICE_TYPE, CosemObject)
|
||||
assert result.BELGIUM_MBUS2_DEVICE_TYPE.unit is None
|
||||
assert isinstance(result.BELGIUM_MBUS2_DEVICE_TYPE.value, int)
|
||||
assert result.BELGIUM_MBUS2_DEVICE_TYPE.value == 7
|
||||
# MBUS2_DEVICE_TYPE (0-2:24.1.0)
|
||||
assert isinstance(result.MBUS2_DEVICE_TYPE, CosemObject)
|
||||
assert result.MBUS2_DEVICE_TYPE.unit is None
|
||||
assert isinstance(result.MBUS2_DEVICE_TYPE.value, int)
|
||||
assert result.MBUS2_DEVICE_TYPE.value == 7
|
||||
|
||||
# BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER (0-2:96.1.1)
|
||||
assert isinstance(result.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER, CosemObject)
|
||||
assert result.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER.unit is None
|
||||
assert isinstance(result.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER.value, str)
|
||||
assert result.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER.value == '3853414731323334353637383930'
|
||||
# MBUS2_EQUIPMENT_IDENTIFIER_ALT (0-2:96.1.1)
|
||||
assert isinstance(result.MBUS2_EQUIPMENT_IDENTIFIER_ALT, CosemObject)
|
||||
assert result.MBUS2_EQUIPMENT_IDENTIFIER_ALT.unit is None
|
||||
assert isinstance(result.MBUS2_EQUIPMENT_IDENTIFIER_ALT.value, str)
|
||||
assert result.MBUS2_EQUIPMENT_IDENTIFIER_ALT.value == '3853414731323334353637383930'
|
||||
|
||||
# BELGIUM_MBUS2_METER_READING1 (0-1:24.2.1)
|
||||
assert isinstance(result.BELGIUM_MBUS2_METER_READING1, MBusObject)
|
||||
assert result.BELGIUM_MBUS2_METER_READING1.unit == 'm3'
|
||||
assert isinstance(result.BELGIUM_MBUS2_METER_READING1.value, Decimal)
|
||||
assert result.BELGIUM_MBUS2_METER_READING1.value == Decimal('872.234')
|
||||
# MBUS2_METER_READING (0-1:24.2.1)
|
||||
assert isinstance(result.MBUS2_METER_READING, MBusObject)
|
||||
assert result.MBUS2_METER_READING.unit == 'm3'
|
||||
assert isinstance(result.MBUS2_METER_READING.value, Decimal)
|
||||
assert result.MBUS2_METER_READING.value == Decimal('872.234')
|
||||
|
||||
def test_checksum_valid(self):
|
||||
# No exception is raised.
|
||||
|
@ -172,12 +172,6 @@ class TelegramParserV5Test(unittest.TestCase):
|
||||
assert telegram.TEXT_MESSAGE.unit is None
|
||||
assert telegram.TEXT_MESSAGE.value is None
|
||||
|
||||
# DEVICE_TYPE (0-x:24.1.0)
|
||||
assert isinstance(telegram.DEVICE_TYPE, CosemObject)
|
||||
assert telegram.DEVICE_TYPE.unit is None
|
||||
assert isinstance(telegram.DEVICE_TYPE.value, int)
|
||||
assert telegram.DEVICE_TYPE.value == 3
|
||||
|
||||
# INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE (1-0:21.7.0)
|
||||
assert isinstance(telegram.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE, CosemObject)
|
||||
assert telegram.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE.unit == 'kW'
|
||||
@ -219,23 +213,23 @@ class TelegramParserV5Test(unittest.TestCase):
|
||||
gas_meter_devices = telegram.MBUS_DEVICES
|
||||
gas_meter_device = gas_meter_devices[0]
|
||||
|
||||
# EQUIPMENT_IDENTIFIER_GAS (0-x:96.1.0)
|
||||
assert isinstance(gas_meter_device.DEVICE_TYPE, CosemObject)
|
||||
assert gas_meter_device.DEVICE_TYPE.unit is None
|
||||
assert isinstance(gas_meter_device.DEVICE_TYPE.value, int)
|
||||
assert gas_meter_device.DEVICE_TYPE.value == 3
|
||||
# MBUS1_DEVICE_TYPE (0-1:96.1.0)
|
||||
assert isinstance(gas_meter_device.MBUS1_DEVICE_TYPE, CosemObject)
|
||||
assert gas_meter_device.MBUS1_DEVICE_TYPE.unit is None
|
||||
assert isinstance(gas_meter_device.MBUS1_DEVICE_TYPE.value, int)
|
||||
assert gas_meter_device.MBUS1_DEVICE_TYPE.value == 3
|
||||
|
||||
# EQUIPMENT_IDENTIFIER_GAS (0-x:96.1.0)
|
||||
assert isinstance(gas_meter_device.EQUIPMENT_IDENTIFIER_GAS, CosemObject)
|
||||
assert gas_meter_device.EQUIPMENT_IDENTIFIER_GAS.unit is None
|
||||
assert isinstance(gas_meter_device.EQUIPMENT_IDENTIFIER_GAS.value, str)
|
||||
assert gas_meter_device.EQUIPMENT_IDENTIFIER_GAS.value == '3232323241424344313233343536373839'
|
||||
# MBUS1_EQUIPMENT_IDENTIFIER (0-1:96.1.0)
|
||||
assert isinstance(gas_meter_device.MBUS1_EQUIPMENT_IDENTIFIER, CosemObject)
|
||||
assert gas_meter_device.MBUS1_EQUIPMENT_IDENTIFIER.unit is None
|
||||
assert isinstance(gas_meter_device.MBUS1_EQUIPMENT_IDENTIFIER.value, str)
|
||||
assert gas_meter_device.MBUS1_EQUIPMENT_IDENTIFIER.value == '3232323241424344313233343536373839'
|
||||
|
||||
# HOURLY_GAS_METER_READING (0-1:24.2.1)
|
||||
assert isinstance(gas_meter_device.HOURLY_GAS_METER_READING, MBusObject)
|
||||
assert gas_meter_device.HOURLY_GAS_METER_READING.unit == 'm3'
|
||||
assert isinstance(telegram.HOURLY_GAS_METER_READING.value, Decimal)
|
||||
assert gas_meter_device.HOURLY_GAS_METER_READING.value == Decimal('0.107')
|
||||
# MBUS1_METER_READING (0-1:24.2.1)
|
||||
assert isinstance(gas_meter_device.MBUS1_METER_READING, MBusObject)
|
||||
assert gas_meter_device.MBUS1_METER_READING.unit == 'm3'
|
||||
assert isinstance(telegram.MBUS1_METER_READING.value, Decimal)
|
||||
assert gas_meter_device.MBUS1_METER_READING.value == Decimal('0.107')
|
||||
|
||||
def test_checksum_valid(self):
|
||||
# No exception is raised.
|
||||
@ -270,8 +264,8 @@ class TelegramParserV5Test(unittest.TestCase):
|
||||
parser = TelegramParser(telegram_specifications.V5)
|
||||
telegram = parser.parse(invalid_date_telegram)
|
||||
|
||||
# HOURLY_GAS_METER_READING (0-1:24.2.1)
|
||||
assert isinstance(telegram.HOURLY_GAS_METER_READING, MBusObject)
|
||||
assert telegram.HOURLY_GAS_METER_READING.unit is None
|
||||
assert isinstance(telegram.HOURLY_GAS_METER_READING.value, Decimal)
|
||||
assert telegram.HOURLY_GAS_METER_READING.value == Decimal('0.000')
|
||||
# MBUS1_METER_READING (0-1:24.2.1)
|
||||
assert isinstance(telegram.MBUS1_METER_READING, MBusObject)
|
||||
assert telegram.MBUS1_METER_READING.unit is None
|
||||
assert isinstance(telegram.MBUS1_METER_READING.value, Decimal)
|
||||
assert telegram.MBUS1_METER_READING.value == Decimal('0.000')
|
||||
|
Loading…
Reference in New Issue
Block a user