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
"""
'''
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()])

View File

@ -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

View File

@ -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'
}
]
}