1 """Constants for the opentherm_gw integration."""
3 from dataclasses
import dataclass
4 from enum
import StrEnum
6 from pyotgw
import vars
as gw_vars
8 ATTR_GW_ID =
"gateway_id"
10 ATTR_DHW_OVRD =
"dhw_override"
11 ATTR_CH_OVRD =
"ch_override"
12 ATTR_TRANSP_CMD =
"transp_cmd"
13 ATTR_TRANSP_ARG =
"transp_arg"
15 CONF_CLIMATE =
"climate"
16 CONF_FLOOR_TEMP =
"floor_temperature"
17 CONF_PRECISION =
"precision"
18 CONF_READ_PRECISION =
"read_precision"
19 CONF_SET_PRECISION =
"set_precision"
20 CONF_TEMPORARY_OVRD_MODE =
"temporary_override_mode"
22 CONNECTION_TIMEOUT = 10
24 DATA_GATEWAYS =
"gateways"
25 DATA_OPENTHERM_GW =
"opentherm_gw"
27 DOMAIN =
"opentherm_gw"
29 SERVICE_RESET_GATEWAY =
"reset_gateway"
30 SERVICE_SET_CH_OVRD =
"set_central_heating_ovrd"
31 SERVICE_SET_CLOCK =
"set_clock"
32 SERVICE_SET_CONTROL_SETPOINT =
"set_control_setpoint"
33 SERVICE_SET_HOT_WATER_SETPOINT =
"set_hot_water_setpoint"
34 SERVICE_SET_HOT_WATER_OVRD =
"set_hot_water_ovrd"
35 SERVICE_SET_GPIO_MODE =
"set_gpio_mode"
36 SERVICE_SET_LED_MODE =
"set_led_mode"
37 SERVICE_SET_MAX_MOD =
"set_max_modulation"
38 SERVICE_SET_OAT =
"set_outside_temperature"
39 SERVICE_SET_SB_TEMP =
"set_setback_temperature"
40 SERVICE_SEND_TRANSP_CMD =
"send_transparent_command"
44 """List valid OpenTherm data sources."""
46 BOILER = gw_vars.BOILER
47 GATEWAY = gw_vars.OTGW
48 THERMOSTAT = gw_vars.THERMOSTAT
52 """List valid OpenTherm device identifiers."""
56 THERMOSTAT =
"thermostat"
59 @dataclass(frozen=True, kw_only=True)
61 """Describe OpenTherm device properties."""
63 data_source: OpenThermDataSource
64 device_identifier: OpenThermDeviceIdentifier
67 BOILER_DEVICE_DESCRIPTION = OpenThermDeviceDescription(
68 data_source=OpenThermDataSource.BOILER,
69 device_identifier=OpenThermDeviceIdentifier.BOILER,
71 GATEWAY_DEVICE_DESCRIPTION = OpenThermDeviceDescription(
72 data_source=OpenThermDataSource.GATEWAY,
73 device_identifier=OpenThermDeviceIdentifier.GATEWAY,
75 THERMOSTAT_DEVICE_DESCRIPTION = OpenThermDeviceDescription(
76 data_source=OpenThermDataSource.THERMOSTAT,
77 device_identifier=OpenThermDeviceIdentifier.THERMOSTAT,