refactor for avaoid multiple names

This commit is contained in:
root 2023-07-30 10:55:17 +02:00
parent 1fec40d0b8
commit 01f8ea34f2
3 changed files with 468 additions and 189 deletions

View File

@ -1,120 +1,122 @@
from dsmr_parser import obis_references as obis from dsmr_parser import obis_references as obis
""" '''
dsmr_parser.obis_name_mapping dsmr_parser.obis_name_mapping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This module contains a mapping of obis references to names. This module contains a mapping of obis references to names.
""" '''
EN = { EN = {
obis.P1_MESSAGE_HEADER: 'P1_MESSAGE_HEADER', 'P1_MESSAGE_HEADER': 'P1_MESSAGE_HEADER',
obis.P1_MESSAGE_TIMESTAMP: 'P1_MESSAGE_TIMESTAMP', 'P1_MESSAGE_TIMESTAMP': 'P1_MESSAGE_TIMESTAMP',
obis.ELECTRICITY_IMPORTED_TOTAL: 'ELECTRICITY_IMPORTED_TOTAL', 'ELECTRICITY_IMPORTED_TOTAL': 'ELECTRICITY_IMPORTED_TOTAL',
obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL: 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL', 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL': 'ELECTRICITY_REACTIVE_IMPORTED_TOTAL',
obis.ELECTRICITY_USED_TARIFF_1: 'ELECTRICITY_USED_TARIFF_1', 'ELECTRICITY_USED_TARIFF_1': 'ELECTRICITY_USED_TARIFF_1',
obis.ELECTRICITY_USED_TARIFF_2: 'ELECTRICITY_USED_TARIFF_2', 'ELECTRICITY_USED_TARIFF_2': 'ELECTRICITY_USED_TARIFF_2',
obis.ELECTRICITY_EXPORTED_TOTAL: 'ELECTRICITY_EXPORTED_TOTAL', 'ELECTRICITY_EXPORTED_TOTAL': 'ELECTRICITY_EXPORTED_TOTAL',
obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL', 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL': 'ELECTRICITY_REACTIVE_EXPORTED_TOTAL',
obis.ELECTRICITY_DELIVERED_TARIFF_1: 'ELECTRICITY_DELIVERED_TARIFF_1', 'ELECTRICITY_DELIVERED_TARIFF_1': 'ELECTRICITY_DELIVERED_TARIFF_1',
obis.ELECTRICITY_DELIVERED_TARIFF_2: 'ELECTRICITY_DELIVERED_TARIFF_2', 'ELECTRICITY_DELIVERED_TARIFF_2': 'ELECTRICITY_DELIVERED_TARIFF_2',
obis.ELECTRICITY_ACTIVE_TARIFF: 'ELECTRICITY_ACTIVE_TARIFF', 'ELECTRICITY_ACTIVE_TARIFF': 'ELECTRICITY_ACTIVE_TARIFF',
obis.CURRENT_REACTIVE_EXPORTED: 'CURRENT_REACTIVE_EXPORTED', 'CURRENT_REACTIVE_EXPORTED': 'CURRENT_REACTIVE_EXPORTED',
obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1: 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1', 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1',
obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2: 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2', 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2': 'ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2',
obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1: 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1', 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1',
obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2: 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2', 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2': 'ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2',
obis.CURRENT_REACTIVE_IMPORTED: 'CURRENT_REACTIVE_IMPORTED', 'CURRENT_REACTIVE_IMPORTED': 'CURRENT_REACTIVE_IMPORTED',
obis.EQUIPMENT_IDENTIFIER: 'EQUIPMENT_IDENTIFIER', 'EQUIPMENT_IDENTIFIER': 'EQUIPMENT_IDENTIFIER',
obis.CURRENT_ELECTRICITY_USAGE: 'CURRENT_ELECTRICITY_USAGE', 'CURRENT_ELECTRICITY_USAGE': 'CURRENT_ELECTRICITY_USAGE',
obis.CURRENT_ELECTRICITY_DELIVERY: 'CURRENT_ELECTRICITY_DELIVERY', 'CURRENT_ELECTRICITY_DELIVERY': 'CURRENT_ELECTRICITY_DELIVERY',
obis.LONG_POWER_FAILURE_COUNT: 'LONG_POWER_FAILURE_COUNT', 'LONG_POWER_FAILURE_COUNT': 'LONG_POWER_FAILURE_COUNT',
obis.SHORT_POWER_FAILURE_COUNT: 'SHORT_POWER_FAILURE_COUNT', 'SHORT_POWER_FAILURE_COUNT': 'SHORT_POWER_FAILURE_COUNT',
obis.POWER_EVENT_FAILURE_LOG: 'POWER_EVENT_FAILURE_LOG', 'POWER_EVENT_FAILURE_LOG': 'POWER_EVENT_FAILURE_LOG',
obis.VOLTAGE_SAG_L1_COUNT: 'VOLTAGE_SAG_L1_COUNT', 'VOLTAGE_SAG_L1_COUNT': 'VOLTAGE_SAG_L1_COUNT',
obis.VOLTAGE_SAG_L2_COUNT: 'VOLTAGE_SAG_L2_COUNT', 'VOLTAGE_SAG_L2_COUNT': 'VOLTAGE_SAG_L2_COUNT',
obis.VOLTAGE_SAG_L3_COUNT: 'VOLTAGE_SAG_L3_COUNT', 'VOLTAGE_SAG_L3_COUNT': 'VOLTAGE_SAG_L3_COUNT',
obis.VOLTAGE_SWELL_L1_COUNT: 'VOLTAGE_SWELL_L1_COUNT', 'VOLTAGE_SWELL_L1_COUNT': 'VOLTAGE_SWELL_L1_COUNT',
obis.VOLTAGE_SWELL_L2_COUNT: 'VOLTAGE_SWELL_L2_COUNT', 'VOLTAGE_SWELL_L2_COUNT': 'VOLTAGE_SWELL_L2_COUNT',
obis.VOLTAGE_SWELL_L3_COUNT: 'VOLTAGE_SWELL_L3_COUNT', 'VOLTAGE_SWELL_L3_COUNT': 'VOLTAGE_SWELL_L3_COUNT',
obis.INSTANTANEOUS_VOLTAGE_L1: 'INSTANTANEOUS_VOLTAGE_L1', 'INSTANTANEOUS_VOLTAGE_L1': 'INSTANTANEOUS_VOLTAGE_L1',
obis.INSTANTANEOUS_VOLTAGE_L2: 'INSTANTANEOUS_VOLTAGE_L2', 'INSTANTANEOUS_VOLTAGE_L2': 'INSTANTANEOUS_VOLTAGE_L2',
obis.INSTANTANEOUS_VOLTAGE_L3: 'INSTANTANEOUS_VOLTAGE_L3', 'INSTANTANEOUS_VOLTAGE_L3': 'INSTANTANEOUS_VOLTAGE_L3',
obis.INSTANTANEOUS_CURRENT_L1: 'INSTANTANEOUS_CURRENT_L1', 'INSTANTANEOUS_CURRENT_L1': 'INSTANTANEOUS_CURRENT_L1',
obis.INSTANTANEOUS_CURRENT_L2: 'INSTANTANEOUS_CURRENT_L2', 'INSTANTANEOUS_CURRENT_L2': 'INSTANTANEOUS_CURRENT_L2',
obis.INSTANTANEOUS_CURRENT_L3: 'INSTANTANEOUS_CURRENT_L3', 'INSTANTANEOUS_CURRENT_L3': 'INSTANTANEOUS_CURRENT_L3',
obis.TEXT_MESSAGE_CODE: 'TEXT_MESSAGE_CODE', 'TEXT_MESSAGE_CODE': 'TEXT_MESSAGE_CODE',
obis.TEXT_MESSAGE: 'TEXT_MESSAGE', 'TEXT_MESSAGE': 'TEXT_MESSAGE',
obis.DEVICE_TYPE: 'DEVICE_TYPE', 'DEVICE_TYPE': 'DEVICE_TYPE',
obis.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE', 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE',
obis.INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE', 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE',
obis.INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE: 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE', 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE': 'INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE',
obis.INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE', 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE',
obis.INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE', 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE',
obis.INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE: 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE', 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE': 'INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE', 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L1_POSITIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE', 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L1_NEGATIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE', 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L2_POSITIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE', 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L2_NEGATIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE: 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE', 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE': 'INSTANTANEOUS_REACTIVE_POWER_L3_POSITIVE',
obis.INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE: 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE', 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE': 'INSTANTANEOUS_REACTIVE_POWER_L3_NEGATIVE',
obis.EQUIPMENT_IDENTIFIER_GAS: 'EQUIPMENT_IDENTIFIER_GAS', 'EQUIPMENT_IDENTIFIER_GAS': 'EQUIPMENT_IDENTIFIER_GAS',
obis.HOURLY_GAS_METER_READING: 'HOURLY_GAS_METER_READING', 'HOURLY_GAS_METER_READING': 'HOURLY_GAS_METER_READING',
obis.GAS_METER_READING: 'GAS_METER_READING', 'GAS_METER_READING': 'GAS_METER_READING',
obis.ACTUAL_TRESHOLD_ELECTRICITY: 'ACTUAL_TRESHOLD_ELECTRICITY', 'ACTUAL_TRESHOLD_ELECTRICITY': 'ACTUAL_TRESHOLD_ELECTRICITY',
obis.ACTUAL_SWITCH_POSITION: 'ACTUAL_SWITCH_POSITION', 'ACTUAL_SWITCH_POSITION': 'ACTUAL_SWITCH_POSITION',
obis.VALVE_POSITION_GAS: 'VALVE_POSITION_GAS', 'VALVE_POSITION_GAS': 'VALVE_POSITION_GAS',
obis.BELGIUM_VERSION_INFORMATION: 'BELGIUM_VERSION_INFORMATION', 'BELGIUM_VERSION_INFORMATION': 'BELGIUM_VERSION_INFORMATION',
obis.BELGIUM_EQUIPMENT_IDENTIFIER: 'BELGIUM_EQUIPMENT_IDENTIFIER', 'BELGIUM_EQUIPMENT_IDENTIFIER': 'BELGIUM_EQUIPMENT_IDENTIFIER',
obis.BELGIUM_CURRENT_AVERAGE_DEMAND: 'BELGIUM_CURRENT_AVERAGE_DEMAND', 'BELGIUM_CURRENT_AVERAGE_DEMAND': 'BELGIUM_CURRENT_AVERAGE_DEMAND',
obis.BELGIUM_MAXIMUM_DEMAND_MONTH: 'BELGIUM_MAXIMUM_DEMAND_MONTH', 'BELGIUM_MAXIMUM_DEMAND_MONTH': 'BELGIUM_MAXIMUM_DEMAND_MONTH',
obis.BELGIUM_MAXIMUM_DEMAND_13_MONTHS: 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS', 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS': 'BELGIUM_MAXIMUM_DEMAND_13_MONTHS',
obis.BELGIUM_MAX_POWER_PER_PHASE: 'BELGIUM_MAX_POWER_PER_PHASE', 'BELGIUM_MAX_POWER_PER_PHASE': 'BELGIUM_MAX_POWER_PER_PHASE',
obis.BELGIUM_MAX_CURRENT_PER_PHASE: 'BELGIUM_MAX_CURRENT_PER_PHASE', 'BELGIUM_MAX_CURRENT_PER_PHASE': 'BELGIUM_MAX_CURRENT_PER_PHASE',
obis.BELGIUM_MBUS1_DEVICE_TYPE: 'BELGIUM_MBUS1_DEVICE_TYPE', 'BELGIUM_MBUS1_DEVICE_TYPE': 'BELGIUM_MBUS1_DEVICE_TYPE',
obis.BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER', 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS1_EQUIPMENT_IDENTIFIER',
obis.BELGIUM_MBUS1_VALVE_POSITION: 'BELGIUM_MBUS1_VALVE_POSITION', 'BELGIUM_MBUS1_VALVE_POSITION': 'BELGIUM_MBUS1_VALVE_POSITION',
obis.BELGIUM_MBUS1_METER_READING1: 'BELGIUM_MBUS1_METER_READING1', 'BELGIUM_MBUS1_METER_READING1': 'BELGIUM_MBUS1_METER_READING1',
obis.BELGIUM_MBUS1_METER_READING2: 'BELGIUM_MBUS1_METER_READING2', 'BELGIUM_MBUS1_METER_READING2': 'BELGIUM_MBUS1_METER_READING2',
obis.BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER', 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS2_EQUIPMENT_IDENTIFIER',
obis.BELGIUM_MBUS2_VALVE_POSITION: 'BELGIUM_MBUS2_VALVE_POSITION', 'BELGIUM_MBUS2_VALVE_POSITION': 'BELGIUM_MBUS2_VALVE_POSITION',
obis.BELGIUM_MBUS2_METER_READING1: 'BELGIUM_MBUS2_METER_READING1', 'BELGIUM_MBUS2_METER_READING1': 'BELGIUM_MBUS2_METER_READING1',
obis.BELGIUM_MBUS2_METER_READING2: 'BELGIUM_MBUS2_METER_READING2', 'BELGIUM_MBUS2_METER_READING2': 'BELGIUM_MBUS2_METER_READING2',
obis.BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER', 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS3_EQUIPMENT_IDENTIFIER',
obis.BELGIUM_MBUS3_VALVE_POSITION: 'BELGIUM_MBUS3_VALVE_POSITION', 'BELGIUM_MBUS3_VALVE_POSITION': 'BELGIUM_MBUS3_VALVE_POSITION',
obis.BELGIUM_MBUS3_METER_READING1: 'BELGIUM_MBUS3_METER_READING1', 'BELGIUM_MBUS3_METER_READING1': 'BELGIUM_MBUS3_METER_READING1',
obis.BELGIUM_MBUS3_METER_READING2: 'BELGIUM_MBUS3_METER_READING2', 'BELGIUM_MBUS3_METER_READING2': 'BELGIUM_MBUS3_METER_READING2',
obis.BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER: 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER', 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER': 'BELGIUM_MBUS4_EQUIPMENT_IDENTIFIER',
obis.BELGIUM_MBUS4_VALVE_POSITION: 'BELGIUM_MBUS4_VALVE_POSITION', 'BELGIUM_MBUS4_VALVE_POSITION': 'BELGIUM_MBUS4_VALVE_POSITION',
obis.BELGIUM_MBUS4_METER_READING1: 'BELGIUM_MBUS4_METER_READING1', 'BELGIUM_MBUS4_METER_READING1': 'BELGIUM_MBUS4_METER_READING1',
obis.BELGIUM_MBUS4_METER_READING2: 'BELGIUM_MBUS4_METER_READING2', 'BELGIUM_MBUS4_METER_READING2': 'BELGIUM_MBUS4_METER_READING2',
obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER: 'LUXEMBOURG_EQUIPMENT_IDENTIFIER', 'LUXEMBOURG_EQUIPMENT_IDENTIFIER': 'LUXEMBOURG_EQUIPMENT_IDENTIFIER',
obis.Q3D_EQUIPMENT_IDENTIFIER: 'Q3D_EQUIPMENT_IDENTIFIER', 'Q3D_EQUIPMENT_IDENTIFIER': 'Q3D_EQUIPMENT_IDENTIFIER',
obis.Q3D_EQUIPMENT_STATE: 'Q3D_EQUIPMENT_STATE', 'Q3D_EQUIPMENT_STATE': 'Q3D_EQUIPMENT_STATE',
obis.Q3D_EQUIPMENT_SERIALNUMBER: 'Q3D_EQUIPMENT_SERIALNUMBER', 'Q3D_EQUIPMENT_SERIALNUMBER': 'Q3D_EQUIPMENT_SERIALNUMBER',
obis.BELGIUM_MBUS2_DEVICE_TYPE: 'BELGIUM_MBUS2_DEVICE_TYPE', 'BELGIUM_MBUS2_DEVICE_TYPE': 'BELGIUM_MBUS2_DEVICE_TYPE',
obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_3: 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_3', 'EON_HU_COSEM_LOGICAL_DEVICE_NAME': 'COSEM_LOGICAL_DEVICE_NAME',
obis.EON_HU_ELECTRICITY_DELIVERED_TARIFF_4: 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_4', 'EON_HU_EQUIPMENT_SERIAL_NUMBER': 'EQUIPMENT_SERIAL_NUMBER',
obis.EON_HU_ELECTRICITY_USED_TARIFF_3: 'EON_HU_ELECTRICITY_USED_TARIFF_3', 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_3': 'ELECTRICITY_DELIVERED_TARIFF_3',
obis.EON_HU_ELECTRICITY_USED_TARIFF_4: 'EON_HU_ELECTRICITY_USED_TARIFF_4', 'EON_HU_ELECTRICITY_DELIVERED_TARIFF_4': 'ELECTRICITY_DELIVERED_TARIFF_4',
obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1', 'EON_HU_ELECTRICITY_USED_TARIFF_3': 'ELECTRICITY_USED_TARIFF_3',
obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2', 'EON_HU_ELECTRICITY_USED_TARIFF_4': 'ELECTRICITY_USED_TARIFF_4',
obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3', 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1': 'ELECTRICITY_REACTIVE_TOTAL_Q1',
obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4: 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4', 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q2': 'ELECTRICITY_REACTIVE_TOTAL_Q2',
obis.EON_HU_ELECTRICITY_COMBINED: 'EON_HU_ELECTRICITY_COMBINED', 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q3': 'ELECTRICITY_REACTIVE_TOTAL_Q3',
obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL', 'EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q4': 'ELECTRICITY_REACTIVE_TOTAL_Q4',
obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L1: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L1', 'EON_HU_ELECTRICITY_COMBINED': 'ELECTRICITY_COMBINED',
obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L2: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L2', 'EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL': 'INSTANTANEOUS_POWER_FACTOR_TOTAL',
obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_L3: 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L3', 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L1': 'INSTANTANEOUS_POWER_FACTOR_L1',
obis.EON_HU_FREQUENCY: 'EON_HU_FREQUENCY', 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L2': 'INSTANTANEOUS_POWER_FACTOR_L2',
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1', 'EON_HU_INSTANTANEOUS_POWER_FACTOR_L3': 'INSTANTANEOUS_POWER_FACTOR_L3',
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2', 'EON_HU_FREQUENCY': 'FREQUENCY',
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3', 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q1': 'INSTANTANEOUS_REACTIVE_POWER_Q1',
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4: 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4', 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q2': 'INSTANTANEOUS_REACTIVE_POWER_Q2',
obis.EON_HU_MAX_POWER_ON_L1: 'EON_HU_MAX_POWER_ON_L1', 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3': 'INSTANTANEOUS_REACTIVE_POWER_Q3',
obis.EON_HU_MAX_POWER_ON_L2: 'EON_HU_MAX_POWER_ON_L2', 'EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4': 'INSTANTANEOUS_REACTIVE_POWER_Q4',
obis.EON_HU_MAX_POWER_ON_L3: 'EON_HU_MAX_POWER_ON_L3', 'EON_HU_MAX_POWER_ON_L1': 'MAX_POWER_ON_L1',
obis.EON_HU_LAST_MONTH_DATA: 'EON_HU_LAST_MONTH_DATA' '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()]) REVERSE_EN = dict([(v, k) for k, v in EN.items()])

View File

@ -29,8 +29,8 @@ class TelegramParser(object):
self.telegram_specification = telegram_specification self.telegram_specification = telegram_specification
# Regexes are compiled once to improve performance # Regexes are compiled once to improve performance
self.telegram_specification_regexes = { self.telegram_specification_regexes = {
signature: re.compile(signature, re.DOTALL | re.MULTILINE) object["obis_reference"]: re.compile(object["obis_reference"], re.DOTALL | re.MULTILINE)
for signature in self.telegram_specification['objects'].keys() for object in self.telegram_specification['objects']
} }
def parse(self, telegram_data, encryption_key="", authentication_key="", throw_ex=False): # noqa: C901 def parse(self, telegram_data, encryption_key="", authentication_key="", throw_ex=False): # noqa: C901
@ -84,17 +84,17 @@ class TelegramParser(object):
telegram = Telegram() telegram = Telegram()
for signature, parser in self.telegram_specification['objects'].items(): for object in self.telegram_specification['objects']:
pattern = self.telegram_specification_regexes[signature] pattern = self.telegram_specification_regexes[object["obis_reference"]]
matches = pattern.findall(telegram_data) matches = pattern.findall(telegram_data)
# Some signatures are optional and may not be present, # Some signatures are optional and may not be present,
# so only parse lines that match # so only parse lines that match
for match in matches: for match in matches:
try: try:
dsmr_object = parser.parse(match) dsmr_object = object["value_parser"].parse(match)
except ParseError: 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) exc_info=True)
if throw_ex: if throw_ex:
raise raise
@ -102,7 +102,7 @@ class TelegramParser(object):
logger.error("Unexpected {}: {}".format(type(err), err)) logger.error("Unexpected {}: {}".format(type(err), err))
raise raise
else: else:
telegram.add(obis_reference=signature, dsmr_object=dsmr_object) telegram.add(obis_reference=object["value_name"], dsmr_object=dsmr_object)
return telegram return telegram

View File

@ -284,29 +284,98 @@ Q3D = {
SAGEMCOM_T210_D_R = { SAGEMCOM_T210_D_R = {
"general_global_cipher": True, "general_global_cipher": True,
"checksum_support": True, "checksum_support": True,
'objects': { 'objects': [
obis.P1_MESSAGE_HEADER: CosemParser(ValueParser(str)), {
obis.P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)), 'obis_reference': obis.P1_MESSAGE_HEADER,
obis.ELECTRICITY_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(str)),
obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_name': 'P1_MESSAGE_HEADER'
obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)), },
obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)), {
'obis_reference': obis.P1_MESSAGE_TIMESTAMP,
obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(timestamp)),
obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_name': 'P1_MESSAGE_TIMESTAMP'
obis.ELECTRICITY_REACTIVE_EXPORTED_TARIFF_2: CosemParser(ValueParser(Decimal)), },
obis.CURRENT_REACTIVE_IMPORTED: CosemParser(ValueParser(Decimal)), {
'obis_reference': obis.ELECTRICITY_IMPORTED_TOTAL,
obis.ELECTRICITY_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(Decimal)),
obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_name': 'ELECTRICITY_IMPORTED_TOTAL'
obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)), },
obis.CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)), {
'obis_reference': obis.ELECTRICITY_USED_TARIFF_1,
obis.ELECTRICITY_REACTIVE_IMPORTED_TOTAL: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(Decimal)),
obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_name': 'ELECTRICITY_USED_TARIFF_1'
obis.ELECTRICITY_REACTIVE_IMPORTED_TARIFF_2: CosemParser(ValueParser(Decimal)), },
obis.CURRENT_REACTIVE_EXPORTED: CosemParser(ValueParser(Decimal)), {
} '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 AUSTRIA_ENERGIENETZE_STEIERMARK = SAGEMCOM_T210_D_R
@ -345,54 +414,262 @@ EON_HUNGARY = {
# Based on V5 # 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 # 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, 'checksum_support': True,
'objects': { 'objects': [
obis.P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)), {
obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)), # "COSEM logical equipment name" 'obis_reference': obis.P1_MESSAGE_TIMESTAMP,
obis.EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)), # This obis is already defined, so it is not possible to "rename" it to "EQUIPMENT_SERIAL_NUMBER" 'value_parser': CosemParser(ValueParser(timestamp)),
obis.ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)), 'value_name': 'P1_MESSAGE_TIMESTAMP'
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_reference': obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER,
obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(str)),
obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)), 'value_name': 'EON_HU_COSEM_LOGICAL_DEVICE_NAME'
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_reference': obis.EQUIPMENT_IDENTIFIER_GAS,
obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(str)),
obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)), 'value_name': 'EON_HU_EQUIPMENT_SERIAL_NUMBER'
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_reference': obis.ELECTRICITY_ACTIVE_TARIFF,
obis.ELECTRICITY_REACTIVE_EXPORTED_TOTAL: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(str)),
obis.EON_HU_ELECTRICITY_REACTIVE_TOTAL_Q1: CosemParser(ValueParser(Decimal)), 'value_name': 'ELECTRICITY_ACTIVE_TARIFF'
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_reference': obis.ACTUAL_SWITCH_POSITION,
obis.EON_HU_ELECTRICITY_COMBINED: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(str)),
obis.INSTANTANEOUS_VOLTAGE_L1: CosemParser(ValueParser(Decimal)), 'value_name': 'ACTUAL_SWITCH_POSITION'
obis.INSTANTANEOUS_VOLTAGE_L2: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters # This seems to be wrong in documentation, it's not 0-0:96.50.68, but 0-0:96.3.10
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_reference': obis.BELGIUM_MAX_POWER_PER_PHASE,
obis.INSTANTANEOUS_CURRENT_L3: CosemParser(ValueParser(Decimal)), # Only with 3 phase meters 'value_parser': CosemParser(ValueParser(Decimal)),
obis.EON_HU_INSTANTANEOUS_POWER_FACTOR_TOTAL: CosemParser(ValueParser(Decimal)), 'value_name': 'ACTUAL_TRESHOLD_ELECTRICITY'
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_reference': obis.ELECTRICITY_IMPORTED_TOTAL,
obis.EON_HU_FREQUENCY: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(Decimal)),
obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)), 'value_name': 'ELECTRICITY_IMPORTED_TOTAL'
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_reference': obis.ELECTRICITY_USED_TARIFF_1,
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q3: CosemParser(ValueParser(Decimal)), 'value_parser': CosemParser(ValueParser(Decimal)),
obis.EON_HU_INSTANTANEOUS_REACTIVE_POWER_Q4: CosemParser(ValueParser(Decimal)), 'value_name': 'ELECTRICITY_USED_TARIFF_1'
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 'obis_reference': obis.ELECTRICITY_USED_TARIFF_2,
# This is a list of last month data (on last day of last month @ 23:59:59), 'value_parser': CosemParser(ValueParser(Decimal)),
# But it is not clear that what are the elements of the list. 'value_name': 'ELECTRICITY_USED_TARIFF_2'
# This is not well documented enough, so it is ignored for now. },
# obis.EON_HU_LAST_MONTH_DATA: {
obis.TEXT_MESSAGE: CosemParser(ValueParser(str)) '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'
}
]
} }