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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
"""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"
class DPTDeltaVolumeLiquidLitre(DPT4ByteSigned):
"""DPT 13.1200 DPT_DeltaVolumeLiquid_Litre (water/gas total consumption)."""
dpt_main_number = 13
dpt_sub_number = 1200
value_type = "delta_volume_liquid_litre"
unit = "L"
class DPTDeltaVolumeM3(DPT4ByteSigned):
"""DPT 13.1201 DPT_DeltaVolume_m3 (water/gas total consumption volume)."""
dpt_main_number = 13
dpt_sub_number = 1201
value_type = "delta_volume_m3"
unit = "m³"
|