jsem tu nový a trochu tápu s jednou automatizací. Je to pro mě docela oříšek. Pokud by někdo věděl jak na to, nebo alespoň nasměroval budu rád.
Popis problému:
Mám MQTT-DMX bránu + dva DMX stmívače a několik 24V CCT bodovek rozdělených na 4 pomyslné okruhy (resp. 8 reálných protože každá z bodovek má samostatný okruh pro teplou a studenou bílou). Zapojení a odkazy na reálné produkty jsou níže.
DMX brána poslouchá na MQTT topicu "DMX1" až "DMX8" a podle toho stmívají stmívače příslušný okruh.
Brána zpracovává hodnotu INTEGER od 0-255 (0=vypnuto; 255=maximum; cokoliv mezi je požadovaná úroveň setmění).
Vše je velmi prosté a funguje bezvadně, pokud máme na každém okruhu samostatné jednokanálové svítidlo. Problém nastává pokud potřebujeme míchat dva okruhy resp. MQTT topicy (potřebujeme míchat správnou barvu, ale i intezitu) na základě entity v homeassistantu.
MQTT templaty jsem vzdal a dobral jsem se k tomu, že bude lepší vytvořit novou entitu dle standardu HA, která bude do MQTT brookera publishovat příkaz pro stav svítidla. Následně vytvořit automatizaci které přečte tento stav a vytvoří dva nové MQTT topicy pro příslušné kanály které umí číst brána. Vytvořil jsem tedy následující entitu v HA:
Kód: Vybrat vše
mqtt:
light:
- schema: json
name: "test postel svetlo"
command_topic: "obyvak/svetlo/postel" # MQTT topic na kterém HA vysílá
brightness: true # povolí jas
color_mode: true # povolí barevný mód
supported_color_modes: ["color_temp"] # přidá entitě možnost volby teploty bílé
brightness_scale: 100 # násobič hodnot pro DMX kanály pro případné ztlumení v %
max_mireds: 500 # odpovídá teplotě bílé 2000K
min_mireds: 167 # odpovídá teplotě bílé 6000K
Kód: Vybrat vše
2000K 4000K 6000K #hodnota v KELVINECH
500 333 167 #hodnota v MIREDS
|-------------------|-------------------|
255 127 0 #výstup okruh_DMX1 pro teplou bílou
0 127 255 #výstup okruh_DMX2 pro studenou bílou
Hodnoty 0-255 pro okruhy DMX1 a DMX2 je nutné ještě vynásobit násobičem jasu 0-100%,
abychom docíli případného utlumení při stejné barvě světla.
Pro vypnutí budou obě hodnoty pro oba kanály 0.
- publikovaný topic z HA obsahuje jen danou změnu např. state ON na OFF a nebo jen hodnotu color_temp v MIREDS, ale nepošle celej JSON (tj. state, color_temp a brightness hodnoty) - to nám automatizaci dost komplikuje
- hodnoty je zapotřebí zaokrouhlovat
- nevím jestli na vše nejdu zbytečně složitě
Kód: Vybrat vše
HomeAssistant
└── MQTT-DMX brána
├── DMX1
│ ├── okruh_DMX1
│ ├── okruh_DMX2
│ ├── okruh_DMX3
│ └── okruh_DMX4
└── DMX2
├── okruh_DMX5
├── okruh_DMX6
├── okruh_DMX7
└── okruh_DMX8
DMX brána: https://www.adfweb.com/Home/products/DM ... pg=nav28_6
Stmívače: https://www.t-led.cz/p/dmx-dimled-dekod ... mcQAvD_BwE
Minalox bodovky: https://minalox.sk/collections/bodove-s ... 2000-6000k
Co je to DMX: https://www.lxf.cz/dmx/
Jak jsem psal výše, za jakoukoliv radu, nebo nasměrování budu rád.