# Abnahme an echten Lampen Datum: 2026-09-16. Dev-HA `ha-klyqa-pet-dev` (HA 2026.9.0), Integration aus `~/workspace/ha-ninlight` gemountet, Stand `1026f42`. Geprüft an der **G95 CW** (`ninlight-0a16`, 192.168.2.122, `wifi.source: compiled`). Ausgangs-Firmware `0.3.8-36-gca9bb`. Sichtprüfungen durch Michael, alle Werte zusätzlich per `GET device/state` / `system/info` direkt an der Lampe gegengeprüft. | # | Schritt | Erwartung | Ergebnis | |---|---|---|---| | 1 | Lampe per IP einrichten | Gerätename, Modell, Firmware korrekt | ✅ „Klyqa G95 Vintage CW/WW 0a16“, `g95_cw`, `0.3.8-36-gca9bb`, MAC-Verknüpfung; Token-Feld vorbelegt; Reparaturhinweis `default_token` erscheint | | 2 | GU10 RGB: Farbe, Farbtemperatur | Lampe folgt | ⏸ nicht geprüft – keine GU10 zur Hand; RGB-Pfad durch Tests abgedeckt | | 3 | G95: an/aus, Helligkeit, 2000/5000 K, Übergang | kein Farbmodus, Grenzen stimmen | ✅ nur `color_temp`, 2000–5000 K; HA 1 → Lampe 1 % („leuchtet sehr schwach“); 2000 → 5000 K deutlich sichtbar; 5-s-Übergang weich mit ganz leichten Stufen (Fade-Engine der Firmware) | | 4 | Jede Konfigurations-Entität schreiben | Lampe zeigt den Wert | ✅ fade_in, fade_out, transition_default, power_on_behaviour, wake_on_change geschrieben und zurückgesetzt; ein POST lief in einen Timeout und wurde als Fehler gemeldet (nicht verschluckt), Wiederholung erfolgreich | | 5 | Neustart-Taste | Lampe startet neu, kommt zurück | ✅ uptime 22583 → 3; nach ~4 s zurück; in HA durchgehend verfügbar (Toleranz, siehe unten) | | 6 | Lampe stromlos, dann wieder an | nicht verfügbar, kommt zurück | ✅ „nicht verfügbar“ nach 110 s (3 Abfragen), genau eine Fehlerzeile im Log; nach Strom an in 18 s zurück | | 7 | Token an der Lampe ändern | Neuanmeldung erscheint | ✅ über Neustart-Taste ausgelöst (401 → „Die Lampe hat das Token abgelehnt“, kein Neustart); Flow weist falsches Token ab (`invalid_auth`), mit richtigem `reauth_successful`; Token zurückgesetzt | | 8 | Nur Image **ohne** Zugangsdaten (`0.3.8-38-gd3cc9`) | **kein** Angebot, Hinweis | ✅ nicht angeboten; Hinweis `wifi_guard` mit version/device_type/ssid; verschwindet, wenn die Datei entfernt wird | | 9 | Image **mit** Zugangsdaten `0.3.8-47-g71a57` | Update, Lampe bleibt im WLAN | ✅ nach Freigabe durch Michael installiert; 16 s bis zur neuen Version; gleiche IP, Einstellungen erhalten, schaltbar; Geräteregister aktualisiert; URL mit Port (`:8124`) von der Lampe akzeptiert | | 10 | Neueres GU10-Image im Ordner | nicht angeboten | ✅ weder Angebot noch Hinweis | ## Befunde der Abnahme 1. **Ein einzelner Poll-Timeout machte die Lampe bis zu 30 s unbedienbar**, HA verwarf Schaltbefehle nur mit Log-Warnung (REST 200). Behoben in `1026f42`: erst 3 Fehlschläge in Folge → nicht verfügbar; erfolgreiche Schreibvorgänge machen sofort wieder verfügbar; fehlschlagende Schreibvorgänge melden einen Fehler. 2. **Spec §2 lag beim Auth-Verhalten falsch:** `device/state` (GET **und POST**) ist ohne `auth_all` offen (gemessen, `nl_api.c:395-402`). Token verlangen nur `system/settings` und `system/command`. Das Token schützt also vor Umkonfigurieren/Neustart/Umflashen, **nicht** vor Schalten. Reparaturhinweis-Text und README behaupten mehr → Korrektur ausstehend. 3. **Übergänge** zeigen bei niedriger Helligkeit ganz leichte Stufen – Fade-Engine der Firmware, nicht die Integration. 4. **Testumgebung:** Docker Desktop leitete Port 8123 nach einem Container-Neustart nur noch über IPv6 (`localhost`) weiter, nicht über `127.0.0.1` oder die LAN-IP. Für Schritt 9 lief eine Test-Weiterleitung `192.168.1.131:8124`. Die Timeouts traten bei Lastmittel 300–550 auf dem Mac auf (auch bei einem Klyqa-Gerät zeitgleich). 5. `last_ota_error` ohne Fehler wird als „unbekannt“ angezeigt (Ruling: HA-üblich).