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
@@ -16,7 +16,9 @@ from homeassistant.components.sensor import (
from homeassistant.const import (
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
EntityCategory,
UnitOfElectricCurrent,
UnitOfInformation,
UnitOfPower,
UnitOfTime,
)
from homeassistant.core import HomeAssistant, callback
@@ -98,6 +100,27 @@ SENSORS: tuple[NinstripSensorDescription, ...] = (
entity_category=EntityCategory.DIAGNOSTIC,
value=lambda d: _strip(d, "power_scale"),
),
# 0 mA heisst entweder "zieht gerade nichts" oder "misst gar nicht" -
# aeltere Firmware ohne Shunt meldet ebenfalls 0. Von aussen nicht zu
# unterscheiden, und keine Heuristik dagegen: Schwaeche der Geraete-API.
NinstripSensorDescription(
key="current",
translation_key="current",
device_class=SensorDeviceClass.CURRENT,
native_unit_of_measurement=UnitOfElectricCurrent.MILLIAMPERE,
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC,
value=lambda d: _strip(d, "current_ma"),
),
NinstripSensorDescription(
key="power",
translation_key="power",
device_class=SensorDeviceClass.POWER,
native_unit_of_measurement=UnitOfPower.WATT,
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC,
value=lambda d: _strip(d, "power_w"),
),
# Was bei der letzten Aktualisierung schiefging - leer, solange nichts
# schiefging. Aus der Ferne der einzige Hinweis darauf.
NinstripSensorDescription(