|
|
|
@@ -1,6 +1,6 @@
|
|
|
|
|
from decimal import Decimal
|
|
|
|
|
|
|
|
|
|
from .obis_references import *
|
|
|
|
|
from . import obis_references as obis
|
|
|
|
|
from .parsers import CosemParser, ValueParser, MBusParser
|
|
|
|
|
from .value_types import timestamp
|
|
|
|
|
|
|
|
|
@@ -14,53 +14,60 @@ how the telegram lines are parsed.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
V2_2 = {
|
|
|
|
|
EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)),
|
|
|
|
|
ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)),
|
|
|
|
|
CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ACTUAL_TRESHOLD_ELECTRICITY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ACTUAL_SWITCH_POSITION: CosemParser(ValueParser(str)),
|
|
|
|
|
TEXT_MESSAGE_CODE: CosemParser(ValueParser(int)),
|
|
|
|
|
TEXT_MESSAGE: CosemParser(ValueParser(str)),
|
|
|
|
|
EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
DEVICE_TYPE: CosemParser(ValueParser(str)),
|
|
|
|
|
VALVE_POSITION_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ACTUAL_TRESHOLD_ELECTRICITY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ACTUAL_SWITCH_POSITION: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.TEXT_MESSAGE_CODE: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.TEXT_MESSAGE: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.DEVICE_TYPE: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.VALVE_POSITION_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.GAS_METER_READING: MBusParser(
|
|
|
|
|
ValueParser(timestamp),
|
|
|
|
|
ValueParser(int),
|
|
|
|
|
ValueParser(int),
|
|
|
|
|
ValueParser(int),
|
|
|
|
|
ValueParser(str),
|
|
|
|
|
ValueParser(Decimal),
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
V4 = {
|
|
|
|
|
P1_MESSAGE_HEADER: CosemParser(ValueParser(str)),
|
|
|
|
|
P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)),
|
|
|
|
|
ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)),
|
|
|
|
|
EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)),
|
|
|
|
|
CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
LONG_POWER_FAILURE_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.P1_MESSAGE_HEADER: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.P1_MESSAGE_TIMESTAMP: CosemParser(ValueParser(timestamp)),
|
|
|
|
|
obis.ELECTRICITY_USED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_USED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_DELIVERED_TARIFF_1: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_DELIVERED_TARIFF_2: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.ELECTRICITY_ACTIVE_TARIFF: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.EQUIPMENT_IDENTIFIER: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.CURRENT_ELECTRICITY_USAGE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.CURRENT_ELECTRICITY_DELIVERY: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.LONG_POWER_FAILURE_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
# POWER_EVENT_FAILURE_LOG: ProfileGenericParser(), TODO
|
|
|
|
|
VOLTAGE_SAG_L1_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
VOLTAGE_SAG_L2_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
VOLTAGE_SAG_L3_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
VOLTAGE_SWELL_L1_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
VOLTAGE_SWELL_L2_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
VOLTAGE_SWELL_L3_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
TEXT_MESSAGE_CODE: CosemParser(ValueParser(int)),
|
|
|
|
|
TEXT_MESSAGE: CosemParser(ValueParser(str)),
|
|
|
|
|
DEVICE_TYPE: CosemParser(ValueParser(int)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
HOURLY_GAS_METER_READING: MBusParser(ValueParser(timestamp),
|
|
|
|
|
ValueParser(Decimal))
|
|
|
|
|
obis.VOLTAGE_SAG_L1_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.VOLTAGE_SAG_L2_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.VOLTAGE_SAG_L3_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.VOLTAGE_SWELL_L1_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.VOLTAGE_SWELL_L2_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.VOLTAGE_SWELL_L3_COUNT: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.TEXT_MESSAGE_CODE: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.TEXT_MESSAGE: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.DEVICE_TYPE: CosemParser(ValueParser(int)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L1_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L2_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L3_POSITIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L1_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L2_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.INSTANTANEOUS_ACTIVE_POWER_L3_NEGATIVE: CosemParser(ValueParser(Decimal)),
|
|
|
|
|
obis.EQUIPMENT_IDENTIFIER_GAS: CosemParser(ValueParser(str)),
|
|
|
|
|
obis.HOURLY_GAS_METER_READING: MBusParser(ValueParser(timestamp),
|
|
|
|
|
ValueParser(Decimal))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|