1 """SMA Solar Webconnect interface."""
3 from __future__
import annotations
5 from typing
import TYPE_CHECKING
12 SensorEntityDescription,
20 UnitOfElectricCurrent,
21 UnitOfElectricPotential,
34 DataUpdateCoordinator,
37 from .const
import DOMAIN, PYSMA_COORDINATOR, PYSMA_DEVICE_INFO, PYSMA_SENSORS
39 SENSOR_ENTITIES: dict[str, SensorEntityDescription] = {
43 entity_category=EntityCategory.DIAGNOSTIC,
46 key=
"operating_status_general",
47 name=
"Operating Status General",
48 entity_registry_enabled_default=
False,
49 entity_category=EntityCategory.DIAGNOSTIC,
52 key=
"inverter_condition",
53 name=
"Inverter Condition",
54 entity_registry_enabled_default=
False,
55 entity_category=EntityCategory.DIAGNOSTIC,
58 key=
"inverter_system_init",
59 name=
"Inverter System Init",
60 entity_registry_enabled_default=
False,
61 entity_category=EntityCategory.DIAGNOSTIC,
64 key=
"grid_connection_status",
65 name=
"Grid Connection Status",
66 entity_registry_enabled_default=
False,
67 entity_category=EntityCategory.DIAGNOSTIC,
70 key=
"grid_relay_status",
71 name=
"Grid Relay Status",
72 entity_registry_enabled_default=
False,
73 entity_category=EntityCategory.DIAGNOSTIC,
78 native_unit_of_measurement=UnitOfPower.WATT,
79 state_class=SensorStateClass.MEASUREMENT,
80 device_class=SensorDeviceClass.POWER,
85 native_unit_of_measurement=UnitOfPower.WATT,
86 state_class=SensorStateClass.MEASUREMENT,
87 device_class=SensorDeviceClass.POWER,
92 native_unit_of_measurement=UnitOfPower.WATT,
93 state_class=SensorStateClass.MEASUREMENT,
94 device_class=SensorDeviceClass.POWER,
95 entity_registry_enabled_default=
False,
100 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
101 state_class=SensorStateClass.MEASUREMENT,
102 device_class=SensorDeviceClass.VOLTAGE,
103 entity_registry_enabled_default=
False,
108 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
109 state_class=SensorStateClass.MEASUREMENT,
110 device_class=SensorDeviceClass.VOLTAGE,
111 entity_registry_enabled_default=
False,
116 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
117 state_class=SensorStateClass.MEASUREMENT,
118 device_class=SensorDeviceClass.VOLTAGE,
119 entity_registry_enabled_default=
False,
124 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
125 state_class=SensorStateClass.MEASUREMENT,
126 device_class=SensorDeviceClass.CURRENT,
131 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
132 state_class=SensorStateClass.MEASUREMENT,
133 device_class=SensorDeviceClass.CURRENT,
138 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
139 state_class=SensorStateClass.MEASUREMENT,
140 device_class=SensorDeviceClass.CURRENT,
141 entity_registry_enabled_default=
False,
144 key=
"pv_isolation_resistance",
145 name=
"PV Isolation Resistance",
146 native_unit_of_measurement=
"kOhms",
147 state_class=SensorStateClass.MEASUREMENT,
148 entity_registry_enabled_default=
False,
151 key=
"insulation_residual_current",
152 name=
"Insulation Residual Current",
153 native_unit_of_measurement=UnitOfElectricCurrent.MILLIAMPERE,
154 state_class=SensorStateClass.MEASUREMENT,
155 device_class=SensorDeviceClass.CURRENT,
156 entity_registry_enabled_default=
False,
161 native_unit_of_measurement=UnitOfPower.WATT,
162 state_class=SensorStateClass.MEASUREMENT,
163 device_class=SensorDeviceClass.POWER,
168 native_unit_of_measurement=UnitOfPower.WATT,
169 state_class=SensorStateClass.MEASUREMENT,
170 device_class=SensorDeviceClass.POWER,
175 native_unit_of_measurement=UnitOfFrequency.HERTZ,
176 state_class=SensorStateClass.MEASUREMENT,
177 device_class=SensorDeviceClass.FREQUENCY,
178 entity_registry_enabled_default=
False,
183 native_unit_of_measurement=UnitOfPower.WATT,
184 state_class=SensorStateClass.MEASUREMENT,
185 device_class=SensorDeviceClass.POWER,
186 entity_registry_enabled_default=
False,
191 native_unit_of_measurement=UnitOfPower.WATT,
192 state_class=SensorStateClass.MEASUREMENT,
193 device_class=SensorDeviceClass.POWER,
194 entity_registry_enabled_default=
False,
199 native_unit_of_measurement=UnitOfPower.WATT,
200 state_class=SensorStateClass.MEASUREMENT,
201 device_class=SensorDeviceClass.POWER,
202 entity_registry_enabled_default=
False,
205 key=
"grid_reactive_power",
206 name=
"Grid Reactive Power",
207 native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
208 state_class=SensorStateClass.MEASUREMENT,
209 device_class=SensorDeviceClass.REACTIVE_POWER,
210 entity_registry_enabled_default=
False,
213 key=
"grid_reactive_power_l1",
214 name=
"Grid Reactive Power L1",
215 native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
216 state_class=SensorStateClass.MEASUREMENT,
217 device_class=SensorDeviceClass.REACTIVE_POWER,
218 entity_registry_enabled_default=
False,
221 key=
"grid_reactive_power_l2",
222 name=
"Grid Reactive Power L2",
223 native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
224 state_class=SensorStateClass.MEASUREMENT,
225 device_class=SensorDeviceClass.REACTIVE_POWER,
226 entity_registry_enabled_default=
False,
229 key=
"grid_reactive_power_l3",
230 name=
"Grid Reactive Power L3",
231 native_unit_of_measurement=UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
232 state_class=SensorStateClass.MEASUREMENT,
233 device_class=SensorDeviceClass.REACTIVE_POWER,
234 entity_registry_enabled_default=
False,
237 key=
"grid_apparent_power",
238 name=
"Grid Apparent Power",
239 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
240 state_class=SensorStateClass.MEASUREMENT,
241 device_class=SensorDeviceClass.APPARENT_POWER,
242 entity_registry_enabled_default=
False,
245 key=
"grid_apparent_power_l1",
246 name=
"Grid Apparent Power L1",
247 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
248 state_class=SensorStateClass.MEASUREMENT,
249 device_class=SensorDeviceClass.APPARENT_POWER,
250 entity_registry_enabled_default=
False,
253 key=
"grid_apparent_power_l2",
254 name=
"Grid Apparent Power L2",
255 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
256 state_class=SensorStateClass.MEASUREMENT,
257 device_class=SensorDeviceClass.APPARENT_POWER,
258 entity_registry_enabled_default=
False,
261 key=
"grid_apparent_power_l3",
262 name=
"Grid Apparent Power L3",
263 native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
264 state_class=SensorStateClass.MEASUREMENT,
265 device_class=SensorDeviceClass.APPARENT_POWER,
266 entity_registry_enabled_default=
False,
269 key=
"grid_power_factor",
270 name=
"Grid Power Factor",
271 state_class=SensorStateClass.MEASUREMENT,
272 device_class=SensorDeviceClass.POWER_FACTOR,
273 entity_registry_enabled_default=
False,
276 key=
"grid_power_factor_excitation",
277 name=
"Grid Power Factor Excitation",
278 entity_registry_enabled_default=
False,
279 entity_category=EntityCategory.DIAGNOSTIC,
284 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
285 state_class=SensorStateClass.MEASUREMENT,
286 device_class=SensorDeviceClass.CURRENT,
287 entity_registry_enabled_default=
False,
292 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
293 state_class=SensorStateClass.MEASUREMENT,
294 device_class=SensorDeviceClass.CURRENT,
295 entity_registry_enabled_default=
False,
300 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
301 state_class=SensorStateClass.MEASUREMENT,
302 device_class=SensorDeviceClass.CURRENT,
303 entity_registry_enabled_default=
False,
307 name=
"Current Total",
308 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
309 state_class=SensorStateClass.MEASUREMENT,
310 device_class=SensorDeviceClass.CURRENT,
315 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
316 state_class=SensorStateClass.MEASUREMENT,
317 device_class=SensorDeviceClass.VOLTAGE,
318 entity_registry_enabled_default=
False,
323 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
324 state_class=SensorStateClass.MEASUREMENT,
325 device_class=SensorDeviceClass.VOLTAGE,
326 entity_registry_enabled_default=
False,
331 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
332 state_class=SensorStateClass.MEASUREMENT,
333 device_class=SensorDeviceClass.VOLTAGE,
334 entity_registry_enabled_default=
False,
339 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
340 state_class=SensorStateClass.TOTAL_INCREASING,
341 device_class=SensorDeviceClass.ENERGY,
346 native_unit_of_measurement=UnitOfEnergy.WATT_HOUR,
347 state_class=SensorStateClass.TOTAL_INCREASING,
348 device_class=SensorDeviceClass.ENERGY,
351 key=
"metering_power_supplied",
352 name=
"Metering Power Supplied",
353 native_unit_of_measurement=UnitOfPower.WATT,
354 state_class=SensorStateClass.MEASUREMENT,
355 device_class=SensorDeviceClass.POWER,
358 key=
"metering_power_absorbed",
359 name=
"Metering Power Absorbed",
360 native_unit_of_measurement=UnitOfPower.WATT,
361 state_class=SensorStateClass.MEASUREMENT,
362 device_class=SensorDeviceClass.POWER,
365 key=
"metering_frequency",
366 name=
"Metering Frequency",
367 native_unit_of_measurement=UnitOfFrequency.HERTZ,
368 state_class=SensorStateClass.MEASUREMENT,
369 device_class=SensorDeviceClass.FREQUENCY,
372 key=
"metering_total_yield",
373 name=
"Metering Total Yield",
374 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
375 state_class=SensorStateClass.TOTAL_INCREASING,
376 device_class=SensorDeviceClass.ENERGY,
379 key=
"metering_total_absorbed",
380 name=
"Metering Total Absorbed",
381 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
382 state_class=SensorStateClass.TOTAL_INCREASING,
383 device_class=SensorDeviceClass.ENERGY,
386 key=
"metering_current_l1",
387 name=
"Metering Current L1",
388 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
389 state_class=SensorStateClass.MEASUREMENT,
390 device_class=SensorDeviceClass.CURRENT,
393 key=
"metering_current_l2",
394 name=
"Metering Current L2",
395 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
396 state_class=SensorStateClass.MEASUREMENT,
397 device_class=SensorDeviceClass.CURRENT,
400 key=
"metering_current_l3",
401 name=
"Metering Current L3",
402 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
403 state_class=SensorStateClass.MEASUREMENT,
404 device_class=SensorDeviceClass.CURRENT,
407 key=
"metering_voltage_l1",
408 name=
"Metering Voltage L1",
409 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
410 state_class=SensorStateClass.MEASUREMENT,
411 device_class=SensorDeviceClass.VOLTAGE,
412 entity_registry_enabled_default=
False,
415 key=
"metering_voltage_l2",
416 name=
"Metering Voltage L2",
417 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
418 state_class=SensorStateClass.MEASUREMENT,
419 device_class=SensorDeviceClass.VOLTAGE,
420 entity_registry_enabled_default=
False,
423 key=
"metering_voltage_l3",
424 name=
"Metering Voltage L3",
425 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
426 state_class=SensorStateClass.MEASUREMENT,
427 device_class=SensorDeviceClass.VOLTAGE,
428 entity_registry_enabled_default=
False,
431 key=
"metering_active_power_feed_l1",
432 name=
"Metering Active Power Feed L1",
433 native_unit_of_measurement=UnitOfPower.WATT,
434 state_class=SensorStateClass.MEASUREMENT,
435 device_class=SensorDeviceClass.POWER,
438 key=
"metering_active_power_feed_l2",
439 name=
"Metering Active Power Feed L2",
440 native_unit_of_measurement=UnitOfPower.WATT,
441 state_class=SensorStateClass.MEASUREMENT,
442 device_class=SensorDeviceClass.POWER,
445 key=
"metering_active_power_feed_l3",
446 name=
"Metering Active Power Feed L3",
447 native_unit_of_measurement=UnitOfPower.WATT,
448 state_class=SensorStateClass.MEASUREMENT,
449 device_class=SensorDeviceClass.POWER,
452 key=
"metering_active_power_draw_l1",
453 name=
"Metering Active Power Draw L1",
454 native_unit_of_measurement=UnitOfPower.WATT,
455 state_class=SensorStateClass.MEASUREMENT,
456 device_class=SensorDeviceClass.POWER,
459 key=
"metering_active_power_draw_l2",
460 name=
"Metering Active Power Draw L2",
461 native_unit_of_measurement=UnitOfPower.WATT,
462 state_class=SensorStateClass.MEASUREMENT,
463 device_class=SensorDeviceClass.POWER,
466 key=
"metering_active_power_draw_l3",
467 name=
"Metering Active Power Draw L3",
468 native_unit_of_measurement=UnitOfPower.WATT,
469 state_class=SensorStateClass.MEASUREMENT,
470 device_class=SensorDeviceClass.POWER,
473 key=
"metering_current_consumption",
474 name=
"Metering Current Consumption",
475 native_unit_of_measurement=UnitOfPower.WATT,
476 state_class=SensorStateClass.MEASUREMENT,
477 device_class=SensorDeviceClass.POWER,
478 entity_registry_enabled_default=
False,
481 key=
"metering_total_consumption",
482 name=
"Metering Total Consumption",
483 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
484 state_class=SensorStateClass.TOTAL_INCREASING,
485 device_class=SensorDeviceClass.ENERGY,
486 entity_registry_enabled_default=
False,
491 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
492 state_class=SensorStateClass.TOTAL_INCREASING,
493 device_class=SensorDeviceClass.ENERGY,
497 name=
"Secure Power Supply Voltage",
498 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
499 state_class=SensorStateClass.MEASUREMENT,
500 device_class=SensorDeviceClass.VOLTAGE,
501 entity_registry_enabled_default=
False,
505 name=
"Secure Power Supply Current",
506 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
507 state_class=SensorStateClass.MEASUREMENT,
508 device_class=SensorDeviceClass.CURRENT,
509 entity_registry_enabled_default=
False,
513 name=
"Secure Power Supply Power",
514 native_unit_of_measurement=UnitOfPower.WATT,
515 state_class=SensorStateClass.MEASUREMENT,
516 device_class=SensorDeviceClass.POWER,
517 entity_registry_enabled_default=
False,
520 key=
"optimizer_power",
521 name=
"Optimizer Power",
522 native_unit_of_measurement=UnitOfPower.WATT,
523 state_class=SensorStateClass.MEASUREMENT,
524 device_class=SensorDeviceClass.POWER,
527 key=
"optimizer_current",
528 name=
"Optimizer Current",
529 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
530 state_class=SensorStateClass.MEASUREMENT,
531 device_class=SensorDeviceClass.CURRENT,
532 entity_registry_enabled_default=
False,
535 key=
"optimizer_voltage",
536 name=
"Optimizer Voltage",
537 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
538 state_class=SensorStateClass.MEASUREMENT,
539 device_class=SensorDeviceClass.VOLTAGE,
540 entity_registry_enabled_default=
False,
543 key=
"optimizer_temp",
544 name=
"Optimizer Temp",
545 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
546 state_class=SensorStateClass.MEASUREMENT,
547 device_class=SensorDeviceClass.TEMPERATURE,
548 entity_registry_enabled_default=
False,
551 key=
"battery_soc_total",
552 name=
"Battery SOC Total",
553 native_unit_of_measurement=PERCENTAGE,
554 state_class=SensorStateClass.MEASUREMENT,
555 device_class=SensorDeviceClass.BATTERY,
559 name=
"Battery SOC A",
560 native_unit_of_measurement=PERCENTAGE,
561 state_class=SensorStateClass.MEASUREMENT,
562 device_class=SensorDeviceClass.BATTERY,
563 entity_registry_enabled_default=
False,
567 name=
"Battery SOC B",
568 native_unit_of_measurement=PERCENTAGE,
569 state_class=SensorStateClass.MEASUREMENT,
570 device_class=SensorDeviceClass.BATTERY,
571 entity_registry_enabled_default=
False,
575 name=
"Battery SOC C",
576 native_unit_of_measurement=PERCENTAGE,
577 state_class=SensorStateClass.MEASUREMENT,
578 device_class=SensorDeviceClass.BATTERY,
579 entity_registry_enabled_default=
False,
582 key=
"battery_voltage_a",
583 name=
"Battery Voltage A",
584 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
585 state_class=SensorStateClass.MEASUREMENT,
586 device_class=SensorDeviceClass.VOLTAGE,
587 entity_registry_enabled_default=
False,
590 key=
"battery_voltage_b",
591 name=
"Battery Voltage B",
592 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
593 state_class=SensorStateClass.MEASUREMENT,
594 device_class=SensorDeviceClass.VOLTAGE,
595 entity_registry_enabled_default=
False,
598 key=
"battery_voltage_c",
599 name=
"Battery Voltage C",
600 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
601 state_class=SensorStateClass.MEASUREMENT,
602 device_class=SensorDeviceClass.VOLTAGE,
603 entity_registry_enabled_default=
False,
606 key=
"battery_current_a",
607 name=
"Battery Current A",
608 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
609 state_class=SensorStateClass.MEASUREMENT,
610 device_class=SensorDeviceClass.CURRENT,
613 key=
"battery_current_b",
614 name=
"Battery Current B",
615 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
616 state_class=SensorStateClass.MEASUREMENT,
617 device_class=SensorDeviceClass.CURRENT,
620 key=
"battery_current_c",
621 name=
"Battery Current C",
622 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
623 state_class=SensorStateClass.MEASUREMENT,
624 device_class=SensorDeviceClass.CURRENT,
627 key=
"battery_temp_a",
628 name=
"Battery Temp A",
629 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
630 state_class=SensorStateClass.MEASUREMENT,
631 device_class=SensorDeviceClass.TEMPERATURE,
634 key=
"battery_temp_b",
635 name=
"Battery Temp B",
636 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
637 state_class=SensorStateClass.MEASUREMENT,
638 device_class=SensorDeviceClass.TEMPERATURE,
641 key=
"battery_temp_c",
642 name=
"Battery Temp C",
643 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
644 state_class=SensorStateClass.MEASUREMENT,
645 device_class=SensorDeviceClass.TEMPERATURE,
648 key=
"battery_status_operating_mode",
649 name=
"Battery Status Operating Mode",
652 key=
"battery_capacity_total",
653 name=
"Battery Capacity Total",
654 native_unit_of_measurement=PERCENTAGE,
657 key=
"battery_capacity_a",
658 name=
"Battery Capacity A",
659 native_unit_of_measurement=PERCENTAGE,
660 entity_registry_enabled_default=
False,
663 key=
"battery_capacity_b",
664 name=
"Battery Capacity B",
665 native_unit_of_measurement=PERCENTAGE,
666 entity_registry_enabled_default=
False,
669 key=
"battery_capacity_c",
670 name=
"Battery Capacity C",
671 native_unit_of_measurement=PERCENTAGE,
672 entity_registry_enabled_default=
False,
675 key=
"battery_charging_voltage_a",
676 name=
"Battery Charging Voltage A",
677 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
678 state_class=SensorStateClass.MEASUREMENT,
679 device_class=SensorDeviceClass.VOLTAGE,
680 entity_registry_enabled_default=
False,
683 key=
"battery_charging_voltage_b",
684 name=
"Battery Charging Voltage B",
685 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
686 state_class=SensorStateClass.MEASUREMENT,
687 device_class=SensorDeviceClass.VOLTAGE,
688 entity_registry_enabled_default=
False,
691 key=
"battery_charging_voltage_c",
692 name=
"Battery Charging Voltage C",
693 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
694 state_class=SensorStateClass.MEASUREMENT,
695 device_class=SensorDeviceClass.VOLTAGE,
696 entity_registry_enabled_default=
False,
699 key=
"battery_power_charge_total",
700 name=
"Battery Power Charge Total",
701 native_unit_of_measurement=UnitOfPower.WATT,
702 state_class=SensorStateClass.MEASUREMENT,
703 device_class=SensorDeviceClass.POWER,
706 key=
"battery_power_charge_a",
707 name=
"Battery Power Charge A",
708 native_unit_of_measurement=UnitOfPower.WATT,
709 state_class=SensorStateClass.MEASUREMENT,
710 device_class=SensorDeviceClass.POWER,
711 entity_registry_enabled_default=
False,
714 key=
"battery_power_charge_b",
715 name=
"Battery Power Charge B",
716 native_unit_of_measurement=UnitOfPower.WATT,
717 state_class=SensorStateClass.MEASUREMENT,
718 device_class=SensorDeviceClass.POWER,
719 entity_registry_enabled_default=
False,
722 key=
"battery_power_charge_c",
723 name=
"Battery Power Charge C",
724 native_unit_of_measurement=UnitOfPower.WATT,
725 state_class=SensorStateClass.MEASUREMENT,
726 device_class=SensorDeviceClass.POWER,
727 entity_registry_enabled_default=
False,
730 key=
"battery_charge_total",
731 name=
"Battery Charge Total",
732 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
733 state_class=SensorStateClass.TOTAL_INCREASING,
734 device_class=SensorDeviceClass.ENERGY,
737 key=
"battery_charge_a",
738 name=
"Battery Charge A",
739 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
740 state_class=SensorStateClass.TOTAL_INCREASING,
741 device_class=SensorDeviceClass.ENERGY,
742 entity_registry_enabled_default=
False,
745 key=
"battery_charge_b",
746 name=
"Battery Charge B",
747 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
748 state_class=SensorStateClass.TOTAL_INCREASING,
749 device_class=SensorDeviceClass.ENERGY,
750 entity_registry_enabled_default=
False,
753 key=
"battery_charge_c",
754 name=
"Battery Charge C",
755 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
756 state_class=SensorStateClass.TOTAL_INCREASING,
757 device_class=SensorDeviceClass.ENERGY,
758 entity_registry_enabled_default=
False,
761 key=
"battery_power_discharge_total",
762 name=
"Battery Power Discharge Total",
763 native_unit_of_measurement=UnitOfPower.WATT,
764 state_class=SensorStateClass.MEASUREMENT,
765 device_class=SensorDeviceClass.POWER,
768 key=
"battery_power_discharge_a",
769 name=
"Battery Power Discharge A",
770 native_unit_of_measurement=UnitOfPower.WATT,
771 state_class=SensorStateClass.MEASUREMENT,
772 device_class=SensorDeviceClass.POWER,
773 entity_registry_enabled_default=
False,
776 key=
"battery_power_discharge_b",
777 name=
"Battery Power Discharge B",
778 native_unit_of_measurement=UnitOfPower.WATT,
779 state_class=SensorStateClass.MEASUREMENT,
780 device_class=SensorDeviceClass.POWER,
781 entity_registry_enabled_default=
False,
784 key=
"battery_power_discharge_c",
785 name=
"Battery Power Discharge C",
786 native_unit_of_measurement=UnitOfPower.WATT,
787 state_class=SensorStateClass.MEASUREMENT,
788 device_class=SensorDeviceClass.POWER,
789 entity_registry_enabled_default=
False,
792 key=
"battery_discharge_total",
793 name=
"Battery Discharge Total",
794 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
795 state_class=SensorStateClass.TOTAL_INCREASING,
796 device_class=SensorDeviceClass.ENERGY,
799 key=
"battery_discharge_a",
800 name=
"Battery Discharge A",
801 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
802 state_class=SensorStateClass.TOTAL_INCREASING,
803 device_class=SensorDeviceClass.ENERGY,
804 entity_registry_enabled_default=
False,
807 key=
"battery_discharge_b",
808 name=
"Battery Discharge B",
809 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
810 state_class=SensorStateClass.TOTAL_INCREASING,
811 device_class=SensorDeviceClass.ENERGY,
812 entity_registry_enabled_default=
False,
815 key=
"battery_discharge_c",
816 name=
"Battery Discharge C",
817 native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
818 state_class=SensorStateClass.TOTAL_INCREASING,
819 device_class=SensorDeviceClass.ENERGY,
820 entity_registry_enabled_default=
False,
823 key=
"inverter_power_limit",
824 name=
"Inverter Power Limit",
825 native_unit_of_measurement=UnitOfPower.WATT,
826 state_class=SensorStateClass.MEASUREMENT,
827 device_class=SensorDeviceClass.POWER,
834 config_entry: ConfigEntry,
835 async_add_entities: AddEntitiesCallback,
837 """Set up SMA sensors."""
838 sma_data = hass.data[DOMAIN][config_entry.entry_id]
840 coordinator = sma_data[PYSMA_COORDINATOR]
841 used_sensors = sma_data[PYSMA_SENSORS]
842 device_info = sma_data[PYSMA_DEVICE_INFO]
845 assert config_entry.unique_id
850 config_entry.unique_id,
851 SENSOR_ENTITIES.get(sensor.name),
855 for sensor
in used_sensors
860 """Representation of a SMA sensor."""
864 coordinator: DataUpdateCoordinator,
865 config_entry_unique_id: str,
866 description: SensorEntityDescription |
None,
867 device_info: DeviceInfo,
868 pysma_sensor: pysma.sensor.Sensor,
870 """Initialize the sensor."""
872 if description
is not None:
881 f
"{config_entry_unique_id}-{pysma_sensor.key}_{pysma_sensor.key_idx}"
886 self.
_sensor_sensor.enabled =
False
890 """Return the name of the sensor prefixed with the device name."""
896 return f
"{name_prefix} {super().name}"
900 """Return the state of the sensor."""
901 return self.
_sensor_sensor.value
904 """Run when entity about to be added to hass."""
906 self.
_sensor_sensor.enabled =
True
909 """Run when entity will be removed from hass."""
911 self.
_sensor_sensor.enabled =
False
None async_added_to_hass(self)
None async_will_remove_from_hass(self)
None __init__(self, DataUpdateCoordinator coordinator, str config_entry_unique_id, SensorEntityDescription|None description, DeviceInfo device_info, pysma.sensor.Sensor pysma_sensor)
StateType native_value(self)
web.Response get(self, web.Request request, str config_key)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)