Řízení osvětlení v závislosti na okolním světle (a pohybu či jiných faktorech) je zásadní a základní úkol při automatizaci jakékoli budovy.
Nativní pohybová, resp. přítomnostní čidla Loxone měří intenzitu osvětlení a předávají tuto informaci do systému, to je skvělé. Ne vždy však jde tato čidla použít, vzhledem k designu či ceně.
V rámci Modbus hrátek jsem zakoupil na Ali solidní měřiče osvětlení od poměrně spolehlivého a mého oblíbeného výrobce ComWinTop. Dodávají je v provedení jak s analogovými výstupy (0-10V, 4-20mA) tak s digitálním výstupem – Modbus RTU (RS485).
K čidlu dostanete odkaz na stažení dokumentace, kde je vše potřebné k vyčtení, součástí je i utilita, umožňující základní komunikaci a nastavení např. target ID apod. abyste se nemuseli trápit hledáním registrů. Přiznám se, že jsem ji ocenil, protože zcela nepochopitelně je rychlost komunikace nastavena na 4800 baudů (místo standardních 9600). Zbytek protokolu je standard: 8/1/N.
Připojil jsem přes USB/RS485 převodník, který mám na virtuálním portu COM4, nastavil rychlost na 4800 a otevřel spojení. Dále jsem v řádku Slave address stiskl tlačítko READ a on (pomocí broadcastu – nesmíte mít v tuto chvíli na sběrnici více zařízení než jedno) zjistil default adresu: 1. Dále jsem vybral Register address: 5 Baud a dole u Register Value dal „Read“. Výsledek je opět 1, což znamená 4800 baud.

Nyní změníme rychlost na 9600, vše zůstane stejné, jen do „Register Value“ zapíšete hodnotu 2 (=9600) a stisknete Write. Mělo by dojít k úspěšnému zapsání (viz log). Spojení se pochopitelně „rozpadne“ vzhledem k jiné rychlosti, je tedy třeba spojení uzavřít (nahoře Close), nastavit 9600 baud a opět „Open.

Dále nastavíme novou adresu, např. 71, samozřejmě již za použité nové rychlosti 9600 baud. Je to jednoduché, do řádku „Slave new address“ napíšete požadovanou hodnotu a stisknete Write. Je přínosné pozorovat záznamy v poli „Log“, tam přesně vidíte, jaké příkazy program provádí a z jakých registrů čte/zapisuje.

Nyní už zbývá vyčíst hodnotu osvětlení: V „Register type“ zvolit Illumination (0-65535 lux) a stisknout „Read“ v řádku „Register Value“. Výsledkem je absolutní hodnota v luxwch. Já jsem zvolil čidlo s rozsahem 0-2000 luxů (dostačující pro zjišťování osvětlení v interiéru).

Vyčítání dat přes např, QModMaster je totožné, bystřejší z logu již vyčetli, že hodnota osvětlení je uložena v registru 6 a délka je 2 byty (rozsah 0-65535) případně v registru 4 (rozsah 0-200.000). Můj senzor je 0-2000 lux, proto musím hodnotu z registru 4 dělit 100.

Pro úplnost dodávám, že rychlost je uložena v registru 07D0 hex a Slave Id v registru 07D1 hex. Zápis klasicky pomocí funkce 06, ale vzhledem k tomu, že jde o jednorázový úkon, je jednodušší použít dodávanou utilitku.
Pro mě je jedinou vadou na kráse design krabičky, která je univerzální a tedy stejná jako pro čidlo teploty a vlhkosti. Nedalo mi to a i přes porušení záruky (zpět to stejně posílat nebudu) jsem to „kuchnul“ a dle předpokladu, elektronika je miniaturní. V dalším kroku tedy předělám do přisazené magnetické lišty či do pouzdra, zalitého v pohledovém betonu.
