1 """Support for OpenTherm Gateway sensors."""
3 from dataclasses
import dataclass
5 import pyotgw.vars
as gw_vars
10 SensorEntityDescription,
28 BOILER_DEVICE_DESCRIPTION,
31 GATEWAY_DEVICE_DESCRIPTION,
32 THERMOSTAT_DEVICE_DESCRIPTION,
35 from .entity
import OpenThermEntityDescription, OpenThermStatusEntity
37 SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION = 1
40 @dataclass(frozen=True, kw_only=True)
42 SensorEntityDescription, OpenThermEntityDescription
44 """Describes an opentherm_gw sensor entity."""
47 SENSOR_DESCRIPTIONS: tuple[OpenThermSensorEntityDescription, ...] = (
49 key=gw_vars.DATA_CONTROL_SETPOINT,
50 translation_key=
"control_setpoint_n",
51 translation_placeholders={
"circuit_number":
"1"},
52 device_class=SensorDeviceClass.TEMPERATURE,
53 state_class=SensorStateClass.MEASUREMENT,
54 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
55 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
56 device_description=BOILER_DEVICE_DESCRIPTION,
59 key=gw_vars.DATA_CONTROL_SETPOINT_2,
60 translation_key=
"control_setpoint_n",
61 translation_placeholders={
"circuit_number":
"2"},
62 device_class=SensorDeviceClass.TEMPERATURE,
63 state_class=SensorStateClass.MEASUREMENT,
64 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
65 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
66 device_description=BOILER_DEVICE_DESCRIPTION,
69 key=gw_vars.DATA_SLAVE_MEMBERID,
70 translation_key=
"manufacturer_id",
71 device_description=BOILER_DEVICE_DESCRIPTION,
74 key=gw_vars.DATA_SLAVE_OEM_FAULT,
75 translation_key=
"oem_fault_code",
76 device_description=BOILER_DEVICE_DESCRIPTION,
79 key=gw_vars.DATA_COOLING_CONTROL,
80 translation_key=
"cooling_control",
81 state_class=SensorStateClass.MEASUREMENT,
82 native_unit_of_measurement=PERCENTAGE,
83 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
84 device_description=BOILER_DEVICE_DESCRIPTION,
87 key=gw_vars.DATA_SLAVE_MAX_RELATIVE_MOD,
88 translation_key=
"max_relative_mod_level",
89 state_class=SensorStateClass.MEASUREMENT,
90 native_unit_of_measurement=PERCENTAGE,
91 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
92 device_description=BOILER_DEVICE_DESCRIPTION,
95 key=gw_vars.DATA_SLAVE_MAX_CAPACITY,
96 translation_key=
"max_capacity",
97 state_class=SensorStateClass.MEASUREMENT,
98 device_class=SensorDeviceClass.POWER,
99 native_unit_of_measurement=UnitOfPower.KILO_WATT,
100 device_description=BOILER_DEVICE_DESCRIPTION,
103 key=gw_vars.DATA_SLAVE_MIN_MOD_LEVEL,
104 translation_key=
"min_mod_level",
105 state_class=SensorStateClass.MEASUREMENT,
106 native_unit_of_measurement=PERCENTAGE,
107 device_description=BOILER_DEVICE_DESCRIPTION,
110 key=gw_vars.DATA_REL_MOD_LEVEL,
111 translation_key=
"relative_mod_level",
112 state_class=SensorStateClass.MEASUREMENT,
113 native_unit_of_measurement=PERCENTAGE,
114 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
115 device_description=BOILER_DEVICE_DESCRIPTION,
118 key=gw_vars.DATA_CH_WATER_PRESS,
119 translation_key=
"central_heating_pressure",
120 device_class=SensorDeviceClass.PRESSURE,
121 state_class=SensorStateClass.MEASUREMENT,
122 native_unit_of_measurement=UnitOfPressure.BAR,
123 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
124 device_description=BOILER_DEVICE_DESCRIPTION,
127 key=gw_vars.DATA_DHW_FLOW_RATE,
128 translation_key=
"hot_water_flow_rate",
129 device_class=SensorDeviceClass.VOLUME_FLOW_RATE,
130 state_class=SensorStateClass.MEASUREMENT,
131 native_unit_of_measurement=UnitOfVolumeFlowRate.LITERS_PER_MINUTE,
132 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
133 device_description=BOILER_DEVICE_DESCRIPTION,
136 key=gw_vars.DATA_CH_WATER_TEMP,
137 translation_key=
"central_heating_temperature_n",
138 translation_placeholders={
"circuit_number":
"1"},
139 device_class=SensorDeviceClass.TEMPERATURE,
140 state_class=SensorStateClass.MEASUREMENT,
141 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
142 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
143 device_description=BOILER_DEVICE_DESCRIPTION,
146 key=gw_vars.DATA_CH_WATER_TEMP_2,
147 translation_key=
"central_heating_temperature_n",
148 translation_placeholders={
"circuit_number":
"2"},
149 device_class=SensorDeviceClass.TEMPERATURE,
150 state_class=SensorStateClass.MEASUREMENT,
151 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
152 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
153 device_description=BOILER_DEVICE_DESCRIPTION,
156 key=gw_vars.DATA_DHW_TEMP,
157 translation_key=
"hot_water_temperature_n",
158 translation_placeholders={
"circuit_number":
"1"},
159 device_class=SensorDeviceClass.TEMPERATURE,
160 state_class=SensorStateClass.MEASUREMENT,
161 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
162 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
163 device_description=BOILER_DEVICE_DESCRIPTION,
166 key=gw_vars.DATA_DHW_TEMP_2,
167 translation_key=
"hot_water_temperature_n",
168 translation_placeholders={
"circuit_number":
"2"},
169 device_class=SensorDeviceClass.TEMPERATURE,
170 state_class=SensorStateClass.MEASUREMENT,
171 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
172 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
173 device_description=BOILER_DEVICE_DESCRIPTION,
176 key=gw_vars.DATA_RETURN_WATER_TEMP,
177 translation_key=
"return_water_temperature",
178 device_class=SensorDeviceClass.TEMPERATURE,
179 state_class=SensorStateClass.MEASUREMENT,
180 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
181 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
182 device_description=BOILER_DEVICE_DESCRIPTION,
185 key=gw_vars.DATA_SOLAR_STORAGE_TEMP,
186 translation_key=
"solar_storage_temperature",
187 device_class=SensorDeviceClass.TEMPERATURE,
188 state_class=SensorStateClass.MEASUREMENT,
189 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
190 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
191 device_description=BOILER_DEVICE_DESCRIPTION,
194 key=gw_vars.DATA_SOLAR_COLL_TEMP,
195 translation_key=
"solar_collector_temperature",
196 device_class=SensorDeviceClass.TEMPERATURE,
197 state_class=SensorStateClass.MEASUREMENT,
198 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
199 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
200 device_description=BOILER_DEVICE_DESCRIPTION,
203 key=gw_vars.DATA_EXHAUST_TEMP,
204 translation_key=
"exhaust_temperature",
205 device_class=SensorDeviceClass.TEMPERATURE,
206 state_class=SensorStateClass.MEASUREMENT,
207 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
208 device_description=BOILER_DEVICE_DESCRIPTION,
211 key=gw_vars.DATA_SLAVE_DHW_MAX_SETP,
212 translation_key=
"max_hot_water_setpoint_upper",
213 device_class=SensorDeviceClass.TEMPERATURE,
214 state_class=SensorStateClass.MEASUREMENT,
215 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
216 device_description=BOILER_DEVICE_DESCRIPTION,
219 key=gw_vars.DATA_SLAVE_DHW_MIN_SETP,
220 translation_key=
"max_hot_water_setpoint_lower",
221 device_class=SensorDeviceClass.TEMPERATURE,
222 state_class=SensorStateClass.MEASUREMENT,
223 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
224 device_description=BOILER_DEVICE_DESCRIPTION,
227 key=gw_vars.DATA_SLAVE_CH_MAX_SETP,
228 translation_key=
"max_central_heating_setpoint_upper",
229 device_class=SensorDeviceClass.TEMPERATURE,
230 state_class=SensorStateClass.MEASUREMENT,
231 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
232 device_description=BOILER_DEVICE_DESCRIPTION,
235 key=gw_vars.DATA_SLAVE_CH_MIN_SETP,
236 translation_key=
"max_central_heating_setpoint_lower",
237 device_class=SensorDeviceClass.TEMPERATURE,
238 state_class=SensorStateClass.MEASUREMENT,
239 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
240 device_description=BOILER_DEVICE_DESCRIPTION,
243 key=gw_vars.DATA_DHW_SETPOINT,
244 translation_key=
"hot_water_setpoint",
245 device_class=SensorDeviceClass.TEMPERATURE,
246 state_class=SensorStateClass.MEASUREMENT,
247 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
248 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
249 device_description=BOILER_DEVICE_DESCRIPTION,
252 key=gw_vars.DATA_MAX_CH_SETPOINT,
253 translation_key=
"max_central_heating_setpoint",
254 device_class=SensorDeviceClass.TEMPERATURE,
255 state_class=SensorStateClass.MEASUREMENT,
256 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
257 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
258 device_description=BOILER_DEVICE_DESCRIPTION,
261 key=gw_vars.DATA_OEM_DIAG,
262 translation_key=
"oem_diagnostic_code",
263 device_description=BOILER_DEVICE_DESCRIPTION,
266 key=gw_vars.DATA_TOTAL_BURNER_STARTS,
267 translation_key=
"total_burner_starts",
268 state_class=SensorStateClass.TOTAL,
269 native_unit_of_measurement=
"starts",
270 device_description=BOILER_DEVICE_DESCRIPTION,
273 key=gw_vars.DATA_CH_PUMP_STARTS,
274 translation_key=
"central_heating_pump_starts",
275 state_class=SensorStateClass.TOTAL,
276 native_unit_of_measurement=
"starts",
277 device_description=BOILER_DEVICE_DESCRIPTION,
280 key=gw_vars.DATA_DHW_PUMP_STARTS,
281 translation_key=
"hot_water_pump_starts",
282 state_class=SensorStateClass.TOTAL,
283 native_unit_of_measurement=
"starts",
284 device_description=BOILER_DEVICE_DESCRIPTION,
287 key=gw_vars.DATA_DHW_BURNER_STARTS,
288 translation_key=
"hot_water_burner_starts",
289 state_class=SensorStateClass.TOTAL,
290 native_unit_of_measurement=
"starts",
291 device_description=BOILER_DEVICE_DESCRIPTION,
294 key=gw_vars.DATA_TOTAL_BURNER_HOURS,
295 translation_key=
"total_burner_hours",
296 device_class=SensorDeviceClass.DURATION,
297 state_class=SensorStateClass.TOTAL,
298 native_unit_of_measurement=UnitOfTime.HOURS,
299 device_description=BOILER_DEVICE_DESCRIPTION,
302 key=gw_vars.DATA_CH_PUMP_HOURS,
303 translation_key=
"central_heating_pump_hours",
304 device_class=SensorDeviceClass.DURATION,
305 state_class=SensorStateClass.TOTAL,
306 native_unit_of_measurement=UnitOfTime.HOURS,
307 device_description=BOILER_DEVICE_DESCRIPTION,
310 key=gw_vars.DATA_DHW_PUMP_HOURS,
311 translation_key=
"hot_water_pump_hours",
312 device_class=SensorDeviceClass.DURATION,
313 state_class=SensorStateClass.TOTAL,
314 native_unit_of_measurement=UnitOfTime.HOURS,
315 device_description=BOILER_DEVICE_DESCRIPTION,
318 key=gw_vars.DATA_DHW_BURNER_HOURS,
319 translation_key=
"hot_water_burner_hours",
320 device_class=SensorDeviceClass.DURATION,
321 state_class=SensorStateClass.TOTAL,
322 native_unit_of_measurement=UnitOfTime.HOURS,
323 device_description=BOILER_DEVICE_DESCRIPTION,
326 key=gw_vars.DATA_SLAVE_OT_VERSION,
327 translation_key=
"opentherm_version",
328 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
329 device_description=BOILER_DEVICE_DESCRIPTION,
332 key=gw_vars.DATA_SLAVE_PRODUCT_TYPE,
333 translation_key=
"product_type",
334 device_description=BOILER_DEVICE_DESCRIPTION,
337 key=gw_vars.DATA_SLAVE_PRODUCT_VERSION,
338 translation_key=
"product_version",
339 device_description=BOILER_DEVICE_DESCRIPTION,
342 key=gw_vars.OTGW_MODE,
343 translation_key=
"operating_mode",
344 device_description=GATEWAY_DEVICE_DESCRIPTION,
347 key=gw_vars.OTGW_DHW_OVRD,
348 translation_key=
"hot_water_override_mode",
349 device_description=GATEWAY_DEVICE_DESCRIPTION,
352 key=gw_vars.OTGW_ABOUT,
353 translation_key=
"firmware_version",
354 device_description=GATEWAY_DEVICE_DESCRIPTION,
357 key=gw_vars.OTGW_BUILD,
358 translation_key=
"firmware_build",
359 device_description=GATEWAY_DEVICE_DESCRIPTION,
362 key=gw_vars.OTGW_CLOCKMHZ,
363 translation_key=
"clock_speed",
364 device_description=GATEWAY_DEVICE_DESCRIPTION,
367 key=gw_vars.OTGW_LED_A,
368 translation_key=
"led_mode_n",
369 translation_placeholders={
"led_id":
"A"},
370 device_description=GATEWAY_DEVICE_DESCRIPTION,
373 key=gw_vars.OTGW_LED_B,
374 translation_key=
"led_mode_n",
375 translation_placeholders={
"led_id":
"B"},
376 device_description=GATEWAY_DEVICE_DESCRIPTION,
379 key=gw_vars.OTGW_LED_C,
380 translation_key=
"led_mode_n",
381 translation_placeholders={
"led_id":
"C"},
382 device_description=GATEWAY_DEVICE_DESCRIPTION,
385 key=gw_vars.OTGW_LED_D,
386 translation_key=
"led_mode_n",
387 translation_placeholders={
"led_id":
"D"},
388 device_description=GATEWAY_DEVICE_DESCRIPTION,
391 key=gw_vars.OTGW_LED_E,
392 translation_key=
"led_mode_n",
393 translation_placeholders={
"led_id":
"E"},
394 device_description=GATEWAY_DEVICE_DESCRIPTION,
397 key=gw_vars.OTGW_LED_F,
398 translation_key=
"led_mode_n",
399 translation_placeholders={
"led_id":
"F"},
400 device_description=GATEWAY_DEVICE_DESCRIPTION,
403 key=gw_vars.OTGW_GPIO_A,
404 translation_key=
"gpio_mode_n",
405 translation_placeholders={
"gpio_id":
"A"},
406 device_description=GATEWAY_DEVICE_DESCRIPTION,
409 key=gw_vars.OTGW_GPIO_B,
410 translation_key=
"gpio_mode_n",
411 translation_placeholders={
"gpio_id":
"B"},
412 device_description=GATEWAY_DEVICE_DESCRIPTION,
415 key=gw_vars.OTGW_SB_TEMP,
416 translation_key=
"setback_temperature",
417 device_class=SensorDeviceClass.TEMPERATURE,
418 state_class=SensorStateClass.MEASUREMENT,
419 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
420 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
421 device_description=GATEWAY_DEVICE_DESCRIPTION,
424 key=gw_vars.OTGW_SETP_OVRD_MODE,
425 translation_key=
"room_setpoint_override_mode",
426 device_description=GATEWAY_DEVICE_DESCRIPTION,
429 key=gw_vars.OTGW_SMART_PWR,
430 translation_key=
"smart_power_mode",
431 device_description=GATEWAY_DEVICE_DESCRIPTION,
434 key=gw_vars.OTGW_THRM_DETECT,
435 translation_key=
"thermostat_detection_mode",
436 device_description=GATEWAY_DEVICE_DESCRIPTION,
439 key=gw_vars.OTGW_VREF,
440 translation_key=
"reference_voltage",
441 device_description=GATEWAY_DEVICE_DESCRIPTION,
444 key=gw_vars.DATA_MASTER_MEMBERID,
445 translation_key=
"manufacturer_id",
446 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
449 key=gw_vars.DATA_ROOM_SETPOINT_OVRD,
450 translation_key=
"room_setpoint_override",
451 device_class=SensorDeviceClass.TEMPERATURE,
452 state_class=SensorStateClass.MEASUREMENT,
453 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
454 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
455 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
458 key=gw_vars.DATA_ROOM_SETPOINT,
459 translation_key=
"room_setpoint_n",
460 translation_placeholders={
"setpoint_id":
"1"},
461 device_class=SensorDeviceClass.TEMPERATURE,
462 state_class=SensorStateClass.MEASUREMENT,
463 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
464 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
465 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
468 key=gw_vars.DATA_ROOM_SETPOINT_2,
469 translation_key=
"room_setpoint_n",
470 translation_placeholders={
"setpoint_id":
"2"},
471 device_class=SensorDeviceClass.TEMPERATURE,
472 state_class=SensorStateClass.MEASUREMENT,
473 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
474 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
475 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
478 key=gw_vars.DATA_ROOM_TEMP,
479 translation_key=
"room_temperature",
480 device_class=SensorDeviceClass.TEMPERATURE,
481 state_class=SensorStateClass.MEASUREMENT,
482 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
483 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
484 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
487 key=gw_vars.DATA_OUTSIDE_TEMP,
488 translation_key=
"outside_temperature",
489 device_class=SensorDeviceClass.TEMPERATURE,
490 state_class=SensorStateClass.MEASUREMENT,
491 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
492 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
493 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
496 key=gw_vars.DATA_MASTER_OT_VERSION,
497 translation_key=
"opentherm_version",
498 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
499 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
502 key=gw_vars.DATA_MASTER_PRODUCT_TYPE,
503 translation_key=
"product_type",
504 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
507 key=gw_vars.DATA_MASTER_PRODUCT_VERSION,
508 translation_key=
"product_version",
509 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
512 key=gw_vars.DATA_CONTROL_SETPOINT,
513 translation_key=
"control_setpoint_n",
514 translation_placeholders={
"circuit_number":
"1"},
515 device_class=SensorDeviceClass.TEMPERATURE,
516 state_class=SensorStateClass.MEASUREMENT,
517 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
518 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
519 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
522 key=gw_vars.DATA_CONTROL_SETPOINT_2,
523 translation_key=
"control_setpoint_n",
524 translation_placeholders={
"circuit_number":
"2"},
525 device_class=SensorDeviceClass.TEMPERATURE,
526 state_class=SensorStateClass.MEASUREMENT,
527 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
528 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
529 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
532 key=gw_vars.DATA_SLAVE_MEMBERID,
533 translation_key=
"manufacturer_id",
534 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
537 key=gw_vars.DATA_SLAVE_OEM_FAULT,
538 translation_key=
"oem_fault_code",
539 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
542 key=gw_vars.DATA_COOLING_CONTROL,
543 translation_key=
"cooling_control",
544 state_class=SensorStateClass.MEASUREMENT,
545 native_unit_of_measurement=PERCENTAGE,
546 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
547 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
550 key=gw_vars.DATA_SLAVE_MAX_RELATIVE_MOD,
551 translation_key=
"max_relative_mod_level",
552 state_class=SensorStateClass.MEASUREMENT,
553 native_unit_of_measurement=PERCENTAGE,
554 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
555 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
558 key=gw_vars.DATA_SLAVE_MAX_CAPACITY,
559 translation_key=
"max_capacity",
560 state_class=SensorStateClass.MEASUREMENT,
561 device_class=SensorDeviceClass.POWER,
562 native_unit_of_measurement=UnitOfPower.KILO_WATT,
563 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
566 key=gw_vars.DATA_SLAVE_MIN_MOD_LEVEL,
567 translation_key=
"min_mod_level",
568 state_class=SensorStateClass.MEASUREMENT,
569 native_unit_of_measurement=PERCENTAGE,
570 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
573 key=gw_vars.DATA_REL_MOD_LEVEL,
574 translation_key=
"relative_mod_level",
575 state_class=SensorStateClass.MEASUREMENT,
576 native_unit_of_measurement=PERCENTAGE,
577 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
578 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
581 key=gw_vars.DATA_CH_WATER_PRESS,
582 translation_key=
"central_heating_pressure",
583 device_class=SensorDeviceClass.PRESSURE,
584 state_class=SensorStateClass.MEASUREMENT,
585 native_unit_of_measurement=UnitOfPressure.BAR,
586 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
587 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
590 key=gw_vars.DATA_DHW_FLOW_RATE,
591 translation_key=
"hot_water_flow_rate",
592 device_class=SensorDeviceClass.VOLUME_FLOW_RATE,
593 state_class=SensorStateClass.MEASUREMENT,
594 native_unit_of_measurement=UnitOfVolumeFlowRate.LITERS_PER_MINUTE,
595 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
596 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
599 key=gw_vars.DATA_CH_WATER_TEMP,
600 translation_key=
"central_heating_temperature_n",
601 translation_placeholders={
"circuit_number":
"1"},
602 device_class=SensorDeviceClass.TEMPERATURE,
603 state_class=SensorStateClass.MEASUREMENT,
604 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
605 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
606 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
609 key=gw_vars.DATA_CH_WATER_TEMP_2,
610 translation_key=
"central_heating_temperature_n",
611 translation_placeholders={
"circuit_number":
"2"},
612 device_class=SensorDeviceClass.TEMPERATURE,
613 state_class=SensorStateClass.MEASUREMENT,
614 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
615 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
616 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
619 key=gw_vars.DATA_DHW_TEMP,
620 translation_key=
"hot_water_temperature_n",
621 translation_placeholders={
"circuit_number":
"1"},
622 device_class=SensorDeviceClass.TEMPERATURE,
623 state_class=SensorStateClass.MEASUREMENT,
624 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
625 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
626 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
629 key=gw_vars.DATA_DHW_TEMP_2,
630 translation_key=
"hot_water_temperature_n",
631 translation_placeholders={
"circuit_number":
"2"},
632 device_class=SensorDeviceClass.TEMPERATURE,
633 state_class=SensorStateClass.MEASUREMENT,
634 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
635 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
636 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
639 key=gw_vars.DATA_RETURN_WATER_TEMP,
640 translation_key=
"return_water_temperature",
641 device_class=SensorDeviceClass.TEMPERATURE,
642 state_class=SensorStateClass.MEASUREMENT,
643 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
644 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
645 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
648 key=gw_vars.DATA_SOLAR_STORAGE_TEMP,
649 translation_key=
"solar_storage_temperature",
650 device_class=SensorDeviceClass.TEMPERATURE,
651 state_class=SensorStateClass.MEASUREMENT,
652 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
653 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
654 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
657 key=gw_vars.DATA_SOLAR_COLL_TEMP,
658 translation_key=
"solar_collector_temperature",
659 device_class=SensorDeviceClass.TEMPERATURE,
660 state_class=SensorStateClass.MEASUREMENT,
661 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
662 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
663 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
666 key=gw_vars.DATA_EXHAUST_TEMP,
667 translation_key=
"exhaust_temperature",
668 device_class=SensorDeviceClass.TEMPERATURE,
669 state_class=SensorStateClass.MEASUREMENT,
670 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
671 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
674 key=gw_vars.DATA_SLAVE_DHW_MAX_SETP,
675 translation_key=
"max_hot_water_setpoint_upper",
676 device_class=SensorDeviceClass.TEMPERATURE,
677 state_class=SensorStateClass.MEASUREMENT,
678 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
679 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
682 key=gw_vars.DATA_SLAVE_DHW_MIN_SETP,
683 translation_key=
"max_hot_water_setpoint_lower",
684 device_class=SensorDeviceClass.TEMPERATURE,
685 state_class=SensorStateClass.MEASUREMENT,
686 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
687 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
690 key=gw_vars.DATA_SLAVE_CH_MAX_SETP,
691 translation_key=
"max_central_heating_setpoint_upper",
692 device_class=SensorDeviceClass.TEMPERATURE,
693 state_class=SensorStateClass.MEASUREMENT,
694 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
695 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
698 key=gw_vars.DATA_SLAVE_CH_MIN_SETP,
699 translation_key=
"max_central_heating_setpoint_lower",
700 device_class=SensorDeviceClass.TEMPERATURE,
701 state_class=SensorStateClass.MEASUREMENT,
702 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
703 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
706 key=gw_vars.DATA_DHW_SETPOINT,
707 translation_key=
"hot_water_setpoint",
708 device_class=SensorDeviceClass.TEMPERATURE,
709 state_class=SensorStateClass.MEASUREMENT,
710 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
711 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
712 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
715 key=gw_vars.DATA_MAX_CH_SETPOINT,
716 translation_key=
"max_central_heating_setpoint",
717 device_class=SensorDeviceClass.TEMPERATURE,
718 state_class=SensorStateClass.MEASUREMENT,
719 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
720 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
721 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
724 key=gw_vars.DATA_OEM_DIAG,
725 translation_key=
"oem_diagnostic_code",
726 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
729 key=gw_vars.DATA_TOTAL_BURNER_STARTS,
730 translation_key=
"total_burner_starts",
731 state_class=SensorStateClass.TOTAL,
732 native_unit_of_measurement=
"starts",
733 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
736 key=gw_vars.DATA_CH_PUMP_STARTS,
737 translation_key=
"central_heating_pump_starts",
738 state_class=SensorStateClass.TOTAL,
739 native_unit_of_measurement=
"starts",
740 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
743 key=gw_vars.DATA_DHW_PUMP_STARTS,
744 translation_key=
"hot_water_pump_starts",
745 state_class=SensorStateClass.TOTAL,
746 native_unit_of_measurement=
"starts",
747 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
750 key=gw_vars.DATA_DHW_BURNER_STARTS,
751 translation_key=
"hot_water_burner_starts",
752 state_class=SensorStateClass.TOTAL,
753 native_unit_of_measurement=
"starts",
754 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
757 key=gw_vars.DATA_TOTAL_BURNER_HOURS,
758 translation_key=
"total_burner_hours",
759 device_class=SensorDeviceClass.DURATION,
760 state_class=SensorStateClass.TOTAL,
761 native_unit_of_measurement=UnitOfTime.HOURS,
762 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
765 key=gw_vars.DATA_CH_PUMP_HOURS,
766 translation_key=
"central_heating_pump_hours",
767 device_class=SensorDeviceClass.DURATION,
768 state_class=SensorStateClass.TOTAL,
769 native_unit_of_measurement=UnitOfTime.HOURS,
770 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
773 key=gw_vars.DATA_DHW_PUMP_HOURS,
774 translation_key=
"hot_water_pump_hours",
775 device_class=SensorDeviceClass.DURATION,
776 state_class=SensorStateClass.TOTAL,
777 native_unit_of_measurement=UnitOfTime.HOURS,
778 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
781 key=gw_vars.DATA_DHW_BURNER_HOURS,
782 translation_key=
"hot_water_burner_hours",
783 device_class=SensorDeviceClass.DURATION,
784 state_class=SensorStateClass.TOTAL,
785 native_unit_of_measurement=UnitOfTime.HOURS,
786 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
789 key=gw_vars.DATA_SLAVE_OT_VERSION,
790 translation_key=
"opentherm_version",
791 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
792 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
795 key=gw_vars.DATA_SLAVE_PRODUCT_TYPE,
796 translation_key=
"product_type",
797 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
800 key=gw_vars.DATA_SLAVE_PRODUCT_VERSION,
801 translation_key=
"product_version",
802 device_description=THERMOSTAT_DEVICE_DESCRIPTION,
805 key=gw_vars.DATA_MASTER_MEMBERID,
806 translation_key=
"manufacturer_id",
807 device_description=BOILER_DEVICE_DESCRIPTION,
810 key=gw_vars.DATA_ROOM_SETPOINT_OVRD,
811 translation_key=
"room_setpoint_override",
812 device_class=SensorDeviceClass.TEMPERATURE,
813 state_class=SensorStateClass.MEASUREMENT,
814 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
815 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
816 device_description=BOILER_DEVICE_DESCRIPTION,
819 key=gw_vars.DATA_ROOM_SETPOINT,
820 translation_key=
"room_setpoint_n",
821 translation_placeholders={
"setpoint_id":
"1"},
822 device_class=SensorDeviceClass.TEMPERATURE,
823 state_class=SensorStateClass.MEASUREMENT,
824 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
825 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
826 device_description=BOILER_DEVICE_DESCRIPTION,
829 key=gw_vars.DATA_ROOM_SETPOINT_2,
830 translation_key=
"room_setpoint_n",
831 translation_placeholders={
"setpoint_id":
"2"},
832 device_class=SensorDeviceClass.TEMPERATURE,
833 state_class=SensorStateClass.MEASUREMENT,
834 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
835 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
836 device_description=BOILER_DEVICE_DESCRIPTION,
839 key=gw_vars.DATA_ROOM_TEMP,
840 translation_key=
"room_temperature",
841 device_class=SensorDeviceClass.TEMPERATURE,
842 state_class=SensorStateClass.MEASUREMENT,
843 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
844 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
845 device_description=BOILER_DEVICE_DESCRIPTION,
848 key=gw_vars.DATA_OUTSIDE_TEMP,
849 translation_key=
"outside_temperature",
850 device_class=SensorDeviceClass.TEMPERATURE,
851 state_class=SensorStateClass.MEASUREMENT,
852 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
853 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
854 device_description=BOILER_DEVICE_DESCRIPTION,
857 key=gw_vars.DATA_MASTER_OT_VERSION,
858 translation_key=
"opentherm_version",
859 suggested_display_precision=SENSOR_FLOAT_SUGGESTED_DISPLAY_PRECISION,
860 device_description=BOILER_DEVICE_DESCRIPTION,
863 key=gw_vars.DATA_MASTER_PRODUCT_TYPE,
864 translation_key=
"product_type",
865 device_description=BOILER_DEVICE_DESCRIPTION,
868 key=gw_vars.DATA_MASTER_PRODUCT_VERSION,
869 translation_key=
"product_version",
870 device_description=BOILER_DEVICE_DESCRIPTION,
877 config_entry: ConfigEntry,
878 async_add_entities: AddEntitiesCallback,
880 """Set up the OpenTherm Gateway sensors."""
881 gw_hub = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][config_entry.data[CONF_ID]]
888 for description
in SENSOR_DESCRIPTIONS
893 """Representation of an OpenTherm sensor."""
895 _attr_entity_category = EntityCategory.DIAGNOSTIC
896 entity_description: OpenThermSensorEntityDescription
900 """Handle status updates from the component."""
None receive_report(self, dict[OpenThermDataSource, dict] status)
None async_write_ha_state(self)
web.Response get(self, web.Request request, str config_key)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)