diff --git a/dsmr_parser/obis_name_mapping.py b/dsmr_parser/obis_name_mapping.py index 95f1016..f8a94e1 100644 --- a/dsmr_parser/obis_name_mapping.py +++ b/dsmr_parser/obis_name_mapping.py @@ -1,120 +1,122 @@ from dsmr_parser import obis_references as obis -""" +''' dsmr_parser.obis_name_mapping ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module contains a mapping of obis references to names. -""" +''' EN = { - obis.P1_MESSAGE_HEADER: 'P1_MESSAGE_HEADER', - obis.P1_MESSAGE_TIMESTAMP: 'P1_MESSAGE_TIMESTAMP', - obis.ELECTRICITY_IMPORTED_TOTAL: 'ELECTRICITY_IMPORTED_TOTAL', - obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL: 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL', - obis.ELECTRICITY_USED_TARIFF_1: 'ELECTRICITY_USED_TARIFF_1', - obis.ELECTRICITY_USED_TARIFF_2: 'ELECTRICITY_USED_TARIFF_2', - obis.ELECTRICITY_EXPORTED_TOTAL: 'ELECTRICITY_EXPORTED_TOTAL', - obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL', - obis.ELECTRICITY_DELIVERED_TARIFF_1: 'ELECTRICITY_DELIVERED_TARIFF_1', - obis.ELECTRICITY_DELIVERED_TARIFF_2: 'ELECTRICITY_DELIVERED_TARIFF_2', - obis.ELECTRICITY_ACTIVE_TARIFF: 'ELECTRICITY_ACTIVE_TARIFF', - obis.CURRENT_REACTIVE_EXPORTED: 'CURRENT_REACTIVE_EXPORTED', - obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1: 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1', - obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2: 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2', - obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1: 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1', - obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2: 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2', - obis.CURRENT_REACTIVE_IMPORTED: 'CURRENT_REACTIVE_IMPORTED', - obis.EQUIPMENT_IDENTIFIER: 'EQUIPMENT_IDENTIFIER', - obis.CURRENT_ELECTRICITY_USAGE: 'CURRENT_ELECTRICITY_USAGE', - obis.CURRENT_ELECTRICITY_DELIVERY: 'CURRENT_ELECTRICITY_DELIVERY', - obis.LONG_POWER_FAILURE_COUNT: 'LONG_POWER_FAILURE_COUNT', - obis.SHORT_POWER_FAILURE_COUNT: 'SHORT_POWER_FAILURE_COUNT', - obis.POWER_EVENT_FAILURE_LOG: 'POWER_EVENT_FAILURE_LOG', - obis.VOLTAGE_SAG_L1_COUNT: 'VOLTAGE_SAG_L1_COUNT', - obis.VOLTAGE_SAG_L2_COUNT: 'VOLTAGE_SAG_L2_COUNT', - obis.VOLTAGE_SAG_L3_COUNT: 'VOLTAGE_SAG_L3_COUNT', - obis.VOLTAGE_SWELL_L1_COUNT: 'VOLTAGE_SWELL_L1_COUNT', - obis.VOLTAGE_SWELL_L2_COUNT: 'VOLTAGE_SWELL_L2_COUNT', - obis.VOLTAGE_SWELL_L3_COUNT: 'VOLTAGE_SWELL_L3_COUNT', - obis.INSTANTANEOUS_VOLTAGE_L1: 'INSTANTANEOUS_VOLTAGE_L1', - obis.INSTANTANEOUS_VOLTAGE_L2: 'INSTANTANEOUS_VOLTAGE_L2', - obis.INSTANTANEOUS_VOLTAGE_L3: 'INSTANTANEOUS_VOLTAGE_L3', - obis.INSTANTANEOUS_CURRENT_L1: 'INSTANTANEOUS_CURRENT_L1', - obis.INSTANTANEOUS_CURRENT_L2: 'INSTANTANEOUS_CURRENT_L2', - obis.INSTANTANEOUS_CURRENT_L3: 'INSTANTANEOUS_CURRENT_L3', - obis.TEXT_MESSAGE_CODE: 'TEXT_MESSAGE_CODE', - obis.TEXT_MESSAGE: 'TEXT_MESSAGE', - obis.DEVICE_TYPE: 'DEVICE_TYPE', - obis.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE', - obis.INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE', - obis.INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE', - obis.INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE', - obis.INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE', - obis.INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE', - obis.INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE', - obis.EQUIPMENT_IDENTIFIER_GAS: 'EQUIPMENT_IDENTIFIER_GAS', - obis.HOURLY_GAS_METER_READING: 'HOURLY_GAS_METER_READING', - obis.GAS_METER_READING: 'GAS_METER_READING', - obis.ACTUAL_TRESHOLD_ELECTRICITY: 'ACTUAL_TRESHOLD_ELECTRICITY', - obis.ACTUAL_SWITCH_POSITION: 'ACTUAL_SWITCH_POSITION', - obis.VALVE_POSITION_GAS: 'VALVE_POSITION_GAS', - obis.BELGIUM_VERSION_INFORMATION: 'BELGIUM_VERSION_INFORMATION', - obis.BELGIUM_EQUIPMENT_IDENTIFIER: 'BELGIUM_EQUIPMENT_IDENTIFIER', - obis.BELGIUM_CURRENT_AVERAGE_DEMAND: 'BELGIUM_CURRENT_AVERAGE_DEMAND', - obis.BELGIUM_MAXIMUM_DEMAND_MONTH: 'BELGIUM_MAXIMUM_DEMAND_MONTH', - obis.BELGIUM_MAXIMUM_DEMAND_13_MONTHS: 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS', - obis.BELGIUM_MAX_POWER_PER_PHASE: 'BELGIUM_MAX_POWER_PER_PHASE', - obis.BELGIUM_MAX_CURRENT_PER_PHASE: 'BELGIUM_MAX_CURRENT_PER_PHASE', - obis.BELGIUM_MBUS1_DEVICE_TYPE: 'BELGIUM_MBUS1_DEVICE_TYPE', - obis.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER', - obis.BELGIUM_MBUS1_VALVE_POSITION: 'BELGIUM_MBUS1_VALVE_POSITION', - obis.BELGIUM_MBUS1_METER_READING1: 'BELGIUM_MBUS1_METER_READING1', - obis.BELGIUM_MBUS1_METER_READING2: 'BELGIUM_MBUS1_METER_READING2', - obis.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER', - obis.BELGIUM_MBUS2_VALVE_POSITION: 'BELGIUM_MBUS2_VALVE_POSITION', - obis.BELGIUM_MBUS2_METER_READING1: 'BELGIUM_MBUS2_METER_READING1', - obis.BELGIUM_MBUS2_METER_READING2: 'BELGIUM_MBUS2_METER_READING2', - obis.BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER', - obis.BELGIUM_MBUS3_VALVE_POSITION: 'BELGIUM_MBUS3_VALVE_POSITION', - obis.BELGIUM_MBUS3_METER_READING1: 'BELGIUM_MBUS3_METER_READING1', - obis.BELGIUM_MBUS3_METER_READING2: 'BELGIUM_MBUS3_METER_READING2', - obis.BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER', - obis.BELGIUM_MBUS4_VALVE_POSITION: 'BELGIUM_MBUS4_VALVE_POSITION', - obis.BELGIUM_MBUS4_METER_READING1: 'BELGIUM_MBUS4_METER_READING1', - obis.BELGIUM_MBUS4_METER_READING2: 'BELGIUM_MBUS4_METER_READING2', - obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER: 'LUXEMBOURG_EQUIPMENT_IDENTIFIER', - obis.Q3D_EQUIPMENT_IDENTIFIER: 'Q3D_EQUIPMENT_IDENTIFIER', - obis.Q3D_EQUIPMENT_STATE: 'Q3D_EQUIPMENT_STATE', - obis.Q3D_EQUIPMENT_SERIALNUMBER: 'Q3D_EQUIPMENT_SERIALNUMBER', - obis.BELGIUM_MBUS2_DEVICE_TYPE: 'BELGIUM_MBUS2_DEVICE_TYPE', - obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_3: 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_3', - obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_4: 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_4', - obis.EON_HU_ELECTRICITY_USED_TARIFF_3: 'EON_HU_ELECTRICITY_USED_TARIFF_3', - obis.EON_HU_ELECTRICITY_USED_TARIFF_4: 'EON_HU_ELECTRICITY_USED_TARIFF_4', - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1', - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2', - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3', - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4', - obis.EON_HU_ELECTRICITY_COMBINED: 'EON_HU_ELECTRICITY_COMBINED', - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL', - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L1: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L1', - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L2: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L2', - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L3: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L3', - obis.EON_HU_FREQUENCY: 'EON_HU_FREQUENCY', - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1', - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2', - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3', - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4', - obis.EON_HU_MAX_POWER_ON_L1: 'EON_HU_MAX_POWER_ON_L1', - obis.EON_HU_MAX_POWER_ON_L2: 'EON_HU_MAX_POWER_ON_L2', - obis.EON_HU_MAX_POWER_ON_L3: 'EON_HU_MAX_POWER_ON_L3', - obis.EON_HU_LAST_MONTH_DATA: 'EON_HU_LAST_MONTH_DATA' + 'P1_MESSAGE_HEADER': 'P1_MESSAGE_HEADER', + 'P1_MESSAGE_TIMESTAMP': 'P1_MESSAGE_TIMESTAMP', + 'ELECTRICITY_IMPORTED_TOTAL': 'ELECTRICITY_IMPORTED_TOTAL', + 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL': 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL', + 'ELECTRICITY_USED_TARIFF_1': 'ELECTRICITY_USED_TARIFF_1', + 'ELECTRICITY_USED_TARIFF_2': 'ELECTRICITY_USED_TARIFF_2', + 'ELECTRICITY_EXPORTED_TOTAL': 'ELECTRICITY_EXPORTED_TOTAL', + 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL': 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL', + 'ELECTRICITY_DELIVERED_TARIFF_1': 'ELECTRICITY_DELIVERED_TARIFF_1', + 'ELECTRICITY_DELIVERED_TARIFF_2': 'ELECTRICITY_DELIVERED_TARIFF_2', + 'ELECTRICITY_ACTIVE_TARIFF': 'ELECTRICITY_ACTIVE_TARIFF', + 'CURRENT_REACTIVE_EXPORTED': 'CURRENT_REACTIVE_EXPORTED', + 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1', + 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2', + 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1', + 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2', + 'CURRENT_REACTIVE_IMPORTED': 'CURRENT_REACTIVE_IMPORTED', + 'EQUIPMENT_IDENTIFIER': 'EQUIPMENT_IDENTIFIER', + 'CURRENT_ELECTRICITY_USAGE': 'CURRENT_ELECTRICITY_USAGE', + 'CURRENT_ELECTRICITY_DELIVERY': 'CURRENT_ELECTRICITY_DELIVERY', + 'LONG_POWER_FAILURE_COUNT': 'LONG_POWER_FAILURE_COUNT', + 'SHORT_POWER_FAILURE_COUNT': 'SHORT_POWER_FAILURE_COUNT', + 'POWER_EVENT_FAILURE_LOG': 'POWER_EVENT_FAILURE_LOG', + 'VOLTAGE_SAG_L1_COUNT': 'VOLTAGE_SAG_L1_COUNT', + 'VOLTAGE_SAG_L2_COUNT': 'VOLTAGE_SAG_L2_COUNT', + 'VOLTAGE_SAG_L3_COUNT': 'VOLTAGE_SAG_L3_COUNT', + 'VOLTAGE_SWELL_L1_COUNT': 'VOLTAGE_SWELL_L1_COUNT', + 'VOLTAGE_SWELL_L2_COUNT': 'VOLTAGE_SWELL_L2_COUNT', + 'VOLTAGE_SWELL_L3_COUNT': 'VOLTAGE_SWELL_L3_COUNT', + 'INSTANTANEOUS_VOLTAGE_L1': 'INSTANTANEOUS_VOLTAGE_L1', + 'INSTANTANEOUS_VOLTAGE_L2': 'INSTANTANEOUS_VOLTAGE_L2', + 'INSTANTANEOUS_VOLTAGE_L3': 'INSTANTANEOUS_VOLTAGE_L3', + 'INSTANTANEOUS_CURRENT_L1': 'INSTANTANEOUS_CURRENT_L1', + 'INSTANTANEOUS_CURRENT_L2': 'INSTANTANEOUS_CURRENT_L2', + 'INSTANTANEOUS_CURRENT_L3': 'INSTANTANEOUS_CURRENT_L3', + 'TEXT_MESSAGE_CODE': 'TEXT_MESSAGE_CODE', + 'TEXT_MESSAGE': 'TEXT_MESSAGE', + 'DEVICE_TYPE': 'DEVICE_TYPE', + 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE', + 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE', + 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE', + 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE', + 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE', + 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE', + 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE', + 'EQUIPMENT_IDENTIFIER_GAS': 'EQUIPMENT_IDENTIFIER_GAS', + 'HOURLY_GAS_METER_READING': 'HOURLY_GAS_METER_READING', + 'GAS_METER_READING': 'GAS_METER_READING', + 'ACTUAL_TRESHOLD_ELECTRICITY': 'ACTUAL_TRESHOLD_ELECTRICITY', + 'ACTUAL_SWITCH_POSITION': 'ACTUAL_SWITCH_POSITION', + 'VALVE_POSITION_GAS': 'VALVE_POSITION_GAS', + 'BELGIUM_VERSION_INFORMATION': 'BELGIUM_VERSION_INFORMATION', + 'BELGIUM_EQUIPMENT_IDENTIFIER': 'BELGIUM_EQUIPMENT_IDENTIFIER', + 'BELGIUM_CURRENT_AVERAGE_DEMAND': 'BELGIUM_CURRENT_AVERAGE_DEMAND', + 'BELGIUM_MAXIMUM_DEMAND_MONTH': 'BELGIUM_MAXIMUM_DEMAND_MONTH', + 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS': 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS', + 'BELGIUM_MAX_POWER_PER_PHASE': 'BELGIUM_MAX_POWER_PER_PHASE', + 'BELGIUM_MAX_CURRENT_PER_PHASE': 'BELGIUM_MAX_CURRENT_PER_PHASE', + 'BELGIUM_MBUS1_DEVICE_TYPE': 'BELGIUM_MBUS1_DEVICE_TYPE', + 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER', + 'BELGIUM_MBUS1_VALVE_POSITION': 'BELGIUM_MBUS1_VALVE_POSITION', + 'BELGIUM_MBUS1_METER_READING1': 'BELGIUM_MBUS1_METER_READING1', + 'BELGIUM_MBUS1_METER_READING2': 'BELGIUM_MBUS1_METER_READING2', + 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER', + 'BELGIUM_MBUS2_VALVE_POSITION': 'BELGIUM_MBUS2_VALVE_POSITION', + 'BELGIUM_MBUS2_METER_READING1': 'BELGIUM_MBUS2_METER_READING1', + 'BELGIUM_MBUS2_METER_READING2': 'BELGIUM_MBUS2_METER_READING2', + 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER', + 'BELGIUM_MBUS3_VALVE_POSITION': 'BELGIUM_MBUS3_VALVE_POSITION', + 'BELGIUM_MBUS3_METER_READING1': 'BELGIUM_MBUS3_METER_READING1', + 'BELGIUM_MBUS3_METER_READING2': 'BELGIUM_MBUS3_METER_READING2', + 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER', + 'BELGIUM_MBUS4_VALVE_POSITION': 'BELGIUM_MBUS4_VALVE_POSITION', + 'BELGIUM_MBUS4_METER_READING1': 'BELGIUM_MBUS4_METER_READING1', + 'BELGIUM_MBUS4_METER_READING2': 'BELGIUM_MBUS4_METER_READING2', + 'LUXEMBOURG_EQUIPMENT_IDENTIFIER': 'LUXEMBOURG_EQUIPMENT_IDENTIFIER', + 'Q3D_EQUIPMENT_IDENTIFIER': 'Q3D_EQUIPMENT_IDENTIFIER', + 'Q3D_EQUIPMENT_STATE': 'Q3D_EQUIPMENT_STATE', + 'Q3D_EQUIPMENT_SERIALNUMBER': 'Q3D_EQUIPMENT_SERIALNUMBER', + 'BELGIUM_MBUS2_DEVICE_TYPE': 'BELGIUM_MBUS2_DEVICE_TYPE', + 'EON_HU_COSEM_LOGICAL_DEVICE_NAME': 'COSEM_LOGICAL_DEVICE_NAME', + 'EON_HU_EQUIPMENT_SERIAL_NUMBER': 'EQUIPMENT_SERIAL_NUMBER', + 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_3': 'ELECTRICITY_DELIVERED_TARIFF_3', + 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_4': 'ELECTRICITY_DELIVERED_TARIFF_4', + 'EON_HU_ELECTRICITY_USED_TARIFF_3': 'ELECTRICITY_USED_TARIFF_3', + 'EON_HU_ELECTRICITY_USED_TARIFF_4': 'ELECTRICITY_USED_TARIFF_4', + 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1': 'ELECTRICITY_REACTIVE_TOTAL_Q1', + 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2': 'ELECTRICITY_REACTIVE_TOTAL_Q2', + 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3': 'ELECTRICITY_REACTIVE_TOTAL_Q3', + 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4': 'ELECTRICITY_REACTIVE_TOTAL_Q4', + 'EON_HU_ELECTRICITY_COMBINED': 'ELECTRICITY_COMBINED', + 'EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL': 'INSTANTANEOUS_POWER_FACTOR_TOTAL', + 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L1': 'INSTANTANEOUS_POWER_FACTOR_L1', + 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L2': 'INSTANTANEOUS_POWER_FACTOR_L2', + 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L3': 'INSTANTANEOUS_POWER_FACTOR_L3', + 'EON_HU_FREQUENCY': 'FREQUENCY', + 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1': 'INSTANTANEOUS_REACTIVE_POWER_Q1', + 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2': 'INSTANTANEOUS_REACTIVE_POWER_Q2', + 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3': 'INSTANTANEOUS_REACTIVE_POWER_Q3', + 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4': 'INSTANTANEOUS_REACTIVE_POWER_Q4', + 'EON_HU_MAX_POWER_ON_L1': 'MAX_POWER_ON_L1', + 'EON_HU_MAX_POWER_ON_L2': 'MAX_POWER_ON_L2', + 'EON_HU_MAX_POWER_ON_L3': 'MAX_POWER_ON_L3', + 'EON_HU_LAST_MONTH_DATA': 'LAST_MONTH_DATA' } REVERSE_EN = dict([(v, k) for k, v in EN.items()]) diff --git a/dsmr_parser/parsers.py b/dsmr_parser/parsers.py index 3b48cfa..ed7dd30 100644 --- a/dsmr_parser/parsers.py +++ b/dsmr_parser/parsers.py @@ -29,8 +29,8 @@ class TelegramParser(object): self.telegram_specification = telegram_specification # Regexes are compiled once to improve performance self.telegram_specification_regexes = { - signature: re.compile(signature, re.DOTALL | re.MULTILINE) - for signature in self.telegram_specification['objects'].keys() + object["obis_reference"]: re.compile(object["obis_reference"], re.DOTALL | re.MULTILINE) + for object in self.telegram_specification['objects'] } def parse(self, telegram_data, encryption_key="", authentication_key="", throw_ex=False): # noqa: C901 @@ -84,17 +84,17 @@ class TelegramParser(object): telegram = Telegram() - for signature, parser in self.telegram_specification['objects'].items(): - pattern = self.telegram_specification_regexes[signature] + for object in self.telegram_specification['objects']: + pattern = self.telegram_specification_regexes[object["obis_reference"]] matches = pattern.findall(telegram_data) # Some signatures are optional and may not be present, # so only parse lines that match for match in matches: try: - dsmr_object = parser.parse(match) + dsmr_object = object["value_parser"].parse(match) except ParseError: - logger.error("ignore line with signature {}, because parsing failed.".format(signature), + logger.error("ignore line with signature {}, because parsing failed.".format(object["obis_reference"]), exc_info=True) if throw_ex: raise @@ -102,7 +102,7 @@ class TelegramParser(object): logger.error("Unexpected {}: {}".format(type(err), err)) raise else: - telegram.add(obis_reference=signature, dsmr_object=dsmr_object) + telegram.add(obis_reference=object["value_name"], dsmr_object=dsmr_object) return telegram diff --git a/dsmr_parser/telegram_specifications.py b/dsmr_parser/telegram_specifications.py index a5030a4..7cd37bb 100644 --- a/dsmr_parser/telegram_specifications.py +++ b/dsmr_parser/telegram_specifications.py @@ -284,29 +284,98 @@ Q3D = { SAGEMCOM_T210_D_R = { "general_global_cipher": True, "checksum_support": True, - 'objects': { - obis.P1_MESSAGE_HEADER: CosemParser(ValueParser(str)), - obis.P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)), - obis.ELECTRICITY_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)), - - obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.CURRENT_REACTIVE_IMPORTED: CosemParser(ValueParser(Decimal)), - - obis.ELECTRICITY_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)), - - obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.CURRENT_REACTIVE_EXPORTED: CosemParser(ValueParser(Decimal)), - } + 'objects': [ + { + 'obis_reference': obis.P1_MESSAGE_HEADER, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'P1_MESSAGE_HEADER' + }, + { + 'obis_reference': obis.P1_MESSAGE_TIMESTAMP, + 'value_parser': CosemParser(ValueParser(timestamp)), + 'value_name': 'P1_MESSAGE_TIMESTAMP' + }, + { + 'obis_reference': obis.ELECTRICITY_IMPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_IMPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_USED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_USED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_USED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_USED_TARIFF_2' + }, + { + 'obis_reference': obis.CURRENT_ELECTRICITY_USAGE, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_ELECTRICITY_USAGE' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2' + }, + { + 'obis_reference': obis.CURRENT_REACTIVE_IMPORTED, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_REACTIVE_IMPORTED' + }, + { + 'obis_reference': obis.ELECTRICITY_EXPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_EXPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_DELIVERED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_DELIVERED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_DELIVERED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_DELIVERED_TARIFF_2' + }, + { + 'obis_reference': obis.CURRENT_ELECTRICITY_DELIVERY, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_ELECTRICITY_DELIVERY' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2' + }, + { + 'obis_reference': obis.CURRENT_REACTIVE_EXPORTED, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_REACTIVE_EXPORTED' + } + ] } AUSTRIA_ENERGIENETZE_STEIERMARK = SAGEMCOM_T210_D_R @@ -345,54 +414,262 @@ EON_HUNGARY = { # Based on V5 # Reference: https://www.eon.hu/content/dam/eon/eon-hungary/documents/Lakossagi/aram/muszaki-ugyek/p1_port%20felhaszn_interfesz_taj_%2020230210.pdf 'checksum_support': True, - 'objects': { - obis.P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)), - obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)), # "COSEM logical equipment name" - obis.EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)), # This obis is already defined, so it is not possible to "rename" it to "EQUIPMENT_SERIAL_NUMBER" - obis.ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)), - obis.ACTUAL_SWITCH_POSITION: CosemParser(ValueParser(str)), # This seems to be wrong in documentation, it's not 0-0:96.50.68, but 0-0:96.3.10 - obis.ACTUAL_TRESHOLD_ELECTRICITY: CosemParser(ValueParser(Decimal)), # This obis is already duplicated, so it will show up as "BELGIUM_MAX_POWER_PER_PHASE" - obis.ELECTRICITY_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_USED_TARIFF_3: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_USED_TARIFF_4: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_3: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_4: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4: CosemParser(ValueParser(Decimal)), - obis.EON_HU_ELECTRICITY_COMBINED: CosemParser(ValueParser(Decimal)), - obis.INSTANTANEOUS_VOLTAGE_L1: CosemParser(ValueParser(Decimal)), - obis.INSTANTANEOUS_VOLTAGE_L2: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.INSTANTANEOUS_VOLTAGE_L3: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.INSTANTANEOUS_CURRENT_L1: CosemParser(ValueParser(Decimal)), - obis.INSTANTANEOUS_CURRENT_L2: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.INSTANTANEOUS_CURRENT_L3: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L1: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L2: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L3: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.EON_HU_FREQUENCY: CosemParser(ValueParser(Decimal)), - obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)), - obis.CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3: CosemParser(ValueParser(Decimal)), - obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4: CosemParser(ValueParser(Decimal)), - obis.EON_HU_MAX_POWER_ON_L1: CosemParser(ValueParser(Decimal)), - obis.EON_HU_MAX_POWER_ON_L2: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - obis.EON_HU_MAX_POWER_ON_L3: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters - # This is a list of last month data (on last day of last month @ 23:59:59), - # But it is not clear that what are the elements of the list. - # This is not well documented enough, so it is ignored for now. - # obis.EON_HU_LAST_MONTH_DATA: - obis.TEXT_MESSAGE: CosemParser(ValueParser(str)) - } + 'objects': [ + { + 'obis_reference': obis.P1_MESSAGE_TIMESTAMP, + 'value_parser': CosemParser(ValueParser(timestamp)), + 'value_name': 'P1_MESSAGE_TIMESTAMP' + }, + { + 'obis_reference': obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'EON_HU_COSEM_LOGICAL_DEVICE_NAME' + }, + { + 'obis_reference': obis.EQUIPMENT_IDENTIFIER_GAS, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'EON_HU_EQUIPMENT_SERIAL_NUMBER' + }, + { + 'obis_reference': obis.ELECTRICITY_ACTIVE_TARIFF, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'ELECTRICITY_ACTIVE_TARIFF' + }, + { + 'obis_reference': obis.ACTUAL_SWITCH_POSITION, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'ACTUAL_SWITCH_POSITION' + # 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, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ACTUAL_TRESHOLD_ELECTRICITY' + }, + { + 'obis_reference': obis.ELECTRICITY_IMPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_IMPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_USED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_USED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_USED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_USED_TARIFF_2' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_USED_TARIFF_3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_USED_TARIFF_3' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_USED_TARIFF_4, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_USED_TARIFF_4' + }, + { + 'obis_reference': obis.ELECTRICITY_EXPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_EXPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_DELIVERED_TARIFF_1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_DELIVERED_TARIFF_1' + }, + { + 'obis_reference': obis.ELECTRICITY_DELIVERED_TARIFF_2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_DELIVERED_TARIFF_2' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_3' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_4, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_4' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL' + }, + { + 'obis_reference': obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4' + }, + { + 'obis_reference': obis.EON_HU_ELECTRICITY_COMBINED, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_ELECTRICITY_COMBINED' + }, + { + 'obis_reference': obis.INSTANTANEOUS_VOLTAGE_L1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_VOLTAGE_L1' + }, + { + 'obis_reference': obis.INSTANTANEOUS_VOLTAGE_L2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_VOLTAGE_L2' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.INSTANTANEOUS_VOLTAGE_L3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_VOLTAGE_L3' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.INSTANTANEOUS_CURRENT_L1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_CURRENT_L1' + }, + { + 'obis_reference': obis.INSTANTANEOUS_CURRENT_L2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_CURRENT_L2' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.INSTANTANEOUS_CURRENT_L3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'INSTANTANEOUS_CURRENT_L3' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L1' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L2' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L3' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.EON_HU_FREQUENCY, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_FREQUENCY' + }, + { + 'obis_reference': obis.CURRENT_ELECTRICITY_USAGE, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_ELECTRICITY_USAGE' + }, + { + 'obis_reference': obis.CURRENT_ELECTRICITY_DELIVERY, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'CURRENT_ELECTRICITY_DELIVERY' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3' + }, + { + 'obis_reference': obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4' + }, + { + 'obis_reference': obis.EON_HU_MAX_POWER_ON_L1, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_MAX_POWER_ON_L1' + }, + { + 'obis_reference': obis.EON_HU_MAX_POWER_ON_L2, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_MAX_POWER_ON_L2' + # Only with 3 phase meters + }, + { + 'obis_reference': obis.EON_HU_MAX_POWER_ON_L3, + 'value_parser': CosemParser(ValueParser(Decimal)), + 'value_name': 'EON_HU_MAX_POWER_ON_L3' + # Only with 3 phase meters + }, + # I'm not sure which datas does this line containes. It should be the data of last minute of last month. + # { + # 'obis_reference': obis.BELGIUM_MAXIMUM_DEMAND_13_MONTHS, + # 'value_parser': NonExistingParser( + # ValueParser(timestamp), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal), + # ValueParser(Decimal) + # ), + # 'value_name': 'EON_HU_LAST_MONTH_DATA' + # }, + { + 'obis_reference': obis.TEXT_MESSAGE, + 'value_parser': CosemParser(ValueParser(str)), + 'value_name': 'TEXT_MESSAGE' + } + ] }