Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants used in modbus integration."""
2 
3 from enum import Enum
4 
5 from homeassistant.const import (
6  CONF_ADDRESS,
7  CONF_BINARY_SENSORS,
8  CONF_COVERS,
9  CONF_LIGHTS,
10  CONF_SENSORS,
11  CONF_SWITCHES,
12  Platform,
13 )
14 
15 # configuration names
16 CONF_BAUDRATE = "baudrate"
17 CONF_BYTESIZE = "bytesize"
18 CONF_CLIMATES = "climates"
19 CONF_DATA_TYPE = "data_type"
20 CONF_DEVICE_ADDRESS = "device_address"
21 CONF_FANS = "fans"
22 CONF_INPUT_TYPE = "input_type"
23 CONF_MAX_TEMP = "max_temp"
24 CONF_MAX_VALUE = "max_value"
25 CONF_MIN_TEMP = "min_temp"
26 CONF_MIN_VALUE = "min_value"
27 CONF_MSG_WAIT = "message_wait_milliseconds"
28 CONF_NAN_VALUE = "nan_value"
29 CONF_PARITY = "parity"
30 CONF_PRECISION = "precision"
31 CONF_SCALE = "scale"
32 CONF_SLAVE_COUNT = "slave_count"
33 CONF_STATE_CLOSED = "state_closed"
34 CONF_STATE_CLOSING = "state_closing"
35 CONF_STATE_OFF = "state_off"
36 CONF_STATE_ON = "state_on"
37 CONF_STATE_OPEN = "state_open"
38 CONF_STATE_OPENING = "state_opening"
39 CONF_STATUS_REGISTER = "status_register"
40 CONF_STATUS_REGISTER_TYPE = "status_register_type"
41 CONF_STEP = "temp_step"
42 CONF_STOPBITS = "stopbits"
43 CONF_SWAP = "swap"
44 CONF_SWAP_BYTE = "byte"
45 CONF_SWAP_WORD = "word"
46 CONF_SWAP_WORD_BYTE = "word_byte"
47 CONF_TARGET_TEMP = "target_temp_register"
48 CONF_TARGET_TEMP_WRITE_REGISTERS = "target_temp_write_registers"
49 CONF_FAN_MODE_REGISTER = "fan_mode_register"
50 CONF_FAN_MODE_ON = "state_fan_on"
51 CONF_FAN_MODE_OFF = "state_fan_off"
52 CONF_FAN_MODE_LOW = "state_fan_low"
53 CONF_FAN_MODE_MEDIUM = "state_fan_medium"
54 CONF_FAN_MODE_HIGH = "state_fan_high"
55 CONF_FAN_MODE_AUTO = "state_fan_auto"
56 CONF_FAN_MODE_TOP = "state_fan_top"
57 CONF_FAN_MODE_MIDDLE = "state_fan_middle"
58 CONF_FAN_MODE_FOCUS = "state_fan_focus"
59 CONF_FAN_MODE_DIFFUSE = "state_fan_diffuse"
60 CONF_FAN_MODE_VALUES = "values"
61 CONF_HVAC_MODE_REGISTER = "hvac_mode_register"
62 CONF_HVAC_ONOFF_REGISTER = "hvac_onoff_register"
63 CONF_HVAC_MODE_OFF = "state_off"
64 CONF_HVAC_MODE_HEAT = "state_heat"
65 CONF_HVAC_MODE_COOL = "state_cool"
66 CONF_HVAC_MODE_HEAT_COOL = "state_heat_cool"
67 CONF_HVAC_MODE_AUTO = "state_auto"
68 CONF_HVAC_MODE_DRY = "state_dry"
69 CONF_HVAC_MODE_FAN_ONLY = "state_fan_only"
70 CONF_HVAC_MODE_VALUES = "values"
71 CONF_SWING_MODE_REGISTER = "swing_mode_register"
72 CONF_SWING_MODE_SWING_BOTH = "swing_mode_state_both"
73 CONF_SWING_MODE_SWING_HORIZ = "swing_mode_state_horizontal"
74 CONF_SWING_MODE_SWING_OFF = "swing_mode_state_off"
75 CONF_SWING_MODE_SWING_ON = "swing_mode_state_on"
76 CONF_SWING_MODE_SWING_VERT = "swing_mode_state_vertical"
77 CONF_SWING_MODE_VALUES = "values"
78 CONF_WRITE_REGISTERS = "write_registers"
79 CONF_VERIFY = "verify"
80 CONF_VIRTUAL_COUNT = "virtual_count"
81 CONF_WRITE_TYPE = "write_type"
82 CONF_ZERO_SUPPRESS = "zero_suppress"
83 
84 RTUOVERTCP = "rtuovertcp"
85 SERIAL = "serial"
86 TCP = "tcp"
87 UDP = "udp"
88 
89 
90 # service call attributes
91 ATTR_ADDRESS = CONF_ADDRESS
92 ATTR_HUB = "hub"
93 ATTR_UNIT = "unit"
94 ATTR_SLAVE = "slave"
95 ATTR_VALUE = "value"
96 
97 
98 class DataType(str, Enum):
99  """Data types used by sensor etc."""
100 
101  CUSTOM = "custom"
102  STRING = "string"
103  INT16 = "int16"
104  INT32 = "int32"
105  INT64 = "int64"
106  UINT16 = "uint16"
107  UINT32 = "uint32"
108  UINT64 = "uint64"
109  FLOAT16 = "float16"
110  FLOAT32 = "float32"
111  FLOAT64 = "float64"
112 
113 
114 # call types
115 CALL_TYPE_COIL = "coil"
116 CALL_TYPE_DISCRETE = "discrete_input"
117 CALL_TYPE_REGISTER_HOLDING = "holding"
118 CALL_TYPE_REGISTER_INPUT = "input"
119 CALL_TYPE_WRITE_COIL = "write_coil"
120 CALL_TYPE_WRITE_COILS = "write_coils"
121 CALL_TYPE_WRITE_REGISTER = "write_register"
122 CALL_TYPE_WRITE_REGISTERS = "write_registers"
123 CALL_TYPE_X_COILS = "coils"
124 CALL_TYPE_X_REGISTER_HOLDINGS = "holdings"
125 
126 # service calls
127 SERVICE_WRITE_COIL = "write_coil"
128 SERVICE_WRITE_REGISTER = "write_register"
129 SERVICE_STOP = "stop"
130 SERVICE_RESTART = "restart"
131 
132 # dispatcher signals
133 SIGNAL_STOP_ENTITY = "modbus.stop"
134 SIGNAL_START_ENTITY = "modbus.start"
135 
136 # integration names
137 DEFAULT_HUB = "modbus_hub"
138 DEFAULT_SCAN_INTERVAL = 15 # seconds
139 DEFAULT_SLAVE = 1
140 DEFAULT_STRUCTURE_PREFIX = ">f"
141 DEFAULT_TEMP_UNIT = "C"
142 MODBUS_DOMAIN = "modbus"
143 
144 ACTIVE_SCAN_INTERVAL = 2 # limit to force an extra update
145 
146 PLATFORMS = (
147  (Platform.BINARY_SENSOR, CONF_BINARY_SENSORS),
148  (Platform.CLIMATE, CONF_CLIMATES),
149  (Platform.COVER, CONF_COVERS),
150  (Platform.LIGHT, CONF_LIGHTS),
151  (Platform.FAN, CONF_FANS),
152  (Platform.SENSOR, CONF_SENSORS),
153  (Platform.SWITCH, CONF_SWITCHES),
154 )