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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
"""Implementation of Basic KNX 4-Byte signed (2's complement) values."""
from __future__ import annotations
from .dpt import DPTNumeric, DPTStructIntMixin
class DPT4ByteSigned(DPTStructIntMixin, DPTNumeric):
"""
Abstraction for KNX 4 Byte "32-bit signed".
DPT 13.***
"""
dpt_main_number = 13
dpt_sub_number: int | None = None
value_type = "4byte_signed"
payload_length = 4
value_min = -2147483648
value_max = 2147483647
resolution = 1
_struct_format = ">i"
class DPTValue4Count(DPT4ByteSigned):
"""DPT 13.001 DPT_Value_4_Count (pulse)."""
dpt_main_number = 13
dpt_sub_number = 1
value_type = "pulse_4byte"
unit = "counter pulses"
class DPTFlowRateM3H(DPT4ByteSigned):
"""DPT 13.002 DPT_FlowRate_m3/h (m³/h)."""
dpt_main_number = 13
dpt_sub_number = 2
value_type = "flow_rate_m3h"
unit = "m³/h"
class DPTActiveEnergy(DPT4ByteSigned):
"""DPT 13.010 DPT_ActiveEnergy (Wh)."""
dpt_main_number = 13
dpt_sub_number = 10
value_type = "active_energy"
unit = "Wh"
ha_device_class = "energy"
class DPTApparantEnergy(DPT4ByteSigned):
"""DPT 13.011 DPT_ActiveEnergy (VAh)."""
dpt_main_number = 13
dpt_sub_number = 11
value_type = "apparant_energy"
unit = "VAh"
class DPTReactiveEnergy(DPT4ByteSigned):
"""DPT 13.012 DPT_ActiveEnergy (VARh)."""
dpt_main_number = 13
dpt_sub_number = 12
value_type = "reactive_energy"
unit = "VARh"
class DPTActiveEnergykWh(DPT4ByteSigned):
"""DPT 13.013 DPT_ActiveEnergy_kWh (kWh)."""
dpt_main_number = 13
dpt_sub_number = 13
value_type = "active_energy_kwh"
unit = "kWh"
ha_device_class = "energy"
class DPTApparantEnergykVAh(DPT4ByteSigned):
"""DPT 13.014 DPT_ActiveEnergy_kVAh (kVAh)."""
dpt_main_number = 13
dpt_sub_number = 14
value_type = "apparant_energy_kvah"
unit = "kVAh"
class DPTReactiveEnergykVARh(DPT4ByteSigned):
"""DPT 13.015 DPT_ActiveEnergy (kVARh)."""
dpt_main_number = 13
dpt_sub_number = 15
value_type = "reactive_energy_kvarh"
unit = "kVARh"
class DPTActiveEnergyMWh(DPT4ByteSigned):
"""DPT 13.016 DPT_ActiveEnergy_MWh (MWh)."""
dpt_main_number = 13
dpt_sub_number = 16
value_type = "active_energy_mwh"
unit = "MWh"
class DPTLongDeltaTimeSec(DPT4ByteSigned):
"""DPT 13.100 DPT_LongDeltaTimeSec (s)."""
dpt_main_number = 13
dpt_sub_number = 100
value_type = "long_delta_timesec"
unit = "s"
|