Skip to content

Commit 474bb6f

Browse files
committed
v1.0.7: add Battery Charge Power and Battery Discharge Power sensors
1 parent a0a9220 commit 474bb6f

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

custom_components/solarmanager/sensor.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,24 @@ class SolarManagerSensorDescription(SensorEntityDescription):
116116
state_class=SensorStateClass.MEASUREMENT,
117117
icon="mdi:home-circle",
118118
),
119+
# Derived: battery charge power (positive currentBatteryChargeDischarge = charging)
120+
SolarManagerSensorDescription(
121+
key="batteryChargePower",
122+
name="Battery Charge Power",
123+
native_unit_of_measurement=UnitOfPower.WATT,
124+
device_class=SensorDeviceClass.POWER,
125+
state_class=SensorStateClass.MEASUREMENT,
126+
icon="mdi:battery-arrow-up",
127+
),
128+
# Derived: battery discharge power (negative currentBatteryChargeDischarge = discharging)
129+
SolarManagerSensorDescription(
130+
key="batteryDischargePower",
131+
name="Battery Discharge Power",
132+
native_unit_of_measurement=UnitOfPower.WATT,
133+
device_class=SensorDeviceClass.POWER,
134+
state_class=SensorStateClass.MEASUREMENT,
135+
icon="mdi:battery-arrow-down",
136+
),
119137
)
120138

121139
# ---------------------------------------------------------------------------
@@ -447,6 +465,12 @@ def _update_value(self) -> None:
447465
pv = data.get("currentPvGeneration", 0) or 0
448466
grid_export = max(0, -(data.get("currentGridPower", 0) or 0))
449467
self._attr_native_value = max(0, pv - grid_export)
468+
elif self._key == "batteryChargePower":
469+
batt = data.get("currentBatteryChargeDischarge", 0) or 0
470+
self._attr_native_value = max(0, batt)
471+
elif self._key == "batteryDischargePower":
472+
batt = data.get("currentBatteryChargeDischarge", 0) or 0
473+
self._attr_native_value = max(0, -batt)
450474
else:
451475
self._attr_native_value = data.get(self._key)
452476

0 commit comments

Comments
 (0)