Jak zintegrować pasek LED podłączony do sterownika Enterius EC-133MB do KNX

Jednym z popularnych sposobów połączenia pasków LEDowych z KNX jest wykorzystanie sterownika Enterius EC-133MB z protokołem modbus.

Założenia do przykładu rozwiązania
  • system KNX wyposażony jest w sterownik Wiser for KNX lub homeLYnk (LSS100100)
  • przycisk KNX wysyła na adres grupowy (np. 8/7/6) wartości 0%, 30% i 100%. (MTN617119)
  • pasek LEDowy podłączony jest do kanału
  • sterownik modbus EC-133MB skonfigurowany jest na prędkość modbus 19200, parzystość nieparzystą, 8 bitów danych, 1 bit stopu, adres 1. Pasek LED podłączono do kanału nr 2.
Konfiguracja przycisku

Przycisk (w tym przypadku najprostszy MTN617119 skonfigurowany jest w oparciu o funkcję zboczy (Edges):

MTN617119 - edges function

MTN617119 - edges function, object B

MTN617119 - edges function, object A

Utwórz w ETS adres grupowy (np. 8/7/6) i podłącz oba obiekty klawisza 1:
MTN6171xx - obiekty funkcji zboczy

Skrypt Lua w Wiser for KNX / homeLYnk / spaceLYnk:

W Wiser for KNX utwórz adres grupowy (np. 8/7/6) i ustaw jego typ danych na 05.001. Do tego samego adresu grupowego (np. 8/7/6) w Wiser for KNX podłącz skrypt zdarzeniowy:

require('luamodbus')
mb = luamodbus.rtu()

mb:open('/dev/RS485', 19200, 'O', 8, 1, 'H')
mb:connect()
mb:setslave(1)

wartosc_docelowa = event.getvalue() * 255/100

-- komentarz: linia poniżej wprowadza w rejestr nr 5 (rejestr sterujący kanałem 2), procentową wartość jasności w czasie 100ms)
mb:writeregisters(5, wartosc_docelowa, 100)

mb:close()

Od tego momentu krótkie kliknięcia na klawiszu w przycisku KNX MTN617119 wysyłają naprzemiennie 30% i 100% wysterowania dla paska LED, a przytrzymanie wysyła 0% (wyłącza go).