feat: erste Fassung der ninstrip-Integration fuer Home Assistant
Auf dem Geruest von ha-ninlight aufgebaut und bewusst parallel gehalten: gleiche Fehlerklassen in api.py, gleicher Coordinator mit Sperre und Fehlertoleranz, gleicher Einrichtungsablauf samt Zeroconf und Reauth. Eigenes Repo statt Erweiterung von ha-ninlight: die Geraete melden sich unter verschiedenen mDNS-Diensten, das Datenmodell unterscheidet sich deutlich (Segmente und Szenen gegen ein einzelnes Licht), und ha-ninlight laeuft produktiv mit vier Lampen - Verzweigungen dort haetten beide Produkte gefaehrdet. Entitaeten: light (Hauptschalter und Helligkeit), select (Szene), button (Neustart), vier Diagnosesensoren. In ha-dev eingebunden und am echten Geraet geprueft: Aus- und Einschalten, Helligkeit 40 Prozent, Szenenwechsel auf Regenbogen - das Geraet meldet jeweils genau das zurueck.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
"""Konstanten der ninstrip-Integration. Bewusst frei von Home-Assistant-Importen."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Final
|
||||
|
||||
DOMAIN: Final = "ninstrip"
|
||||
|
||||
CONF_SCAN_INTERVAL: Final = "scan_interval"
|
||||
|
||||
DEFAULT_PORT: Final = 3333
|
||||
DEFAULT_SCAN_INTERVAL: Final = 30
|
||||
MIN_SCAN_INTERVAL: Final = 10
|
||||
MAX_SCAN_INTERVAL: Final = 300
|
||||
|
||||
# So viele aufeinanderfolgende Fehlversuche werden geschluckt, bevor das
|
||||
# Geraet als nicht verfuegbar gilt. Ein kurzer Aussetzer im WLAN soll nicht
|
||||
# sofort alle Entitaeten ausgrauen.
|
||||
MAX_POLL_FAILURES: Final = 3
|
||||
|
||||
# Die Firmware erlaubt hoechstens 16 Segmente (nl_segments.h) und 512 Pixel.
|
||||
MAX_SEGMENTS: Final = 16
|
||||
MAX_PIXELS: Final = 512
|
||||
# Acht Szenenplaetze (nl_presets.h).
|
||||
MAX_PRESETS: Final = 8
|
||||
Reference in New Issue
Block a user