@@ -70,18 +70,46 @@ class MeterData(ComponentData):
7070 """A wrapper class for holding meter data."""
7171
7272 active_power : float
73- """The 3-phase active power, in Watts, represented in the passive sign convention.
74- +ve current means consumption, away from the grid.
75- -ve current means supply into the grid.
73+ """The total active 3-phase AC power, in Watts (W).
74+
75+ Represented in the passive sign convention.
76+
77+ * Positive means consumption from the grid.
78+ * Negative means supply into the grid.
7679 """
7780
7881 active_power_per_phase : tuple [float , float , float ]
79- """The AC active power for phase/line 1,2 and 3 respectively."""
82+ """The per-phase AC active power for phase 1, 2, and 3 respectively, in Watt (W).
83+
84+ Represented in the passive sign convention.
85+
86+ * Positive means consumption from the grid.
87+ * Negative means supply into the grid.
88+ """
89+
90+ reactive_power : float
91+ """The total reactive 3-phase AC power, in Volt-Ampere Reactive (VAr).
92+
93+ * Positive power means capacitive (current leading w.r.t. voltage).
94+ * Negative power means inductive (current lagging w.r.t. voltage).
95+ """
96+
97+ reactive_power_per_phase : tuple [float , float , float ]
98+ """The per-phase AC reactive power, in Volt-Ampere Reactive (VAr).
99+
100+ The provided values are for phase 1, 2, and 3 respectively.
101+
102+ * Positive power means capacitive (current leading w.r.t. voltage).
103+ * Negative power means inductive (current lagging w.r.t. voltage).
104+ """
80105
81106 current_per_phase : tuple [float , float , float ]
82107 """AC current in Amperes (A) for phase/line 1,2 and 3 respectively.
83- +ve current means consumption, away from the grid.
84- -ve current means supply into the grid.
108+
109+ Represented in the passive sign convention.
110+
111+ * Positive means consumption from the grid.
112+ * Negative means supply into the grid.
85113 """
86114
87115 voltage_per_phase : tuple [float , float , float ]
@@ -111,6 +139,12 @@ def from_proto(cls, raw: PbComponentData) -> Self:
111139 raw .meter .data .ac .phase_2 .power_active .value ,
112140 raw .meter .data .ac .phase_3 .power_active .value ,
113141 ),
142+ reactive_power = raw .meter .data .ac .power_reactive .value ,
143+ reactive_power_per_phase = (
144+ raw .meter .data .ac .phase_1 .power_reactive .value ,
145+ raw .meter .data .ac .phase_2 .power_reactive .value ,
146+ raw .meter .data .ac .phase_3 .power_reactive .value ,
147+ ),
114148 current_per_phase = (
115149 raw .meter .data .ac .phase_1 .current .value ,
116150 raw .meter .data .ac .phase_2 .current .value ,
@@ -241,18 +275,46 @@ class InverterData(ComponentData): # pylint: disable=too-many-instance-attribut
241275 """A wrapper class for holding inverter data."""
242276
243277 active_power : float
244- """The 3-phase active power, in Watts, represented in the passive sign convention.
245- +ve current means consumption, away from the grid.
246- -ve current means supply into the grid.
278+ """The total active 3-phase AC power, in Watts (W).
279+
280+ Represented in the passive sign convention.
281+
282+ * Positive means consumption from the grid.
283+ * Negative means supply into the grid.
247284 """
248285
249286 active_power_per_phase : tuple [float , float , float ]
250- """The AC active power for phase/line 1, 2 and 3 respectively."""
287+ """The per-phase AC active power for phase 1, 2, and 3 respectively, in Watt (W).
288+
289+ Represented in the passive sign convention.
290+
291+ * Positive means consumption from the grid.
292+ * Negative means supply into the grid.
293+ """
294+
295+ reactive_power : float
296+ """The total reactive 3-phase AC power, in Volt-Ampere Reactive (VAr).
297+
298+ * Positive power means capacitive (current leading w.r.t. voltage).
299+ * Negative power means inductive (current lagging w.r.t. voltage).
300+ """
301+
302+ reactive_power_per_phase : tuple [float , float , float ]
303+ """The per-phase AC reactive power, in Volt-Ampere Reactive (VAr).
304+
305+ The provided values are for phase 1, 2, and 3 respectively.
306+
307+ * Positive power means capacitive (current leading w.r.t. voltage).
308+ * Negative power means inductive (current lagging w.r.t. voltage).
309+ """
251310
252311 current_per_phase : tuple [float , float , float ]
253312 """AC current in Amperes (A) for phase/line 1, 2 and 3 respectively.
254- +ve current means consumption, away from the grid.
255- -ve current means supply into the grid.
313+
314+ Represented in the passive sign convention.
315+
316+ * Positive means consumption from the grid.
317+ * Negative means supply into the grid.
256318 """
257319
258320 voltage_per_phase : tuple [float , float , float ]
@@ -335,6 +397,12 @@ def from_proto(cls, raw: PbComponentData) -> Self:
335397 raw .inverter .data .ac .phase_2 .power_active .value ,
336398 raw .inverter .data .ac .phase_3 .power_active .value ,
337399 ),
400+ reactive_power = raw .inverter .data .ac .power_reactive .value ,
401+ reactive_power_per_phase = (
402+ raw .inverter .data .ac .phase_1 .power_reactive .value ,
403+ raw .inverter .data .ac .phase_2 .power_reactive .value ,
404+ raw .inverter .data .ac .phase_3 .power_reactive .value ,
405+ ),
338406 current_per_phase = (
339407 raw .inverter .data .ac .phase_1 .current .value ,
340408 raw .inverter .data .ac .phase_2 .current .value ,
@@ -363,18 +431,46 @@ class EVChargerData(ComponentData): # pylint: disable=too-many-instance-attribu
363431 """A wrapper class for holding ev_charger data."""
364432
365433 active_power : float
366- """The 3-phase active power, in Watts, represented in the passive sign convention.
367- +ve current means consumption, away from the grid.
368- -ve current means supply into the grid.
434+ """The total active 3-phase AC power, in Watts (W).
435+
436+ Represented in the passive sign convention.
437+
438+ * Positive means consumption from the grid.
439+ * Negative means supply into the grid.
369440 """
370441
371442 active_power_per_phase : tuple [float , float , float ]
372- """The AC active power for phase/line 1,2 and 3 respectively."""
443+ """The per-phase AC active power for phase 1, 2, and 3 respectively, in Watt (W).
444+
445+ Represented in the passive sign convention.
446+
447+ * Positive means consumption from the grid.
448+ * Negative means supply into the grid.
449+ """
373450
374451 current_per_phase : tuple [float , float , float ]
375452 """AC current in Amperes (A) for phase/line 1,2 and 3 respectively.
376- +ve current means consumption, away from the grid.
377- -ve current means supply into the grid.
453+
454+ Represented in the passive sign convention.
455+
456+ * Positive means consumption from the grid.
457+ * Negative means supply into the grid.
458+ """
459+
460+ reactive_power : float
461+ """The total reactive 3-phase AC power, in Volt-Ampere Reactive (VAr).
462+
463+ * Positive power means capacitive (current leading w.r.t. voltage).
464+ * Negative power means inductive (current lagging w.r.t. voltage).
465+ """
466+
467+ reactive_power_per_phase : tuple [float , float , float ]
468+ """The per-phase AC reactive power, in Volt-Ampere Reactive (VAr).
469+
470+ The provided values are for phase 1, 2, and 3 respectively.
471+
472+ * Positive power means capacitive (current leading w.r.t. voltage).
473+ * Negative power means inductive (current lagging w.r.t. voltage).
378474 """
379475
380476 voltage_per_phase : tuple [float , float , float ]
@@ -455,6 +551,12 @@ def from_proto(cls, raw: PbComponentData) -> Self:
455551 raw .ev_charger .data .ac .phase_2 .power_active .value ,
456552 raw .ev_charger .data .ac .phase_3 .power_active .value ,
457553 ),
554+ reactive_power = raw .ev_charger .data .ac .power_reactive .value ,
555+ reactive_power_per_phase = (
556+ raw .ev_charger .data .ac .phase_1 .power_reactive .value ,
557+ raw .ev_charger .data .ac .phase_2 .power_reactive .value ,
558+ raw .ev_charger .data .ac .phase_3 .power_reactive .value ,
559+ ),
458560 current_per_phase = (
459561 raw .ev_charger .data .ac .phase_1 .current .value ,
460562 raw .ev_charger .data .ac .phase_2 .current .value ,
0 commit comments