Skip to content

Commit 3cff920

Browse files
authored
feat: expose shaper_updated value (#413)
1 parent a676895 commit 3cff920

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

openevsehttp/__main__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,6 +1272,7 @@ def charging_power(self) -> float | None:
12721272
return round(self._status["voltage"] * self._status["amp"], 2)
12731273
return None
12741274

1275+
# Shaper values
12751276
@property
12761277
def shaper_active(self) -> bool | None:
12771278
"""Return if shper is active."""
@@ -1302,6 +1303,14 @@ def shaper_max_power(self) -> int | None:
13021303
return self._status["shaper_max_pwr"]
13031304
return None
13041305

1306+
@property
1307+
def shaper_updated(self) -> bool:
1308+
"""Return shaper updated boolean."""
1309+
if self._status is not None and "shaper_updated" in self._status:
1310+
return self._status["shaper_updated"]
1311+
return False
1312+
1313+
# Vehicle values
13051314
@property
13061315
def vehicle_soc(self) -> int | None:
13071316
"""Return battery level."""

tests/fixtures/v4_json/status-new.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"shaper": 0,
6464
"shaper_live_pwr": 0,
6565
"shaper_cur": 0,
66-
"shaper_updated": false,
66+
"shaper_updated": true,
6767
"service_level": 2,
6868
"limit": false,
6969
"ota_update": 0,

tests/test_main.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1676,7 +1676,7 @@ async def test_get_state_raw(fixture, expected, request):
16761676
("test_charger_broken", False),
16771677
],
16781678
)
1679-
async def test_get_state_raw(fixture, expected, request):
1679+
async def test_get_mqtt_connected(fixture, expected, request):
16801680
"""Test v4 Status reply."""
16811681
charger = request.getfixturevalue(fixture)
16821682
await charger.update()
@@ -2126,3 +2126,21 @@ async def test_async_override_state(
21262126
await test_charger_v2.update()
21272127
await test_charger_v2.async_override_state
21282128
assert "Override state unavailable on older firmware." in caplog.text
2129+
2130+
2131+
@pytest.mark.parametrize(
2132+
"fixture, expected",
2133+
[
2134+
("test_charger", False),
2135+
("test_charger_v2", False),
2136+
("test_charger_broken", False),
2137+
("test_charger_new", True),
2138+
],
2139+
)
2140+
async def test_get_shaper_updated(fixture, expected, request):
2141+
"""Test v4 Status reply."""
2142+
charger = request.getfixturevalue(fixture)
2143+
await charger.update()
2144+
status = charger.shaper_updated
2145+
assert status == expected
2146+
await charger.ws_disconnect()

0 commit comments

Comments
 (0)