feat: sACN-Einstellungen und -Status als Entitaeten

Die Firmware kann sACN/E1.31 - jetzt auch in Home Assistant, aufgebaut wie in
ha-ninlight: Schalter fuer den Empfang, Zahlen fuer Universe und Startslot,
Auswahl fuer das Verhalten nach Stromende, zwei Diagnose-Binaersensoren.

Die Einstellungen liegen hinter system/settings, der Koordinator liest sie
deshalb mit - eine vierte Anfrage je Zyklus. Nach dem Schreiben wird
zurueckgelesen statt angenommen, wie in ha-ninlight.

Zwei Unterschiede zu ninlight:
- Kein Layout-Feld: ninstrip nutzt fest drei Kanaele je Pixel.
- Der Startslot gilt in JEDEM belegten Universe. Die Obergrenze ist deshalb
  513 minus Kanaele je Pixel, also 510 - ein festes 512 boete Werte an, bei
  denen kein einziges Pixel mehr ins Universe passt.

Aeltere Firmware ohne sacn-Block: die Entitaeten entstehen trotzdem und
melden sich nicht verfuegbar, bis ein Update kommt.

In ha-dev an der Stehlampe geprueft: Universe, Startslot, on_timeout und der
Schalter kommen jeweils auf dem Geraet an; der Aktiv-Sensor steht waehrend
eines Stroms auf an, danach auf aus. 511 als Startslot weist Home Assistant
selbst ab ("outside valid range 1 - 510"). Einstellungen der Lampe danach
zurueckgestellt.
This commit is contained in:
ninharp
2026-09-22 18:09:40 +02:00
parent 8c9a9210d9
commit d0a9487805
12 changed files with 418 additions and 5 deletions
@@ -49,6 +49,13 @@
"select": {
"preset": {
"name": "Scene"
},
"sacn_on_timeout": {
"name": "sACN on stream end",
"state": {
"release": "Return to previous image",
"hold": "Hold last image"
}
}
},
"button": {
@@ -69,6 +76,27 @@
"power_scale": {
"name": "Power limiting"
}
},
"switch": {
"sacn_enabled": {
"name": "sACN receiver"
}
},
"number": {
"sacn_universe": {
"name": "sACN universe"
},
"sacn_start_slot": {
"name": "sACN start slot"
}
},
"binary_sensor": {
"sacn_active": {
"name": "sACN active"
},
"sacn_multicast": {
"name": "sACN multicast joined"
}
}
},
"exceptions": {