Replace light presets with shared hue, temperature and brightness sliders
This commit is contained in:
@@ -52,7 +52,11 @@ python -m unittest discover -s tests -p 'test_*.py'
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_cyd_ui.cpp -o /tmp/test_cyd_ui
|
||||
/tmp/test_cyd_ui
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_touch_filter.cpp -o /tmp/test_touch_filter
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_light_controls.cpp -o /tmp/test_light_controls
|
||||
/tmp/test_light_controls
|
||||
/tmp/test_touch_filter
|
||||
c++ -std=c++17 -Wall -Wextra -pedantic tests/test_light_controls.cpp -o /tmp/test_light_controls
|
||||
/tmp/test_light_controls
|
||||
python -m esphome config device.yaml
|
||||
python -m esphome compile device.yaml
|
||||
```
|
||||
@@ -79,3 +83,16 @@ Lokale profielbestanden veilig bewaard:
|
||||
Geef de eigenaar de drie lokale YAML-bestanden en de meetbestanden via een
|
||||
passend privé-kanaal. Gebruik voor een andere eigenaar de schone repository
|
||||
of starter-ZIP, zodat die eigen sleutels en eigen paneelkalibratie krijgt.
|
||||
|
||||
## Lichtkaart
|
||||
|
||||
- RGB+wit-lamp: drie schuiven; RGB-only: kleur en helderheid; wit-only:
|
||||
wittemperatuur en helderheid. Een gewone dimmer behoudt de helderheidskaart.
|
||||
- Sleep langzaam over de regenboog, laat los en controleer de fysieke lamp.
|
||||
Herhaal voor wittemperatuur en helderheid. Helderheid behoudt de kleurmodus.
|
||||
- Heropen de kaart en controleer de ontvangen waarden. Test twee lampen met
|
||||
verschillende temperatuurbereiken; er mag geen waarde van de andere lamp lekken.
|
||||
- Firmware-renderdiagnose bevat `Light sliders: PASS`: twintig preview-events
|
||||
per schuif, precies één commit bij loslaten, geen dubbele commit, geen commit
|
||||
na een afgebroken aanraking en vier capabilitycombinaties. Dit gebeurt met
|
||||
vervangen callbacks en bedient geen echte lampen.
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# Lichtregelaars — 12 september 2026
|
||||
|
||||
Gedeelde `light_controls.h` vervangt de kleurpresets in de CYD- en
|
||||
Guition-profielen. Hue, wittemperatuur en helderheid staan op één kaart;
|
||||
capabilities bepalen welke schuiven verschijnen.
|
||||
|
||||
## Uitgevoerd
|
||||
|
||||
- 23 Python-regressietests op de Guition-branch geslaagd.
|
||||
- C++-tests voor touchguard, touchfilter en nieuwe lichtwaardenparser geslaagd.
|
||||
- Beide persoonlijke profielen volledig gebouwd met ESPHome 2026.6.2.
|
||||
- Guition: RAM statisch 74.380 bytes; firmware 1.349.559 bytes.
|
||||
- CYD: RAM statisch 70.820 bytes; firmware 1.291.519 bytes (70,4% app-partitie).
|
||||
- Guition via OTA geflasht en apparaatidentiteit via versleutelde API bevestigd.
|
||||
- Op Guition `Light sliders: PASS`: twintig preview-events per regelaar,
|
||||
één commit bij loslaten, geen dubbele commit, geen commit na press-lost,
|
||||
vier capabilitycombinaties. Callbacks vervangen tijdens deze test: geen lampacties.
|
||||
- Tien pagina-/geometriecontroles en vijftig overlay-rendercycli geslaagd.
|
||||
Frames 6–69; vrije heap circa 6.514.320 bytes.
|
||||
- Veilige voorbeeldkaart uit LVGL als screenshot opgehaald en visueel gecontroleerd.
|
||||
Eerste screenshotpoging verloor de API-verbinding; herhaling met USB-logging
|
||||
voltooide alle 240 rijen zonder exception/backtrace in de capture.
|
||||
- Neutrale starterbundel met gedeelde header succesvol geëxporteerd.
|
||||
|
||||
De CYD-build vond een lokale PlatformIO-esptool-koppeling naar versie 4.9,
|
||||
terwijl de platformmetadata 5.3 vereiste. De lokale editable installatie is
|
||||
hersteld naar de al aanwezige 5.3-package; de volledige build slaagt daarna.
|
||||
Dit is een lokale toolchainreparatie, geen wijziging van bord/flashinstellingen.
|
||||
|
||||
## Grenzen
|
||||
|
||||
Een succesvolle build is geen fysieke CYD-test: alleen de Guition was aangesloten.
|
||||
Schuifevents in de firmwaretest zijn synthetisch; menselijke touchbediening en
|
||||
werkelijke HA-lampacties moeten apart worden gecontroleerd. De eigenaar vond de
|
||||
voorbeeldkaart er goed uitzien; de HA-koppeling ontbrak op dat moment nog.
|
||||
@@ -49,6 +49,44 @@ De voorbeeldconfig vult ook de overige velden in. Laat die staan tenzij je
|
||||
ze bewust gebruikt. `STATE_ENTITY` kan bij een scène/script een echte lamp of
|
||||
schakelaar volgen; een scène heeft zelf geen betrouwbare aan/uitstatus.
|
||||
|
||||
## Kleur, wittemperatuur en helderheid
|
||||
|
||||
Een RGB-/kleurenlamp met `LONGPRESS: "slider"` opent direct de lampkaart.
|
||||
Deze bevat maximaal drie horizontale schuiven:
|
||||
|
||||
- **Kleur:** een doorlopende regenboog (0–360° hue, 100% verzadiging).
|
||||
- **Wittemperatuur:** warm naar koel, binnen de minimum-/maximum-Kelvinwaarden
|
||||
die de lamp in Home Assistant meldt.
|
||||
- **Helderheid:** 1–100%; aan/uit blijft via de tegel beschikbaar.
|
||||
|
||||
De kleur- en witschuif verschijnen alleen als `supported_color_modes` deze
|
||||
ondersteunt. Een uitsluitend dimbare lamp houdt de gewone helderheidskaart.
|
||||
Er zijn geen extra tegelinstellingen nodig. Gebruik voor een lamp dezelfde
|
||||
`ENTITY` en `STATE_ENTITY`. De kleurkaart volgt `hs_color`, `color_temp_kelvin`,
|
||||
`min_color_temp_kelvin` en `max_color_temp_kelvin` van de bediende entiteit.
|
||||
Ontbreekt het temperatuurbereik, dan wacht de witschuif op HA-gegevens.
|
||||
|
||||
De kaart neemt bij openen de laatst ontvangen lampwaarden over. Slepen toont
|
||||
lokaal de gekozen waarde; pas loslaten verstuurt één opdracht. Kleur kiest de
|
||||
kleurmodus, wittemperatuur kiest de witmodus. Helderheid verandert de kleurmodus
|
||||
niet. De regenboog regelt hue; pastel/verzadiging is geen aparte regelaar.
|
||||
De hue-lijst wordt via ESPHome `data_template` naar HA gestuurd; zie de
|
||||
[officiële API-documentatie](https://esphome.io/components/api/#homeassistantaction-action).
|
||||
|
||||
De gedeelde implementatie staat in `light_controls.h`. Beide schermprofielen
|
||||
gebruiken deze; de Guition heeft grotere regelaars, de CYD een compacte kaart.
|
||||
`diagnostics/run_ui_test.py` controleert ook de schuifevents met vervangen
|
||||
callbacks: geen echte HA-acties. Voor een veilige 40-secondenvoorbeeldkaart:
|
||||
|
||||
```sh
|
||||
python diagnostics/control_ui.py light_controls_preview --host guition-wallbox.local --name guition-wallbox
|
||||
```
|
||||
|
||||
Gebruik voor CYD de eigen host en naam. Tijdens deze voorbeeldkaart worden
|
||||
lichtopdrachten onderdrukt en verdwijnt de kaart vanzelf. Test vervolgens de
|
||||
werkelijke lamp: lang indrukken, kleur kiezen, wit kiezen, helderheid aanpassen,
|
||||
sluiten en heropenen. Controleer de fysieke lamp en de waarden in HA.
|
||||
|
||||
## Voorbeelden
|
||||
|
||||
Wijzig deze sleutels in de bestaande map; plak niet nogmaals `substitutions:`.
|
||||
|
||||
Reference in New Issue
Block a user