feat: Strom, Leistung und Strombudget

Zeigt strip.current_ma und strip.power_w aus system/info als Sensoren
und macht max_milliamps aus system/settings ueber ein Zahlenfeld
einstellbar. Schreiben liest wie bei sACN zurueck statt den
geschriebenen Wert anzunehmen.
This commit is contained in:
Michael Sauer
2026-09-23 14:35:50 +02:00
parent ffcbbdfe4a
commit 616515ef77
10 changed files with 179 additions and 1 deletions
+23
View File
@@ -183,6 +183,29 @@ class NinstripCoordinator(DataUpdateCoordinator[NinstripData]):
)
)
async def async_set_strip(self, **fields: Any) -> None:
"""Strip-Einstellungen schreiben und die Antwort des Geraets uebernehmen.
Gleiches Muster wie async_set_sacn: das Geraet antwortet nur mit
{"status": "ok"}, also wird zurueckgelesen statt angenommen.
"""
async def schreiben_und_lesen(client: NinstripClient) -> dict[str, Any]:
await client.set_strip(**fields)
return await client.get_settings()
settings = await self.async_call(schreiben_und_lesen)
self._consecutive_poll_failures = 0
self.async_set_updated_data(
NinstripData(
self.data.state,
self.data.info,
self.data.presets,
self.data.segments,
settings,
)
)
async def async_set_all_segments(self, **fields: Any) -> None:
"""Schreibt dieselben Felder in JEDES Segment und liest zurueck.