Přeskočit na obsah

IO type DALI

JSON nastavení pro DALI IO v Controller configu

DALI IO – JSON nastavení (Controller config)

Section titled “DALI IO – JSON nastavení (Controller config)”

Tato kapitola popisuje všechna JSON pole podporovaná DALI IO v konfiguraci Controlleru.

Kde se nastavení definuje

  • Vložte položku DALI do sekce io configu kontroleru. Příklad se štítkem DALI (max. 5 znaků):
{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"io": {
"DALI": {
"type": "DALI",
"variant": "DT6",
"order": "W",
"tx": 23,
"!rx": 18
}
},
"segments": {
"DIMMA": {
"io": "DALI"
}
}
}

Povinná / běžná pole

  • type: musí být "DALI".
  • tx / pins:
    • "tx" určuje DALI TX GPIO (např. 23). Alternativně lze použít "pins": [..] s order pro mapování pinů na kanály; pro DALI se používá primárně TX.
    • Volitelný en pin lze použít jako enable.
    • Modifikátory pinů: ! inverze, + pull‑up, - pull‑down. Např. "!rx": 18 znamená RX na GPIO 18 s inverzí logiky.
  • rx (volitelné):
    • "rx" (nebo "!rx" pro inverzi) pro příjem/monitoring (komisionování/diagnostika).
  • order:
    • Určuje rozložení kanálů (parsuje utils::stringToPixelOrder()).
      • W (jeden DALI kanál na pixel)
      • WW (dva DALI kanály na pixel)
      • RGB (tři DALI kanály na pixel)
      • RGBW (čtyři DALI kanály na pixel)
    • Není‑li zadáno, výchozí je W.

DALI‑specifická pole

  • variant:
    • Režimy zařízení: "DT6", "DT8_XY", "DT8_RGBWAF", "DT8_TC".
    • Servisní režimy: "MONITOR", "COMMISSION", "DECOMMISSION" (spouštějí se při bootu pro diagnostiku/adresaci).
    • Pozn.: DT6_ONOFF je rezervováno, není implementováno.
    • Není‑li zadáno, výchozí je DT6.
  • mapping (pole čísel):
    • Mapuje kanály na krátké DALI adresy (0–63); význam závisí na order:
      • W: jedna hodnota na pixel.
      • WW: dvě hodnoty na pixel (např. warm → první, cool → druhá).
      • RGBW: čtyři hodnoty na pixel (R, G, B, W).
    • Záporné číslo zopakuje předchozí hodnotu abs(n)‑krát (např. [5,-3] → [5,5,5,5]).
    • Délka musí být dělitelná počtem kanálů dle order.
    • Používejte krátké adresy od 0 směrem nahoru; vynechávky jsou povoleny. Pořadí v poli sleduje rozložení pixelů/kanálů (nemusí být numericky seřazeno).
    • Pokud mapping chybí, port vysílá broadcast příkazy podle prvního pixelu vykresleného na tento IO.
  • poweronlevel: 0–254. Úroveň při zapnutí. Hodnoty >254 se oříznou na 254 (255 = MASK/keep).
    • Poznámka: kombinace poweronlevel: 0 a systemfailurelevel: 0 je vhodná pro fázově řízená světla, která mají tendenci blikat při zapnutí/vypnutí sítě.
  • systemfailurelevel: 0–254. Úroveň při systémové chybě. Hodnoty >254 se oříznou na 254.
    • Viz poznámka výše – nastavení 0 pomáhá eliminovat nechtěné blikání při změnách napájení.
  • minlevel, maxlevel: 0–254. Limity úrovně aplikované při startu (ořez na 254).
  • faderate: rychlost kroků/s, mapuje se na DALI index (0–15) dle tabulky.
  • fadetime: doba v ms, mapuje se na DALI index (0–15) dle tabulky.
  • mincolortemp, maxcolortemp (DT8_TC): v Kelvinech, rozsah 1000–10000 K; maxcolortemp ≥ mincolortemp.

Poznámky k chování

  • DT6 (klasické řízení krátkých adres): mapping určuje, kterou krátkou adresu kanál ovládá. Jsou‑li všechny kanály stejné, firmware zefektivní vysílání broadcastem.
  • DT8 režimy (DT8_RGBWAF, DT8_TC): pracují pomocí DT8 příkazů (bez mapping na adresy); první pixel se převádí na DT8 příkazy a vysílá se (aktuálně) broadcastem.

Příklady

DT6 – W (invertovaný RX, vzestupné adresy):

{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"temperature": {
"type": "NTC",
"pin": 35,
"resistance": 47000
},
"io": {
"DALI": {
"type": "DALI",
"variant": "DT6",
"mapping": [0, 6, 1, 4, 2, 3, 5],
"order": "W",
"tx": 23,
"!rx": 18,
"fadetime": 700,
"faderate": 358,
"poweronlevel": 0,
"systemfailurelevel": 254,
"minlevel": 0,
"maxlevel": 254
}
},
"segments": {
"DIMMA": {
"io": "DALI",
"size": 7
}
}
}

DT6 – RGBW:

{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"io": {
"DALI": {
"type": "DALI",
"variant": "DT6",
"order": "RGBW",
"tx": 23,
"!rx": 18,
"mapping": [0, 1, 2, 3, 4, 5, 6, 7],
"fadetime": 700,
"faderate": 358
}
}
}

DT6 – WW:

{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"io": {
"DALI": {
"type": "DALI",
"variant": "DT6",
"order": "WW",
"tx": 23,
"!rx": 18,
"mapping": [0, 1, 2, 3, 4, 5],
"fadetime": 700,
"faderate": 358
}
}
}

DT8 Tunable White (broadcast) s rozsahem teplot:

{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"io": {
"DALI": {
"type": "DALI",
"variant": "DT8_TC",
"tx": 23,
"!rx": 18,
"mincolortemp": 2700,
"maxcolortemp": 6500,
"fadetime": 700,
"faderate": 358
}
}
}

Komisionování (spustí komisionování při bootu):

{
"controller": {
"name": "SC_00",
"led": 19,
"!button": 22
},
"io": {
"DALI": {
"type": "DALI",
"variant": "COMMISSION",
"tx": 23,
"!rx": 18
}
}
}

Limity

  • DALI port: až 24 logických pixelů.
  • Úrovně se ořezávají na 254 (255 = „ponech aktuální“ v DALI).
  • Délka štítku IO: max. 5 znaků.