1 """Provides a sensor to track various status aspects of a UPS."""
3 from __future__
import annotations
5 from dataclasses
import asdict
7 from typing
import Final, cast
12 SensorEntityDescription,
24 UnitOfElectricCurrent,
25 UnitOfElectricPotential,
36 DataUpdateCoordinator,
39 from .
import NutConfigEntry, PyNUTData
40 from .const
import DOMAIN, KEY_STATUS, KEY_STATUS_DISPLAY, STATE_TYPES
42 NUT_DEV_INFO_TO_DEV_INFO: dict[str, str] = {
43 "manufacturer": ATTR_MANUFACTURER,
45 "firmware": ATTR_SW_VERSION,
46 "serial": ATTR_SERIAL_NUMBER,
49 _LOGGER = logging.getLogger(__name__)
51 SENSOR_TYPES: Final[dict[str, SensorEntityDescription]] = {
53 key=
"ups.status.display",
54 translation_key=
"ups_status_display",
58 translation_key=
"ups_status",
62 translation_key=
"ups_alarm",
65 key=
"ups.temperature",
66 translation_key=
"ups_temperature",
67 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
68 device_class=SensorDeviceClass.TEMPERATURE,
69 state_class=SensorStateClass.MEASUREMENT,
70 entity_category=EntityCategory.DIAGNOSTIC,
71 entity_registry_enabled_default=
False,
75 translation_key=
"ups_load",
76 native_unit_of_measurement=PERCENTAGE,
77 state_class=SensorStateClass.MEASUREMENT,
81 translation_key=
"ups_load_high",
82 native_unit_of_measurement=PERCENTAGE,
83 entity_category=EntityCategory.DIAGNOSTIC,
84 entity_registry_enabled_default=
False,
88 translation_key=
"ups_id",
89 entity_category=EntityCategory.DIAGNOSTIC,
90 entity_registry_enabled_default=
False,
93 key=
"ups.delay.start",
94 translation_key=
"ups_delay_start",
95 native_unit_of_measurement=UnitOfTime.SECONDS,
96 device_class=SensorDeviceClass.DURATION,
97 entity_category=EntityCategory.DIAGNOSTIC,
98 entity_registry_enabled_default=
False,
101 key=
"ups.delay.reboot",
102 translation_key=
"ups_delay_reboot",
103 native_unit_of_measurement=UnitOfTime.SECONDS,
104 device_class=SensorDeviceClass.DURATION,
105 entity_category=EntityCategory.DIAGNOSTIC,
106 entity_registry_enabled_default=
False,
109 key=
"ups.delay.shutdown",
110 translation_key=
"ups_delay_shutdown",
111 native_unit_of_measurement=UnitOfTime.SECONDS,
112 device_class=SensorDeviceClass.DURATION,
113 entity_category=EntityCategory.DIAGNOSTIC,
114 entity_registry_enabled_default=
False,
117 key=
"ups.timer.start",
118 translation_key=
"ups_timer_start",
119 native_unit_of_measurement=UnitOfTime.SECONDS,
120 device_class=SensorDeviceClass.DURATION,
121 entity_category=EntityCategory.DIAGNOSTIC,
122 entity_registry_enabled_default=
False,
125 key=
"ups.timer.reboot",
126 translation_key=
"ups_timer_reboot",
127 native_unit_of_measurement=UnitOfTime.SECONDS,
128 device_class=SensorDeviceClass.DURATION,
129 entity_category=EntityCategory.DIAGNOSTIC,
130 entity_registry_enabled_default=
False,
133 key=
"ups.timer.shutdown",
134 translation_key=
"ups_timer_shutdown",
135 native_unit_of_measurement=UnitOfTime.SECONDS,
136 device_class=SensorDeviceClass.DURATION,
137 entity_category=EntityCategory.DIAGNOSTIC,
138 entity_registry_enabled_default=
False,
141 key=
"ups.test.interval",
142 translation_key=
"ups_test_interval",
143 native_unit_of_measurement=UnitOfTime.SECONDS,
144 device_class=SensorDeviceClass.DURATION,
145 entity_category=EntityCategory.DIAGNOSTIC,
146 entity_registry_enabled_default=
False,
149 key=
"ups.test.result",
150 translation_key=
"ups_test_result",
151 entity_category=EntityCategory.DIAGNOSTIC,
152 entity_registry_enabled_default=
False,
156 translation_key=
"ups_test_date",
157 entity_category=EntityCategory.DIAGNOSTIC,
158 entity_registry_enabled_default=
False,
161 key=
"ups.display.language",
162 translation_key=
"ups_display_language",
163 entity_category=EntityCategory.DIAGNOSTIC,
164 entity_registry_enabled_default=
False,
168 translation_key=
"ups_contacts",
169 entity_category=EntityCategory.DIAGNOSTIC,
170 entity_registry_enabled_default=
False,
173 key=
"ups.efficiency",
174 translation_key=
"ups_efficiency",
175 native_unit_of_measurement=PERCENTAGE,
176 state_class=SensorStateClass.MEASUREMENT,
177 entity_category=EntityCategory.DIAGNOSTIC,
178 entity_registry_enabled_default=
False,
182 translation_key=
"ups_power",
183 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
184 device_class=SensorDeviceClass.APPARENT_POWER,
185 state_class=SensorStateClass.MEASUREMENT,
186 entity_category=EntityCategory.DIAGNOSTIC,
187 entity_registry_enabled_default=
False,
190 key=
"ups.power.nominal",
191 translation_key=
"ups_power_nominal",
192 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
193 device_class=SensorDeviceClass.APPARENT_POWER,
194 entity_category=EntityCategory.DIAGNOSTIC,
195 entity_registry_enabled_default=
False,
199 translation_key=
"ups_realpower",
200 native_unit_of_measurement=UnitOfPower.WATT,
201 device_class=SensorDeviceClass.POWER,
202 state_class=SensorStateClass.MEASUREMENT,
203 entity_category=EntityCategory.DIAGNOSTIC,
204 entity_registry_enabled_default=
False,
207 key=
"ups.realpower.nominal",
208 translation_key=
"ups_realpower_nominal",
209 native_unit_of_measurement=UnitOfPower.WATT,
210 device_class=SensorDeviceClass.POWER,
211 entity_category=EntityCategory.DIAGNOSTIC,
212 entity_registry_enabled_default=
False,
215 key=
"ups.beeper.status",
216 translation_key=
"ups_beeper_status",
217 entity_category=EntityCategory.DIAGNOSTIC,
218 entity_registry_enabled_default=
False,
222 translation_key=
"ups_type",
223 entity_category=EntityCategory.DIAGNOSTIC,
224 entity_registry_enabled_default=
False,
227 key=
"ups.watchdog.status",
228 translation_key=
"ups_watchdog_status",
229 entity_category=EntityCategory.DIAGNOSTIC,
230 entity_registry_enabled_default=
False,
233 key=
"ups.start.auto",
234 translation_key=
"ups_start_auto",
235 entity_category=EntityCategory.DIAGNOSTIC,
236 entity_registry_enabled_default=
False,
239 key=
"ups.start.battery",
240 translation_key=
"ups_start_battery",
241 entity_category=EntityCategory.DIAGNOSTIC,
242 entity_registry_enabled_default=
False,
245 key=
"ups.start.reboot",
246 translation_key=
"ups_start_reboot",
247 entity_category=EntityCategory.DIAGNOSTIC,
248 entity_registry_enabled_default=
False,
252 translation_key=
"ups_shutdown",
253 entity_category=EntityCategory.DIAGNOSTIC,
254 entity_registry_enabled_default=
False,
257 key=
"battery.charge",
258 translation_key=
"battery_charge",
259 native_unit_of_measurement=PERCENTAGE,
260 device_class=SensorDeviceClass.BATTERY,
261 state_class=SensorStateClass.MEASUREMENT,
264 key=
"battery.charge.low",
265 translation_key=
"battery_charge_low",
266 native_unit_of_measurement=PERCENTAGE,
267 entity_category=EntityCategory.DIAGNOSTIC,
268 entity_registry_enabled_default=
False,
271 key=
"battery.charge.restart",
272 translation_key=
"battery_charge_restart",
273 native_unit_of_measurement=PERCENTAGE,
274 entity_category=EntityCategory.DIAGNOSTIC,
275 entity_registry_enabled_default=
False,
278 key=
"battery.charge.warning",
279 translation_key=
"battery_charge_warning",
280 native_unit_of_measurement=PERCENTAGE,
281 entity_category=EntityCategory.DIAGNOSTIC,
282 entity_registry_enabled_default=
False,
285 key=
"battery.charger.status",
286 translation_key=
"battery_charger_status",
289 key=
"battery.voltage",
290 translation_key=
"battery_voltage",
291 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
292 device_class=SensorDeviceClass.VOLTAGE,
293 state_class=SensorStateClass.MEASUREMENT,
294 entity_category=EntityCategory.DIAGNOSTIC,
295 entity_registry_enabled_default=
False,
298 key=
"battery.voltage.nominal",
299 translation_key=
"battery_voltage_nominal",
300 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
301 device_class=SensorDeviceClass.VOLTAGE,
302 entity_category=EntityCategory.DIAGNOSTIC,
303 entity_registry_enabled_default=
False,
306 key=
"battery.voltage.low",
307 translation_key=
"battery_voltage_low",
308 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
309 device_class=SensorDeviceClass.VOLTAGE,
310 entity_category=EntityCategory.DIAGNOSTIC,
311 entity_registry_enabled_default=
False,
314 key=
"battery.voltage.high",
315 translation_key=
"battery_voltage_high",
316 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
317 device_class=SensorDeviceClass.VOLTAGE,
318 entity_category=EntityCategory.DIAGNOSTIC,
319 entity_registry_enabled_default=
False,
322 key=
"battery.capacity",
323 translation_key=
"battery_capacity",
324 native_unit_of_measurement=
"Ah",
325 entity_category=EntityCategory.DIAGNOSTIC,
326 entity_registry_enabled_default=
False,
329 key=
"battery.current",
330 translation_key=
"battery_current",
331 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
332 device_class=SensorDeviceClass.CURRENT,
333 state_class=SensorStateClass.MEASUREMENT,
334 entity_category=EntityCategory.DIAGNOSTIC,
335 entity_registry_enabled_default=
False,
338 key=
"battery.current.total",
339 translation_key=
"battery_current_total",
340 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
341 device_class=SensorDeviceClass.CURRENT,
342 entity_category=EntityCategory.DIAGNOSTIC,
343 entity_registry_enabled_default=
False,
346 key=
"battery.temperature",
347 translation_key=
"battery_temperature",
348 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
349 device_class=SensorDeviceClass.TEMPERATURE,
350 state_class=SensorStateClass.MEASUREMENT,
351 entity_category=EntityCategory.DIAGNOSTIC,
352 entity_registry_enabled_default=
False,
355 key=
"battery.runtime",
356 translation_key=
"battery_runtime",
357 native_unit_of_measurement=UnitOfTime.SECONDS,
358 device_class=SensorDeviceClass.DURATION,
359 entity_category=EntityCategory.DIAGNOSTIC,
360 entity_registry_enabled_default=
False,
363 key=
"battery.runtime.low",
364 translation_key=
"battery_runtime_low",
365 native_unit_of_measurement=UnitOfTime.SECONDS,
366 device_class=SensorDeviceClass.DURATION,
367 entity_category=EntityCategory.DIAGNOSTIC,
368 entity_registry_enabled_default=
False,
371 key=
"battery.runtime.restart",
372 translation_key=
"battery_runtime_restart",
373 native_unit_of_measurement=UnitOfTime.SECONDS,
374 device_class=SensorDeviceClass.DURATION,
375 entity_category=EntityCategory.DIAGNOSTIC,
376 entity_registry_enabled_default=
False,
379 key=
"battery.alarm.threshold",
380 translation_key=
"battery_alarm_threshold",
381 entity_category=EntityCategory.DIAGNOSTIC,
382 entity_registry_enabled_default=
False,
386 translation_key=
"battery_date",
387 entity_category=EntityCategory.DIAGNOSTIC,
388 entity_registry_enabled_default=
False,
391 key=
"battery.mfr.date",
392 translation_key=
"battery_mfr_date",
393 entity_category=EntityCategory.DIAGNOSTIC,
394 entity_registry_enabled_default=
False,
398 translation_key=
"battery_packs",
399 entity_category=EntityCategory.DIAGNOSTIC,
400 entity_registry_enabled_default=
False,
403 key=
"battery.packs.bad",
404 translation_key=
"battery_packs_bad",
405 entity_category=EntityCategory.DIAGNOSTIC,
406 entity_registry_enabled_default=
False,
410 translation_key=
"battery_type",
411 entity_category=EntityCategory.DIAGNOSTIC,
412 entity_registry_enabled_default=
False,
415 key=
"input.sensitivity",
416 translation_key=
"input_sensitivity",
417 entity_category=EntityCategory.DIAGNOSTIC,
418 entity_registry_enabled_default=
False,
421 key=
"input.transfer.low",
422 translation_key=
"input_transfer_low",
423 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
424 device_class=SensorDeviceClass.VOLTAGE,
425 entity_category=EntityCategory.DIAGNOSTIC,
426 entity_registry_enabled_default=
False,
429 key=
"input.transfer.high",
430 translation_key=
"input_transfer_high",
431 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
432 device_class=SensorDeviceClass.VOLTAGE,
433 entity_category=EntityCategory.DIAGNOSTIC,
434 entity_registry_enabled_default=
False,
437 key=
"input.transfer.reason",
438 translation_key=
"input_transfer_reason",
439 entity_category=EntityCategory.DIAGNOSTIC,
440 entity_registry_enabled_default=
False,
444 translation_key=
"input_voltage",
445 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
446 device_class=SensorDeviceClass.VOLTAGE,
447 state_class=SensorStateClass.MEASUREMENT,
450 key=
"input.voltage.nominal",
451 translation_key=
"input_voltage_nominal",
452 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
453 device_class=SensorDeviceClass.VOLTAGE,
454 entity_category=EntityCategory.DIAGNOSTIC,
455 entity_registry_enabled_default=
False,
458 key=
"input.L1-N.voltage",
459 translation_key=
"input_l1_n_voltage",
460 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
461 device_class=SensorDeviceClass.VOLTAGE,
462 state_class=SensorStateClass.MEASUREMENT,
463 entity_category=EntityCategory.DIAGNOSTIC,
464 entity_registry_enabled_default=
False,
467 key=
"input.L2-N.voltage",
468 translation_key=
"input_l2_n_voltage",
469 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
470 device_class=SensorDeviceClass.VOLTAGE,
471 state_class=SensorStateClass.MEASUREMENT,
472 entity_category=EntityCategory.DIAGNOSTIC,
473 entity_registry_enabled_default=
False,
476 key=
"input.L3-N.voltage",
477 translation_key=
"input_l3_n_voltage",
478 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
479 device_class=SensorDeviceClass.VOLTAGE,
480 state_class=SensorStateClass.MEASUREMENT,
481 entity_category=EntityCategory.DIAGNOSTIC,
482 entity_registry_enabled_default=
False,
485 key=
"input.frequency",
486 translation_key=
"input_frequency",
487 native_unit_of_measurement=UnitOfFrequency.HERTZ,
488 device_class=SensorDeviceClass.FREQUENCY,
489 state_class=SensorStateClass.MEASUREMENT,
490 entity_category=EntityCategory.DIAGNOSTIC,
491 entity_registry_enabled_default=
False,
494 key=
"input.frequency.nominal",
495 translation_key=
"input_frequency_nominal",
496 native_unit_of_measurement=UnitOfFrequency.HERTZ,
497 device_class=SensorDeviceClass.FREQUENCY,
498 entity_category=EntityCategory.DIAGNOSTIC,
499 entity_registry_enabled_default=
False,
502 key=
"input.frequency.status",
503 translation_key=
"input_frequency_status",
504 entity_category=EntityCategory.DIAGNOSTIC,
505 entity_registry_enabled_default=
False,
508 key=
"input.L1.frequency",
509 translation_key=
"input_l1_frequency",
510 native_unit_of_measurement=UnitOfFrequency.HERTZ,
511 device_class=SensorDeviceClass.FREQUENCY,
512 state_class=SensorStateClass.MEASUREMENT,
513 entity_category=EntityCategory.DIAGNOSTIC,
514 entity_registry_enabled_default=
False,
517 key=
"input.L2.frequency",
518 translation_key=
"input_l2_frequency",
519 native_unit_of_measurement=UnitOfFrequency.HERTZ,
520 device_class=SensorDeviceClass.FREQUENCY,
521 state_class=SensorStateClass.MEASUREMENT,
522 entity_category=EntityCategory.DIAGNOSTIC,
523 entity_registry_enabled_default=
False,
526 key=
"input.L3.frequency",
527 translation_key=
"input_l3_frequency",
528 native_unit_of_measurement=UnitOfFrequency.HERTZ,
529 device_class=SensorDeviceClass.FREQUENCY,
530 state_class=SensorStateClass.MEASUREMENT,
531 entity_category=EntityCategory.DIAGNOSTIC,
532 entity_registry_enabled_default=
False,
535 key=
"input.bypass.current",
536 translation_key=
"input_bypass_current",
537 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
538 device_class=SensorDeviceClass.CURRENT,
539 state_class=SensorStateClass.MEASUREMENT,
540 entity_category=EntityCategory.DIAGNOSTIC,
541 entity_registry_enabled_default=
False,
544 key=
"input.bypass.L1.current",
545 translation_key=
"input_bypass_l1_current",
546 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
547 device_class=SensorDeviceClass.CURRENT,
548 state_class=SensorStateClass.MEASUREMENT,
549 entity_category=EntityCategory.DIAGNOSTIC,
550 entity_registry_enabled_default=
False,
553 key=
"input.bypass.L2.current",
554 translation_key=
"input_bypass_l2_current",
555 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
556 device_class=SensorDeviceClass.CURRENT,
557 state_class=SensorStateClass.MEASUREMENT,
558 entity_category=EntityCategory.DIAGNOSTIC,
559 entity_registry_enabled_default=
False,
562 key=
"input.bypass.L3.current",
563 translation_key=
"input_bypass_l3_current",
564 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
565 device_class=SensorDeviceClass.CURRENT,
566 state_class=SensorStateClass.MEASUREMENT,
567 entity_category=EntityCategory.DIAGNOSTIC,
568 entity_registry_enabled_default=
False,
571 key=
"input.bypass.frequency",
572 translation_key=
"input_bypass_frequency",
573 native_unit_of_measurement=UnitOfFrequency.HERTZ,
574 device_class=SensorDeviceClass.FREQUENCY,
575 state_class=SensorStateClass.MEASUREMENT,
576 entity_category=EntityCategory.DIAGNOSTIC,
577 entity_registry_enabled_default=
False,
580 key=
"input.bypass.phases",
581 translation_key=
"input_bypass_phases",
582 entity_category=EntityCategory.DIAGNOSTIC,
583 entity_registry_enabled_default=
False,
586 key=
"input.bypass.realpower",
587 translation_key=
"input_bypass_realpower",
588 native_unit_of_measurement=UnitOfPower.WATT,
589 device_class=SensorDeviceClass.POWER,
590 state_class=SensorStateClass.MEASUREMENT,
591 entity_category=EntityCategory.DIAGNOSTIC,
592 entity_registry_enabled_default=
False,
595 key=
"input.bypass.L1.realpower",
596 translation_key=
"input_bypass_l1_realpower",
597 native_unit_of_measurement=UnitOfPower.WATT,
598 device_class=SensorDeviceClass.POWER,
599 state_class=SensorStateClass.MEASUREMENT,
600 entity_category=EntityCategory.DIAGNOSTIC,
601 entity_registry_enabled_default=
False,
604 key=
"input.bypass.L2.realpower",
605 translation_key=
"input_bypass_l2_realpower",
606 native_unit_of_measurement=UnitOfPower.WATT,
607 device_class=SensorDeviceClass.POWER,
608 state_class=SensorStateClass.MEASUREMENT,
609 entity_category=EntityCategory.DIAGNOSTIC,
610 entity_registry_enabled_default=
False,
613 key=
"input.bypass.L3.realpower",
614 translation_key=
"input_bypass_l3_realpower",
615 native_unit_of_measurement=UnitOfPower.WATT,
616 device_class=SensorDeviceClass.POWER,
617 state_class=SensorStateClass.MEASUREMENT,
618 entity_category=EntityCategory.DIAGNOSTIC,
619 entity_registry_enabled_default=
False,
622 key=
"input.bypass.voltage",
623 translation_key=
"input_bypass_voltage",
624 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
625 device_class=SensorDeviceClass.VOLTAGE,
626 state_class=SensorStateClass.MEASUREMENT,
627 entity_category=EntityCategory.DIAGNOSTIC,
628 entity_registry_enabled_default=
False,
631 key=
"input.bypass.L1-N.voltage",
632 translation_key=
"input_bypass_l1_n_voltage",
633 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
634 device_class=SensorDeviceClass.VOLTAGE,
635 state_class=SensorStateClass.MEASUREMENT,
636 entity_category=EntityCategory.DIAGNOSTIC,
637 entity_registry_enabled_default=
False,
640 key=
"input.bypass.L2-N.voltage",
641 translation_key=
"input_bypass_l2_n_voltage",
642 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
643 device_class=SensorDeviceClass.VOLTAGE,
644 state_class=SensorStateClass.MEASUREMENT,
645 entity_category=EntityCategory.DIAGNOSTIC,
646 entity_registry_enabled_default=
False,
649 key=
"input.bypass.L3-N.voltage",
650 translation_key=
"input_bypass_l3_n_voltage",
651 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
652 device_class=SensorDeviceClass.VOLTAGE,
653 state_class=SensorStateClass.MEASUREMENT,
654 entity_category=EntityCategory.DIAGNOSTIC,
655 entity_registry_enabled_default=
False,
659 translation_key=
"input_current",
660 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
661 device_class=SensorDeviceClass.CURRENT,
662 state_class=SensorStateClass.MEASUREMENT,
663 entity_registry_enabled_default=
False,
666 key=
"input.L1.current",
667 translation_key=
"input_l1_current",
668 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
669 device_class=SensorDeviceClass.CURRENT,
670 state_class=SensorStateClass.MEASUREMENT,
671 entity_category=EntityCategory.DIAGNOSTIC,
672 entity_registry_enabled_default=
False,
675 key=
"input.L2.current",
676 translation_key=
"input_l2_current",
677 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
678 device_class=SensorDeviceClass.CURRENT,
679 state_class=SensorStateClass.MEASUREMENT,
680 entity_category=EntityCategory.DIAGNOSTIC,
681 entity_registry_enabled_default=
False,
684 key=
"input.L3.current",
685 translation_key=
"input_l3_current",
686 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
687 device_class=SensorDeviceClass.CURRENT,
688 state_class=SensorStateClass.MEASUREMENT,
689 entity_category=EntityCategory.DIAGNOSTIC,
690 entity_registry_enabled_default=
False,
694 translation_key=
"input_phases",
695 entity_category=EntityCategory.DIAGNOSTIC,
696 entity_registry_enabled_default=
False,
699 key=
"input.realpower",
700 translation_key=
"input_realpower",
701 native_unit_of_measurement=UnitOfPower.WATT,
702 device_class=SensorDeviceClass.POWER,
703 state_class=SensorStateClass.MEASUREMENT,
704 entity_category=EntityCategory.DIAGNOSTIC,
705 entity_registry_enabled_default=
False,
708 key=
"input.L1.realpower",
709 translation_key=
"input_l1_realpower",
710 native_unit_of_measurement=UnitOfPower.WATT,
711 device_class=SensorDeviceClass.POWER,
712 state_class=SensorStateClass.MEASUREMENT,
713 entity_category=EntityCategory.DIAGNOSTIC,
714 entity_registry_enabled_default=
False,
717 key=
"input.L2.realpower",
718 translation_key=
"input_l2_realpower",
719 native_unit_of_measurement=UnitOfPower.WATT,
720 device_class=SensorDeviceClass.POWER,
721 state_class=SensorStateClass.MEASUREMENT,
722 entity_category=EntityCategory.DIAGNOSTIC,
723 entity_registry_enabled_default=
False,
726 key=
"input.L3.realpower",
727 translation_key=
"input_l3_realpower",
728 native_unit_of_measurement=UnitOfPower.WATT,
729 device_class=SensorDeviceClass.POWER,
730 state_class=SensorStateClass.MEASUREMENT,
731 entity_category=EntityCategory.DIAGNOSTIC,
732 entity_registry_enabled_default=
False,
735 key=
"output.power.nominal",
736 translation_key=
"output_power_nominal",
737 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
738 device_class=SensorDeviceClass.APPARENT_POWER,
739 entity_category=EntityCategory.DIAGNOSTIC,
740 entity_registry_enabled_default=
False,
743 key=
"output.L1.power.percent",
744 translation_key=
"output_l1_power_percent",
745 native_unit_of_measurement=PERCENTAGE,
746 entity_category=EntityCategory.DIAGNOSTIC,
747 entity_registry_enabled_default=
False,
750 key=
"output.L2.power.percent",
751 translation_key=
"output_l2_power_percent",
752 native_unit_of_measurement=PERCENTAGE,
753 entity_category=EntityCategory.DIAGNOSTIC,
754 entity_registry_enabled_default=
False,
757 key=
"output.L3.power.percent",
758 translation_key=
"output_l3_power_percent",
759 native_unit_of_measurement=PERCENTAGE,
760 entity_category=EntityCategory.DIAGNOSTIC,
761 entity_registry_enabled_default=
False,
764 key=
"output.current",
765 translation_key=
"output_current",
766 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
767 device_class=SensorDeviceClass.CURRENT,
768 state_class=SensorStateClass.MEASUREMENT,
769 entity_category=EntityCategory.DIAGNOSTIC,
770 entity_registry_enabled_default=
False,
773 key=
"output.current.nominal",
774 translation_key=
"output_current_nominal",
775 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
776 device_class=SensorDeviceClass.CURRENT,
777 entity_category=EntityCategory.DIAGNOSTIC,
778 entity_registry_enabled_default=
False,
781 key=
"output.L1.current",
782 translation_key=
"output_l1_current",
783 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
784 device_class=SensorDeviceClass.CURRENT,
785 state_class=SensorStateClass.MEASUREMENT,
786 entity_category=EntityCategory.DIAGNOSTIC,
787 entity_registry_enabled_default=
False,
790 key=
"output.L2.current",
791 translation_key=
"output_l2_current",
792 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
793 device_class=SensorDeviceClass.CURRENT,
794 state_class=SensorStateClass.MEASUREMENT,
795 entity_category=EntityCategory.DIAGNOSTIC,
796 entity_registry_enabled_default=
False,
799 key=
"output.L3.current",
800 translation_key=
"output_l3_current",
801 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
802 device_class=SensorDeviceClass.CURRENT,
803 state_class=SensorStateClass.MEASUREMENT,
804 entity_category=EntityCategory.DIAGNOSTIC,
805 entity_registry_enabled_default=
False,
808 key=
"output.voltage",
809 translation_key=
"output_voltage",
810 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
811 device_class=SensorDeviceClass.VOLTAGE,
812 state_class=SensorStateClass.MEASUREMENT,
815 key=
"output.voltage.nominal",
816 translation_key=
"output_voltage_nominal",
817 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
818 device_class=SensorDeviceClass.VOLTAGE,
819 entity_category=EntityCategory.DIAGNOSTIC,
820 entity_registry_enabled_default=
False,
823 key=
"output.L1-N.voltage",
824 translation_key=
"output_l1_n_voltage",
825 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
826 device_class=SensorDeviceClass.VOLTAGE,
827 state_class=SensorStateClass.MEASUREMENT,
828 entity_category=EntityCategory.DIAGNOSTIC,
829 entity_registry_enabled_default=
False,
832 key=
"output.L2-N.voltage",
833 translation_key=
"output_l2_n_voltage",
834 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
835 device_class=SensorDeviceClass.VOLTAGE,
836 state_class=SensorStateClass.MEASUREMENT,
837 entity_category=EntityCategory.DIAGNOSTIC,
838 entity_registry_enabled_default=
False,
841 key=
"output.L3-N.voltage",
842 translation_key=
"output_l3_n_voltage",
843 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
844 device_class=SensorDeviceClass.VOLTAGE,
845 state_class=SensorStateClass.MEASUREMENT,
846 entity_category=EntityCategory.DIAGNOSTIC,
847 entity_registry_enabled_default=
False,
850 key=
"output.frequency",
851 translation_key=
"output_frequency",
852 native_unit_of_measurement=UnitOfFrequency.HERTZ,
853 device_class=SensorDeviceClass.FREQUENCY,
854 state_class=SensorStateClass.MEASUREMENT,
855 entity_category=EntityCategory.DIAGNOSTIC,
856 entity_registry_enabled_default=
False,
859 key=
"output.frequency.nominal",
860 translation_key=
"output_frequency_nominal",
861 native_unit_of_measurement=UnitOfFrequency.HERTZ,
862 device_class=SensorDeviceClass.FREQUENCY,
863 entity_category=EntityCategory.DIAGNOSTIC,
864 entity_registry_enabled_default=
False,
868 translation_key=
"output_phases",
869 entity_category=EntityCategory.DIAGNOSTIC,
870 entity_registry_enabled_default=
False,
874 translation_key=
"output_power",
875 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
876 device_class=SensorDeviceClass.APPARENT_POWER,
877 state_class=SensorStateClass.MEASUREMENT,
878 entity_category=EntityCategory.DIAGNOSTIC,
879 entity_registry_enabled_default=
False,
882 key=
"output.realpower",
883 translation_key=
"output_realpower",
884 native_unit_of_measurement=UnitOfPower.WATT,
885 device_class=SensorDeviceClass.POWER,
886 state_class=SensorStateClass.MEASUREMENT,
887 entity_category=EntityCategory.DIAGNOSTIC,
888 entity_registry_enabled_default=
False,
891 key=
"output.realpower.nominal",
892 translation_key=
"output_realpower_nominal",
893 native_unit_of_measurement=UnitOfPower.WATT,
894 device_class=SensorDeviceClass.POWER,
895 entity_category=EntityCategory.DIAGNOSTIC,
896 entity_registry_enabled_default=
False,
899 key=
"output.L1.realpower",
900 translation_key=
"output_l1_realpower",
901 native_unit_of_measurement=UnitOfPower.WATT,
902 device_class=SensorDeviceClass.POWER,
903 state_class=SensorStateClass.MEASUREMENT,
904 entity_category=EntityCategory.DIAGNOSTIC,
905 entity_registry_enabled_default=
False,
908 key=
"output.L2.realpower",
909 translation_key=
"output_l2_realpower",
910 native_unit_of_measurement=UnitOfPower.WATT,
911 device_class=SensorDeviceClass.POWER,
912 state_class=SensorStateClass.MEASUREMENT,
913 entity_category=EntityCategory.DIAGNOSTIC,
914 entity_registry_enabled_default=
False,
917 key=
"output.L3.realpower",
918 translation_key=
"output_l3_realpower",
919 native_unit_of_measurement=UnitOfPower.WATT,
920 device_class=SensorDeviceClass.POWER,
921 state_class=SensorStateClass.MEASUREMENT,
922 entity_category=EntityCategory.DIAGNOSTIC,
923 entity_registry_enabled_default=
False,
926 key=
"ambient.humidity",
927 translation_key=
"ambient_humidity",
928 native_unit_of_measurement=PERCENTAGE,
929 device_class=SensorDeviceClass.HUMIDITY,
930 state_class=SensorStateClass.MEASUREMENT,
931 entity_category=EntityCategory.DIAGNOSTIC,
934 key=
"ambient.temperature",
935 translation_key=
"ambient_temperature",
936 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
937 device_class=SensorDeviceClass.TEMPERATURE,
938 state_class=SensorStateClass.MEASUREMENT,
939 entity_category=EntityCategory.DIAGNOSTIC,
943 translation_key=
"watts",
944 native_unit_of_measurement=UnitOfPower.WATT,
945 device_class=SensorDeviceClass.POWER,
946 state_class=SensorStateClass.MEASUREMENT,
952 """Return a DeviceInfo object filled with NUT device info."""
953 nut_dev_infos = asdict(data.device_info)
955 info_key: nut_dev_infos[nut_key]
956 for nut_key, info_key
in NUT_DEV_INFO_TO_DEV_INFO.items()
957 if nut_dev_infos[nut_key]
is not None
960 return cast(DeviceInfo, nut_infos)
965 config_entry: NutConfigEntry,
966 async_add_entities: AddEntitiesCallback,
968 """Set up the NUT sensors."""
970 pynut_data = config_entry.runtime_data
971 coordinator = pynut_data.coordinator
972 data = pynut_data.data
973 unique_id = pynut_data.unique_id
974 status = coordinator.data
976 resources = [sensor_id
for sensor_id
in SENSOR_TYPES
if sensor_id
in status]
979 if KEY_STATUS
in resources:
980 resources.append(KEY_STATUS_DISPLAY)
985 SENSOR_TYPES[sensor_type],
989 for sensor_type
in resources
994 """Representation of a sensor entity for NUT status values."""
996 _attr_has_entity_name =
True
1000 coordinator: DataUpdateCoordinator[dict[str, str]],
1001 sensor_description: SensorEntityDescription,
1005 """Initialize the sensor."""
1009 device_name = data.name.title()
1012 identifiers={(DOMAIN, unique_id)},
1019 """Return entity state from ups."""
1020 status = self.coordinator.data
1027 """Return UPS display state."""
1029 return " ".join(STATE_TYPES[state]
for state
in status[KEY_STATUS].split())
1031 return STATE_UNKNOWN
str|None native_value(self)
None __init__(self, DataUpdateCoordinator[dict[str, str]] coordinator, SensorEntityDescription sensor_description, PyNUTData data, str unique_id)
IssData update(pyiss.ISS iss)
DeviceInfo _get_nut_device_info(PyNUTData data)
None async_setup_entry(HomeAssistant hass, NutConfigEntry config_entry, AddEntitiesCallback async_add_entities)
str _format_display_state(dict[str, str] status)