Merge remote-tracking branch 'origin/montana-black-shield' into merge-probe

* origin/montana-black-shield:
  docs(bulb-map): Montana-Black-Shield (f960) ergaenzt
  chore(tools): qconnex-Migrationswerkzeug und HA-Integration ins Repo
  feat(station): Montana-Black-Produkt-ID -> Ziel ledshield_rgb
  feat(board): ledshield_rgb — Montana Black RGB-LED-Shield (analoge RGB-Streifen)
  build: tools/podman.sh — docker.sh-Pendant für podman (gleiches Image, gleicher Mount)
  Überträgt lokale Änderungen (nl_crc8 unsigned-shift, docker.sh cd -P) in neuen Top-Level-Tree und entfernt altes ninlight-w600/
  Initial commit
This commit is contained in:
Michael Sauer
2026-09-26 17:18:27 +02:00
38 changed files with 1260 additions and 26 deletions
+5
View File
@@ -62,6 +62,11 @@ void nl_visual_to_channels(const nl_visual_t *v, uint16_t ct_min, uint16_t ct_ma
/* keep the lowest brightness step visible */
if (!out[NL_CH_R] && !out[NL_CH_G] && !out[NL_CH_B] && lin[maxi] > 0)
out[NL_CH_R + maxi] = 1;
} else if (ct_min == ct_max) {
/* RGB-only board (ledshield_rgb): no white channels wired, ct range
* collapsed to a point. White shows as an equal RGB mix. */
uint8_t w = to8(level);
out[NL_CH_R] = out[NL_CH_G] = out[NL_CH_B] = w ? w : 1;
} else {
uint32_t cw = level * nl_ct_cw_fraction(v->ct, ct_min, ct_max) / 65535u;
uint32_t ww = level - cw;