1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
"""Constants for the Energy Production CC."""
from __future__ import annotations
from enum import IntEnum
class EnergyProductionParameter(IntEnum):
"""Energy Production CC parameter."""
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/lib/_Types.ts#L508
POWER = 0
TOTAL_PRODUCTION = 1
TODAYS_PRODUCTION = 2
TOTAL_TIME = 3
CC_SPECIFIC_PARAMETER = "parameter"
CC_SPECIFIC_SCALE = "scale"
# https://github.com/zwave-js/node-zwave-js/blob/master/packages/cc/src/lib/_Types.ts#L520
class EnergyProductionScaleType(IntEnum):
"""Common base class for Energy Production scale enums."""
class PowerScale(EnergyProductionScaleType):
"""Enum with all known Energy Production power scale values."""
WATTS = 0
class TotalProductionScale(EnergyProductionScaleType):
"""Enum with all known Energy Production total production scale values."""
WATT_HOURS = 0
TodaysProductionScale = TotalProductionScale
class TotalTimeScale(EnergyProductionScaleType):
"""Enum with all known Energy Production total time scale values."""
SECONDS = 0
HOURS = 1
ENERGY_PRODUCTION_PARAMETER_TO_SCALE_ENUM_MAP: dict[
EnergyProductionParameter, type[EnergyProductionScaleType]
] = {
EnergyProductionParameter.POWER: PowerScale,
EnergyProductionParameter.TOTAL_PRODUCTION: TotalProductionScale,
EnergyProductionParameter.TODAYS_PRODUCTION: TodaysProductionScale,
EnergyProductionParameter.TOTAL_TIME: TotalTimeScale,
}
|