---
title: "Intesis IBOX-MBS-DALI"
description: "Steruj 64 statecznikami DALI ECG i 16 grupami DALI z TapHome przez Modbus RTU z bramą Intesis IBOX-MBS-DALI. Ściemnianie na poziomie ECG, fade time/rate, poziomy power-on i system-failure."
url: "https://taphome.com/pl/compatibility/intesis-dali/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","lighting","rs485","dali","dali-2","gateway","din-rail"]
  questions: ["Jak zintegrować Intesis IBOX-MBS-DALI z TapHome?","Co steruje szablon TapHome dla Intesis DALI?","Jak podłączyć RS-485 Modbus RTU z TapHome do IBOX-MBS-DALI?","Jak przypisać krótkie adresy DALI stecznikom ECG?","Który wariant bramy Intesis DALI wspiera szablon TapHome?","Czy szablon TapHome działa z Intesis IN703DAL0640000 (seria 700)?","Dlaczego magistrala DALI nie odpowiada, nawet gdy komunikacja Modbus działa?"]
---

# Intesis IBOX-MBS-DALI

Komunikacja: Modbus RTU

- [Strona produktu Intesis IBOX-MBS-DALI (HMS Networks)](https://www.intesis.com/products/protocol-translator/dali-gateways/dali-modbus-server-ibox-mbs-dali)
- [HMS Networks — rodzina produktów Intesis](https://www.hms-networks.com/products/intesis)
- [Instrukcja obsługi Intesis IN703DAL0640000 (seria 700)](https://www.intesis.com/docs/user-manual-in703dal0640000)

## Poradnik integracji

Intesis IBOX-MBS-DALI to konwerter protokołu DALI-na-Modbus firmy Intesis (należącej do HMS Networks), który udostępnia stateczniki i grupy oświetlenia DALI-2 jako rejestry holding Modbus. Szablon TapHome jest przeznaczony dla **wariantu 1-kanałowego RTU** (kod zamówienia **IBMBSDAL0640000**, ponownie wydany jako **INMBSDAL0640200**) i łączy się z TapHome przez **RS-485 Modbus RTU** na porcie B bramy.

TapHome sprzedaje nowszą bramę **serii 700** o kodzie zamówienia **IN703DAL0640000** (serwer DALI-2 do Modbus TCP i RTU, 1 kanał DALI). Według instrukcji obsługi producenta (v1.0.11) używa tej samej mapy rejestrów Modbus, więc ten szablon ma zastosowanie również do niej.

Szablon obejmuje pełną adresowalną pojemność jednej linii DALI: **64 indywidualne stateczniki ECG** (krótkie adresy 0–63) i **16 grup DALI**. Każdy ECG obsługuje odczyt aktualnego poziomu (0–100 %), statusu awarii statecznika/lampy oraz zapis poziomu arc power, poziomu power-on, poziomu system-failure, fade time i fade rate. Grupy DALI zapewniają tylko do zapisu broadcast sterowanie ściemniaczem. Na poziomie modułu cztery broadcast service actions (All On, All Off, All Set Power-on Level, All Set System-failure Level) adresują każdy statecznik na linii DALI jednym zapisem Modbus.

Krótkie adresy DALI, przynależność do grup, sceny i poziomy min/max muszą być wcześniej skonfigurowane za pomocą bezpłatnego oprogramowania commissioning **Intesis MAPS** — dopiero wtedy TapHome może adresować poszczególne stateczniki. Szablon TapHome sam nie wykonuje wykrywania sieci DALI ani adresowania.

## Podłączenie sprzętowe

### Warianty bramy

Szablon TapHome jest zbudowany dla bramy **1-kanałowej RTU**. Wariant 2-kanałowy ma identyczną mapę rejestrów, ale nie udostępnia Modbus RTU (tylko TCP), więc nie jest kompatybilny z tym szablonem RS-485.

| Kod zamówienia | Kanały DALI | Pojemność ECG | Grupy | Modbus RTU | Modbus TCP |
|---|---|---|---|---|---|
| **IN703DAL0640000** (seria 700) | **1** | **64** | **16** | **Tak (Port B)** | Tak |
| **IBMBSDAL0640000 / INMBSDAL0640200** | **1** | **64** | **16** | **Tak (Port B)** | Tak |
| IBMBSDAL1280000 / INMBSDAL1280200 | 2 | 128 | 32 | Nie | Tak |

![Intesis IBOX-MBS-DALI — rozmieszczenie portów na wariancie 1-kanałowym (Modbus RTU + TCP) i 2-kanałowym (tylko Modbus TCP)](https://taphome.com/images/compatibility/intesis-dali/connections-overview_hu_e3319bd0a2fc8995.jpg)

> [!NOTE]
> Szablon TapHome używa wzoru rejestru `7000 × kanał + 100 × ECG + sygnał`, obliczanego z `kanał = 0`. Dokładnie odpowiada to 1-kanałowemu IBOX-MBS-DALI oraz bramie IN703DAL0640000 serii 700.


### Rozmieszczenie złączy (1-kanałowy IBOX-MBS-DALI)

![Rozmieszczenie złączy 1-kanałowego IBOX-MBS-DALI — zasilanie, DALI Port A, Ethernet, Console, EIA232/EIA485 Port B](https://taphome.com/images/compatibility/intesis-dali/connectors-ibox-1ch_hu_f931cc500ab15298.jpg)

Widok z góry 1-kanałowego IBOX-MBS-DALI:

- **Zasilanie** — 3-biegunowa wtykowa zaciskowa śrubowa, 24 VDC ±10 % (+ / − / Earth)
- **Port A / DALI** — 2-biegunowa pomarańczowa zaciskowa, **A3 (DA+)** i **A4 (DA−)**, zasilanie DALI 16 VDC
- **Ethernet** — 1× RJ45 10/100 Mbps (Modbus TCP)
- **Console** — mini-type B USB 2.0 do konfiguracji w Intesis MAPS
- **Port B / Modbus RTU** — **EIA485** 3-biegunowa zaciskowa śrubowa `B1 (B+) / B2 (A−) / B3 (SGND)` **i** **EIA232** SUB-D9 male (alternatywa)
- **USB** — Type-A USB 2.0 tylko dla pamięci flash (max 150 mA)
- **SWA / SWB** — przełączniki DIP (SWA zarezerwowany, SWB steruje terminacją i polaryzacją RS-485 — patrz Konfiguracja poniżej)

### Zasilanie

- **Wejście:** 24 VDC ±10 % na zaciskowej 3-biegunowej (+, −, Earth)
- **Źródło:** NEC Class 2 lub Limited Power Source (LPS), klasy SELV
- **Zabezpieczenie nadrzędne:** wymagany wyłącznik 250 V / 6 A
- **Uziemienie:** może być uziemione tylko przez biegun ujemny — **nigdy** przez biegun dodatni

> [!WARNING]
> Aby uniknąć pętli uziemienia, które mogą uszkodzić bramę i podłączone urządzenia, **nigdy nie używaj zasilania DC z uziemionym biegunem dodatnim**. Uziemiaj tylko przez biegun ujemny lub pozostaw uziemienie pływające.

### Okablowanie RS-485 Modbus RTU (Port B, EIA485)

Podłącz magistralę RS-485 TapHome do zaciskowej EIA485 na porcie B:

| Zacisk IBOX-MBS-DALI | Sygnał | TapHome RS-485 |
|---|---|---|
| **B1** | B+ (D+) | A+ / D+ |
| **B2** | A− (D−) | B− / D− |
| **B3** | SGND (masa odniesienia) | GND |

> [!WARNING]
> **Zachowaj polaryzację.** B1 = B+ (D+) i B2 = A− (D−). Zamiana A/B spowoduje cichą utratę komunikacji bez uszkodzeń sprzętowych.

**Specyfikacja kabla** (limity EIA485):

- **Maks. długość:** 1200 m na pojedynczym segmencie RS-485
- **Maks. węzłów:** 32 urządzenia, w tym master TapHome i IBOX-MBS-DALI
- **Terminacja:** 120 Ω na każdym końcu magistrali — TapHome Core ma wbudowany rezystor 100 Ω na zaciskach BUS, więc IBOX-MBS-DALI wymaga włączonej terminacji tylko wtedy, gdy znajduje się na **skrajnym końcu** segmentu RS-485 (patrz przełącznik DIP SWB poniżej)

> [!TIP]
> Jeśli brama jest zainstalowana w środku magistrali RS-485 (nie na końcu), pozostaw SWB w pozycji OFF i nie dodawaj zewnętrznej terminacji.

**Alternatywa EIA232:** złącze Port B SUB-D9 male zapewnia interfejs EIA232 z użyciem tylko TX, RX i GND, z maksymalną długością kabla 15 m. TapHome nie obsługuje natywnie RS-232, więc EIA485 jest standardowym połączeniem TapHome.

### Okablowanie magistrali DALI (Port A)

Podłącz linię DALI do pomarańczowej 2-biegunowej zaciskowej portu A:

- **A3** — DA+
- **A4** — DA−

IBOX-MBS-DALI zapewnia napięcie magistrali **16 VDC (±2 %)** z gwarantowanym prądem 235 mA (max 250 mA) DALI; brama IN703DAL0640000 serii 700 gwarantuje 230 mA (max 250 mA). DALI jest zgodnie ze standardem nieczuła na polaryzację, ale to wewnętrzne zasilanie musi być włączone w Intesis MAPS przed jakąkolwiek komunikacją DALI — patrz *DALI commissioning* poniżej.

**Pojemność DALI na jednej linii** (pozostaw ~10 % zapasu na procesy dynamiczne):

- Do **64 statecznikow ECG** (typowo 2 mA każdy → 128 mA)
- Do **64 urządzeń wejściowych DALI** / **16 zalecanych** przy użyciu przycisków (typowo 5 mA każde)
- Przykładowy budżet: `64 ECG × 2 mA + 16 czujników × 5 mA = 208 mA < 235 mA × 90 %`
- Przykładowy budżet dla IN703DAL0640000 (dane producenta): `63 ECG × 2 mA + 16 czujników × 5 mA = 206 mA < 230 mA × 90 %`

> [!NOTE]
> DALI jest ze swej natury magistralą niskiej prędkości (1200 baud) z czasem uruchomienia bramy 1,5 s i czasem zatrzymania 7 s. Polecenia DALI wydawane z TapHome docierają do statecznikow z niewielkim, ale niezerowym opóźnieniem w porównaniu z bezpośrednim przewodowym sterowaniem.

## Konfiguracja

### Przełącznik DIP SWB — terminacja i polaryzacja RS-485

**Przełącznik DIP SWB** na 1-kanałowym IBOX-MBS-DALI steruje tylko charakterystyką magistrali RS-485 — na tej bramie **nie ma adresu slave Modbus ustawialnego przełącznikiem DIP** (adres slave ustawiany jest w Intesis MAPS, patrz poniżej).

| Pozycja | ON | OFF |
|---|---|---|
| **1** | terminacja 120 Ω aktywna | Terminacja nieaktywna |
| **2** | Polaryzacja aktywna | Polaryzacja nieaktywna |
| **3** | Polaryzacja aktywna | Polaryzacja nieaktywna |

- **Pozycja 1 = ON** — włącza wewnętrzny rezystor terminujący 120 Ω. Użyj, gdy IBOX-MBS-DALI znajduje się na **ostatniej** fizycznej pozycji magistrali RS-485.
- **Pozycje 2 i 3 = ON** — włączają bus biasing (polaryzację). Użyj, gdy żaden inny master na magistrali nie zapewnia biasingu. TapHome Core zapewnia biasing na swoich zaciskach BUS, więc te mogą zazwyczaj pozostać OFF.

> **SWA** jest zarezerwowany do przyszłego użytku w tej rewizji sprzętu i nie ma wpływu w czasie pracy.

### Parametry komunikacji Modbus RTU

Wszystkie parametry RTU są konfigurowane w projekcie Intesis MAPS i muszą dokładnie odpowiadać ustawieniom modułu TapHome.

| Parametr | Wartości | Domyślne w szablonie |
|---|---|---|
| Baud rate | 1200, 2400, 4800, **9600**, 19200, 38400, 56700, 115200 | **9600** |
| Parzystość | none, even, odd | **none** |
| Bity stopu | 1, 2 | **1** |
| Bity danych | 8 | 8 |
| Adres slave | 1–247 | Konfigurowalny w MAPS |

> [!TIP]
> Brama Intesis obsługuje Modbus RTU i Modbus TCP **jednocześnie** na wariancie 1-kanałowym. TapHome używa RTU; równoległy BMS lub narzędzie diagnostyczne może czytać tę samą mapę rejestrów przez TCP bez zakłóceń.

### Włączanie komunikacji Modbus

Komunikacja Modbus jest włączana przez wczytanie poprawnego projektu na bramę za pomocą Intesis MAPS (na tym modelu nie są zaangażowane żadne przełączniki DIP). Wersja skrócona:

1. Zainstaluj **Intesis MAPS** na komputerze Windows i podłącz się do bramy przez USB Console lub Ethernet.
2. Otwórz lub utwórz projekt oparty na `INMBSDAL---0200-Template` (dla bramy IN703DAL0640000 serii 700 wybierz szablon `IN-MBS-DALI-64`, czyli aplikację Modbus).
3. W zakładce **Configuration → Modbus Slave** ustaw baud rate, parzystość, bity stopu i adres slave tak, aby odpowiadały TapHome.
4. W zakładce **Configuration → DALI** włącz wewnętrzne zasilanie magistrali DALI 16 VDC (patrz *DALI commissioning*).
5. Kliknij **Send**, aby przesłać konfigurację; brama zrestartuje się automatycznie.
6. Użyj **Diagnostic → Viewers**, aby zweryfikować ramki Modbus na Port B TX/RX.

![Konfiguracja zasilania magistrali DALI w Intesis MAPS — włącz zasilanie DALI 16 VDC w konfiguracji bramy przed commissioningiem](https://taphome.com/images/compatibility/intesis-dali/dali-power-maps-config_hu_60df6e9c055c6bc7.jpg)

### DALI commissioning

**Adresowanie DALI wykonywane jest w Intesis MAPS — nie w TapHome.** Szablon TapHome odwołuje się do krótkich adresów DALI 0–63 i adresów grupowych 0–15 przez ich offset w rejestrze; fizyczne stateczniki i grupy muszą być najpierw powiązane z tymi adresami.

Ogólny workflow commissioningu (pełna procedura w Intesis user manual, Annex A):

1. W MAPS otwórz projekt dla bramy 1-kanałowej i przejdź do **Configuration → DALI → ECG Channel A**.
2. Kliknij **Commissioning → Scan**, aby wykryć stateczniki ECG na magistrali DALI.
3. Każdemu stecznikowi przypisz **krótki adres (0–63)** przez przycisk **Wink** (miga fizyczny statecznik do identyfikacji) lub **Auto Addr.** (sekwencyjne automatyczne przypisanie).
4. Opcjonalnie ustaw parametry każdego ECG: **Device Type** (0 = Fluorescent, 1 = Emergency, 6 = LED, …), poziom min / max, poziom power-on, poziom system-failure, konfigurację scen i **przynależność do grupy (0–15)**.
5. Kliknij **Commissioning → Set All**, aby przesłać konfigurację z MAPS do magistrali DALI.
6. Kliknij **Send**, aby przesłać konfigurację na poziomie bramy (parametry Modbus, mapa sygnałów) z powrotem do IBOX-MBS-DALI.

Po commissioningu ECG zidentyfikowane krótkim adresem w TapHome (np. **ECG 5** → rejestr `H:506`) mapują się jeden-do-jednego na fizyczne stateczniki. Przynależność do grup musi być również zdefiniowana w MAPS, aby urządzenia DALI Group działały, chociaż szablon udostępnia service actions per-ECG *Add to DALI Group* / *Remove from DALI Group*, które mogą ponownie przypisać przynależność do grupy w czasie działania na kompatybilnym firmware.

> [!WARNING]
> Zgodnie z user manual r1.5 (maj 2024), sygnały 29 i 30 (*Add to DALI Group* / *Remove from DALI Group*) są oznaczone jako *Not used* na aktualnym firmware. Szablon TapHome nadal udostępnia te akcje, ponieważ działały na wcześniejszych firmware, ale **stabilne przypisania grup powinny być konfigurowane w Intesis MAPS**, nie w czasie działania.
>
> Instrukcja obsługi bramy IN703DAL0640000 serii 700 (v1.0.11) podaje sygnały 29 i 30 jako odczyt/zapis, więc według instrukcji akcje powinny być na tej bramie dostępne.

### Przegląd mapy rejestrów

TapHome używa jednej formuły dla wszystkich rejestrów:

```text
H:address = 7000 × channel + 100 × ECG + signal      (indywidualny ECG)
H:address = 7000 × channel + 20 × group + 6400..6415  (grupa DALI)
H:address = 7000 × channel + 6800..6815              (broadcast)
```

Na wariancie 1-kanałowym zawsze `channel = 0`. Szablon udostępnia następujące zakresy rejestrów:

| Zakres | Funkcja | Udostępnione przez szablon |
|---|---|---|
| `H:0 – H:3` | Bitmaska awarii statecznika/lampy (ECG 63..0, 4× UInt16) | Tak — jako failRegister na poziomie modułu |
| `H:SA+5` | Bitmaska statusu statecznika ECG (per ECG) | Tak — errors, warnings, info per ECG |
| `H:SA+6` | Aktualny poziom ECG 0–100 % (odczyt) | Tak — sprzężenie zwrotne pozycji ściemniacza |
| `H:SA+7` | Enum typu urządzenia ECG | Tak — jako service attribute |
| `H:SA+11..+14` | Poziom power-on / system-failure, fade time / rate (odczyt) | Tak — jako service attributes |
| `H:SA+15` | Poziom arc power ECG 0–100 % (zapis) | Tak — writelevel, liniowo mapowany do Min/Max |
| `H:SA+23..+30` | Ustaw fade time/rate, ustaw poziomy, dodaj/usuń z grupy | Tak — jako service actions per-ECG |
| `H:6400 + 20·GR` | Poziom arc power grupy 0–100 % (zapis) | Tak — jako urządzenie DALI Group tylko do zapisu |
| `H:6801` | Broadcast Arc Power Off/On (0/100 %) | Tak — jako moduł *All On* / *All Off* |
| `H:6812 / H:6813` | Broadcast Set Power-on / System-failure Level | Tak — jako service actions na poziomie modułu |

Urządzenia wejściowe (czujniki obecności, przyciski, czujniki światła) pod adresami `14000 + 640·LINE + 10·IDX + INSTANCE + 1280·SIG` **nie są** zaimplementowane w tym szablonie.

## Możliwości urządzenia

### Ściemnianie per ECG (64 urządzenia ECG)

Każdy krótki adres 0–63 jest udostępniany jako indywidualne urządzenie ściemniacza TapHome (**ECG 0** do **ECG 63**). Możliwości per ECG:

- **Aktualny poziom** — odczyt `H:SA+6` (0–100 %) jako sprzężenie zwrotne pozycji ściemniacza
- **Poziom arc power** — zapis `H:SA+15` (0–100 %), liniowo mapowany ze skali ściemniacza 0–1 TapHome do zakresu `[min level, max level]` skonfigurowanego na stecznikowym
- **Status statecznika** — bitmaska na `H:SA+5` steruje diagnostyką TapHome: *BallFail* i *LampFail* wywołują errors, *BallLimit*, *Reset* i *PowerCycle* wywołują warnings, *FadeRun* wyświetlany jako info, *MissingShortAddr* wywołuje error
- **Wykrywanie awarii komunikacji** — moduł odczytuje 64-bitową bitmaskę awarii na `H:0 – H:3` i oznacza poszczególne ECG jako uszkodzone niezależnie od statusu `H:SA+5`

### Service attributes per ECG (metadane tylko do odczytu)

Każde urządzenie ECG udostępnia pięć service attributes, które odczytują jego aktualną konfigurację DALI:

- **Main Device Type** — `H:SA+7` enum (0–8): 0 = Fluorescent, 1 = Emergency, 2 = Discharge, 3 = Halogen, 4 = Incandescent, 5 = Digital signal, 6 = LED, 7 = Switching, 8 = Colour Control
- **Power-on Level [%]** — `H:SA+11` (0–100 %) — poziom, do którego statecznik powraca po włączeniu magistrali DALI
- **System-failure Level [%]** — `H:SA+12` (0–100 %) — poziom, który statecznik przyjmuje przy awarii magistrali DALI
- **Fade Time** — `H:SA+13` (0–15) — indeks DALI fade-time (czas osiągnięcia poziomu docelowego przy bezpośrednich zapisach arc power)
- **Fade Rate** — `H:SA+14` (1–15) — indeks DALI fade-rate (prędkość poleceń step up / step down)

### Service actions per ECG (zapis)

Każde ECG udostępnia również sześć service actions do rekonfiguracji online:

- **Set Power-on Level** — zapis `H:SA+27` (0–100 %)
- **Set System-failure Level** — zapis `H:SA+28` (0–100 %)
- **Set Fade Time** — zapis `H:SA+23` (0–15)
- **Set Fade Rate** — zapis `H:SA+24` (1–15)
- **Add to DALI Group** — zapis `H:SA+29` z numerem grupy (0–15) — patrz powyższe ostrzeżenie dotyczące commissioningu
- **Remove from DALI Group** — zapis `H:SA+30` z numerem grupy (0–15)

Każdy zapis jest automatycznie potwierdzany przez szablon przez `H:SA+4 = 1` (Update All ECG Status), co odświeża buforowane wartości odczytu w bramie.

### Grupy DALI (16 broadcast ściemniaczy tylko do zapisu)

**DALI Group 0** do **DALI Group 15** są udostępniane jako urządzenia ściemniacza tylko do zapisu:

- **Rejestr zapisu:** `H:6400 + 20 × GR` (np. Group 0 = `H:6400`, Group 15 = `H:6700`)
- **Zachowanie:** zapis wartości ściemniacza TapHome 0–1 wysyła `Arc Power Level = Le × 100` do każdego ECG będącego członkiem danej grupy DALI
- **Brak sprzężenia zwrotnego odczytu** — sygnał grupy nie ma rejestru aktualnego poziomu, więc TapHome śledzi poziom grupy tylko z danych wejściowych użytkownika, nie z rzeczywistego stanu statecznikow

> [!TIP]
> Używaj grup dla pokoi lub stref, gdzie kilka statecznikow ściemnia razem. Przynależność do grupy jest konfigurowana per-ECG przez ECG service action *Add to DALI Group* lub (najlepiej) w Intesis MAPS.

### Akcje broadcast na poziomie modułu

Moduł główny (**Intesis DALI Gateway**) udostępnia cztery service actions, które adresują każdy statecznik na linii DALI jednocześnie:

- **All — On** — zapis `H:6801 = 1`, broadcastuje 100 % do każdego ECG
- **All — Off** — zapis `H:6801 = 0`, broadcastuje 0 % do każdego ECG
- **All — Set Power-on Level** — zapis `H:6812` (0–100 %) do konfiguracji poziomu, do którego wszystkie stateczniki powracają po włączeniu zasilania DALI
- **All — Set System-failure Level** — zapis `H:6813` (0–100 %) do konfiguracji poziomu, który wszystkie stateczniki przyjmują przy awarii magistrali DALI

Są one szybsze niż iteracja zapisów per-ECG, gdy wszystkie stateczniki muszą osiągnąć ten sam stan docelowy (np. panic off, poranne ustawienie wstępne).

## LED-y statusu i przyciski

![LED-y statusu i przyciski IBOX-MBS-DALI — Run, Error, Port A TX/RX (DALI), Port B TX/RX (Modbus RTU), Button A, Button B](https://taphome.com/images/compatibility/intesis-dali/status-leds-buttons_hu_1f972f8353b9228c.jpg)

| LED | Stan | Znaczenie |
|---|---|---|
| **Run** | Off / Zielony | Brak zasilania / urządzenie zasilane i działające |
| **Error** | Off / Czerwony | Brak błędu / stan błędu |
| **Port A Tx / Rx (DALI)** | Off / Migający zielony / Migający żółty | Brak aktywności / pakiet TX do DALI / pakiet RX z DALI |
| **Port B Tx / Rx (Modbus RTU)** | Off / Migający zielony / Migający żółty | Brak aktywności / pakiet TX na RS-485 / pakiet RX na RS-485 |
| **Wskaźnik Button A** | Off / Zielony | Stan broadcast DALI: OFF / RECALL_MAX_LEVEL |
| **Wskaźnik Button B** | Off / Zielony | Brak domyślnej funkcji (konfigurowalny w MAPS) |

**Button A (DALI A)** — naciśnięcie przełącza broadcast DALI między `RECALL_MAX_LEVEL` (100 %) a `OFF`, przydatne do szybkiego sprawdzenia on-site linii DALI bez udziału TapHome. Po 30 s LED Button A gaśnie, a stateczniki powracają do poprzedniego poziomu.

**Button B** — na tej bramie bez domyślnej funkcji; można skonfigurować jako akcję RS-485 w Intesis MAPS.

## Montaż

### Szyna DIN (zalecane)

![Montaż IBOX-MBS-DALI na szynie DIN — standardowa szyna EN60715 TH35, klipsy mocujące w fabrycznej pozycji do wewnątrz](https://taphome.com/images/compatibility/intesis-dali/mounting-din_hu_6022c12b8152b8d4.jpg)

EN60715 TH35, najlepiej wewnątrz metalowej szafy podłączonej do uziemienia. Pozostaw klipsy mocujące w fabrycznej pozycji **do wewnątrz**, najpierw zaczep górną krawędź szyny, a następnie wciśnij w dół, aż dolna część zatrzaśnie.

### Montaż ścienny

![Montaż ścienny IBOX-MBS-DALI — klipsy mocujące przesunięte na zewnątrz, odsłaniające otwory montażowe](https://taphome.com/images/compatibility/intesis-dali/mounting-wall_hu_acd54bdbb566e31c.jpg)

1. **Oddziel klipsy mocujące** od ich pierwotnej pozycji (do montażu na szynie DIN), wypychając je na zewnątrz, aż zatrzasną się w pozycji montażu ściennego.
2. **Użyj otworów montażowych** w obudowie, aby przymocować ją do ściany.

### Przestrzeń i środowisko

- **Przestrzeń instalacyjna:** pozostaw 130 × 100 × 100 mm (W × S × G) wokół urządzenia na złącza i okablowanie. Wymiary netto: 90 × 88 × 56 mm (brama IN703DAL0640000 serii 700: 90 × 88 × 58 mm).
- **Środowisko:** IP20, tylko wewnątrz. Temperatura pracy 0 °C do +50 °C (user manual) / +60 °C (installation sheet), wilgotność 5–95 % bez kondensacji. Brama IN703DAL0640000 serii 700 pracuje w temperaturze od −10 °C do +60 °C.

## Rozwiązywanie problemów

### Brak komunikacji Modbus (LED-y Port B Tx/Rx pozostają wyłączone)

1. **Sprawdź okablowanie RS-485** — zweryfikuj polaryzację B1 (B+) / B2 (A−) względem zacisków RS-485 TapHome; ich zamiana jest najczęstszym błędem.
2. **Sprawdź SGND** — podłącz B3 do masy TapHome. Brakująca masa sygnałowa jest drugą najczęstszą przyczyną niestabilnego RTU.
3. **Dopasuj parametry szeregowe** — baud rate, parzystość, bity stopu i adres slave w TapHome muszą dokładnie odpowiadać wartościom z projektu Intesis MAPS.
4. **Sprawdź przełączniki DIP SWB** — jeśli ta brama znajduje się na fizycznym końcu magistrali RS-485, ustaw pozycję SWB 1 = ON (terminacja 120 Ω). Jeśli znajduje się w środku magistrali, ustaw wszystkie pozycje SWB na OFF.
5. **Potwierdź, że TCP nie zajmuje slota** — brama pozwala na 5 jednoczesnych socketów TCP i 1 master RTU; źle skonfigurowane połączenie MAPS nie blokuje RTU, ale warto zamknąć MAPS podczas debugowania TapHome.

### Modbus działa, ale stateczniki DALI nie reagują

1. **Włącz wewnętrzne zasilanie magistrali DALI** — nowe bramy są dostarczane z **wyłączonym** zasilaniem DALI. Otwórz Intesis MAPS → *Configuration → DALI → DALI Channel A* i ustaw **Power the DALI bus** = Enabled, następnie **Send** konfigurację. Bez zasilania magistrali brama zgłasza błąd sprzętowy przy każdym zapisie DALI.
2. **Szybki sanity check** — naciśnij **Button A** na bramie. Powinien broadcastować `RECALL_MAX_LEVEL` i przełączać każdy podłączony statecznik on/off. Jeśli nic się nie porusza, problemem jest sama magistrala DALI (okablowanie, napięcie, zasilanie statecznikow).
3. **Uruchom on-bus scan w MAPS** — *Commissioning → Scan* na DALI Channel A wylistuje każdy statecznik, który brama widzi. Brakujące stateczniki zwykle oznaczają niezasilony ECG, nieprzypisany krótki adres DALI lub przerwę w magistrali DALI.
4. **Zweryfikuj krótkie adresy** — TapHome adresuje ECG 5 pod rejestrem `H:506`; jeśli krótki adres 5 nie został przypisany w MAPS, rejestr istnieje, ale fizyczny statecznik nie jest do niego powiązany.

### Konkretny ECG zgłasza awarię w TapHome

TapHome udostępnia dwa źródła awarii dla każdego ECG:

- **Module failRegister (`H:0 – H:3`)** — jeden bit na ECG. Ustawiony bit wywołuje błąd komunikacji (brama w ogóle nie może porozumieć się ze statekznikiem).
- **ECG ballast status (`H:SA+5`)** — bitmaska per-ECG. *BallFail* i *LampFail* wywołują errors (awaria sprzętowa statecznika lub lampy), *MissingShortAddr* wywołuje error (ECG odpowiedział, ale nie ma krótkiego adresu), *BallLimit*, *Reset* i *PowerCycle* wywołują warnings, *FadeRun* jest informacyjny.

Wymień uszkodzony statecznik lub ponownie commissionuj krótki adres w MAPS, aby usunąć błąd.

### Zapis zaakceptowany, ale statecznik nie zmienia poziomu

1. **Potwierdź, że statecznik nie jest w fade** — *FadeRun* na `H:SA+5` oznacza, że statecznik aktualnie wykonuje fade; poczekaj, aż zakończy. Skrócenie *Fade Time* (`H:SA+23`) zmniejsza postrzegane opóźnienie.
2. **Sprawdź Min / Max Level** — TapHome liniowo mapuje swoją skalę ściemniacza 0–1 do okna `[min level, max level]` odczytanego ze statecznika (`H:SA+9 / H:SA+10`). Jeśli oba są równe, statecznik nie może zmienić poziomu; rekonfiguruj min/max w MAPS.
3. **Add/Remove z grupy DALI** — na najnowszym firmware r1.5 te akcje per-ECG są oznaczone jako deprecated; przypisanie do grupy wykonaj zamiast tego w MAPS. Instrukcja obsługi bramy IN703DAL0640000 serii 700 podaje je jako odczyt/zapis.

## Dostępne urządzenia 80

Te urządzenia pojawią się w TapHome po imporcie.

Intesis DALI Moduł

Akcje serwisowe

|                                         |                                                                                                                                       |
|-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| Wszystkie — Wł.                         | Broadcastuje 100 % arc power do każdego statecznika na linii DALI — panic-on lub poranne ustawienie wstępne w jednym zapisie Modbus   |
| Wszystkie — Wył.                        | Broadcastuje 0 % arc power do każdego statecznika na linii DALI — panic-off lub ustawienie wstępne sprzątania w jednym zapisie Modbus |
| Wszystkie — Ustaw poziom Power-on       | Broadcastuje nowy poziom power-on (0–100 %) do każdego statecznika — poziom, do którego powracają po włączeniu magistrali DALI        |
| Wszystkie — Ustaw poziom System-failure | Broadcastuje nowy poziom system-failure (0–100 %) do każdego statecznika — poziom, który przyjmują przy awarii magistrali DALI        |

Odczyt (moduł)

```taphome
failRegister := modbusr(H, base_modifier + 0, Uint16) + 
(modbusr(H, base_modifier + 1, Uint16) << 16) +
(modbusr(H, base_modifier + 2, Uint16) << 32) +
(modbusr(H, base_modifier + 3, Uint16) << 48)
```

Akcje serwisowe

All - On

```taphome
modbusw(H, base_modifier + 6801, uint16, 1);
```

All - Off

```taphome
modbusw(H, base_modifier + 6801, uint16, 0);
```

All - Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
modbusw(H, base_modifier + 6812, uint16, Lvl);
```

All - Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
modbusw(H, base_modifier + 6813, uint16, Lvl);
```

ECG 0 Ściemniacz Odczyt i zapis

Indywidualny statecznik DALI pod krótkim adresem 0 — ściemniacz ze sprzężeniem zwrotnym aktualnego poziomu, statusem awarii statecznika/lampy, zapisem arc power i konfiguracją fade time/rate oraz poziomu power-on / system-failure per ECG

Rejestr: H:6 → H:15 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                       |                                                                                                                                                                       |
|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Główny typ urządzenia | Typ urządzenia DALI — Fluorescent (0), Emergency (1), Discharge (2), Halogen (3), Incandescent (4), Digital signal (5), LED (6), Switching (7) lub Colour Control (8) |
| Poziom Power-on       | Poziom (0–100 %), do którego statecznik powraca po włączeniu magistrali DALI                                                                                          |
| Poziom System-failure | Poziom (0–100 %), który statecznik przyjmuje przy awarii magistrali DALI                                                                                              |
| Fade Time             | Indeks DALI fade-time (0–15) — czas osiągnięcia poziomu docelowego przy bezpośrednich zapisach arc power                                                              |
| Fade Rate             | Indeks DALI fade-rate (1–15) — prędkość poleceń step up / step down                                                                                                   |

Akcje serwisowe

|                             |                                                                                                       |
|-----------------------------|-------------------------------------------------------------------------------------------------------|
| Ustaw poziom Power-on       | Zapisuje nowy poziom power-on (0–100 %) do tego ECG                                                   |
| Ustaw poziom System-failure | Zapisuje nowy poziom system-failure (0–100 %) do tego ECG                                             |
| Ustaw Fade Time             | Zapisuje nowy indeks DALI fade-time (0–15) do tego ECG                                                |
| Ustaw Fade Rate             | Zapisuje nowy indeks DALI fade-rate (1–15) do tego ECG                                                |
| Dodaj do grupy DALI         | Przypisuje ten ECG do grupy DALI (0–15), aby można go było adresować przez broadcast ściemniacz grupy |
| Usuń z grupy DALI           | Usuwa ten ECG z określonej grupy DALI (0–15)                                                          |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 1 Ściemniacz Odczyt i zapis

Rejestr: H:106 → H:115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 2 Ściemniacz Odczyt i zapis

Rejestr: H:206 → H:215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 3 Ściemniacz Odczyt i zapis

Rejestr: H:306 → H:315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 4 Ściemniacz Odczyt i zapis

Rejestr: H:406 → H:415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 5 Ściemniacz Odczyt i zapis

Rejestr: H:506 → H:515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 6 Ściemniacz Odczyt i zapis

Rejestr: H:606 → H:615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 7 Ściemniacz Odczyt i zapis

Rejestr: H:706 → H:715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 8 Ściemniacz Odczyt i zapis

Rejestr: H:806 → H:815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 9 Ściemniacz Odczyt i zapis

Rejestr: H:906 → H:915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 10 Ściemniacz Odczyt i zapis

Rejestr: H:1006 → H:1015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 11 Ściemniacz Odczyt i zapis

Rejestr: H:1106 → H:1115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 12 Ściemniacz Odczyt i zapis

Rejestr: H:1206 → H:1215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 13 Ściemniacz Odczyt i zapis

Rejestr: H:1306 → H:1315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 14 Ściemniacz Odczyt i zapis

Rejestr: H:1406 → H:1415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 15 Ściemniacz Odczyt i zapis

Rejestr: H:1506 → H:1515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 16 Ściemniacz Odczyt i zapis

Rejestr: H:1606 → H:1615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 17 Ściemniacz Odczyt i zapis

Rejestr: H:1706 → H:1715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 18 Ściemniacz Odczyt i zapis

Rejestr: H:1806 → H:1815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 19 Ściemniacz Odczyt i zapis

Rejestr: H:1906 → H:1915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 20 Ściemniacz Odczyt i zapis

Rejestr: H:2006 → H:2015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 21 Ściemniacz Odczyt i zapis

Rejestr: H:2106 → H:2115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 22 Ściemniacz Odczyt i zapis

Rejestr: H:2206 → H:2215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 23 Ściemniacz Odczyt i zapis

Rejestr: H:2306 → H:2315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 24 Ściemniacz Odczyt i zapis

Rejestr: H:2406 → H:2415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 25 Ściemniacz Odczyt i zapis

Rejestr: H:2506 → H:2515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 26 Ściemniacz Odczyt i zapis

Rejestr: H:2606 → H:2615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 27 Ściemniacz Odczyt i zapis

Rejestr: H:2706 → H:2715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 28 Ściemniacz Odczyt i zapis

Rejestr: H:2806 → H:2815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 29 Ściemniacz Odczyt i zapis

Rejestr: H:2906 → H:2915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 30 Ściemniacz Odczyt i zapis

Rejestr: H:3006 → H:3015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 31 Ściemniacz Odczyt i zapis

Rejestr: H:3106 → H:3115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 32 Ściemniacz Odczyt i zapis

Rejestr: H:3206 → H:3215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 33 Ściemniacz Odczyt i zapis

Rejestr: H:3306 → H:3315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 34 Ściemniacz Odczyt i zapis

Rejestr: H:3406 → H:3415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 35 Ściemniacz Odczyt i zapis

Rejestr: H:3506 → H:3515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 36 Ściemniacz Odczyt i zapis

Rejestr: H:3606 → H:3615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 37 Ściemniacz Odczyt i zapis

Rejestr: H:3706 → H:3715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 38 Ściemniacz Odczyt i zapis

Rejestr: H:3806 → H:3815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 39 Ściemniacz Odczyt i zapis

Rejestr: H:3906 → H:3915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 40 Ściemniacz Odczyt i zapis

Rejestr: H:4006 → H:4015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 41 Ściemniacz Odczyt i zapis

Rejestr: H:4106 → H:4115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 42 Ściemniacz Odczyt i zapis

Rejestr: H:4206 → H:4215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 43 Ściemniacz Odczyt i zapis

Rejestr: H:4306 → H:4315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 44 Ściemniacz Odczyt i zapis

Rejestr: H:4406 → H:4415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 45 Ściemniacz Odczyt i zapis

Rejestr: H:4506 → H:4515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 46 Ściemniacz Odczyt i zapis

Rejestr: H:4606 → H:4615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 47 Ściemniacz Odczyt i zapis

Rejestr: H:4706 → H:4715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 48 Ściemniacz Odczyt i zapis

Rejestr: H:4806 → H:4815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 49 Ściemniacz Odczyt i zapis

Rejestr: H:4906 → H:4915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 50 Ściemniacz Odczyt i zapis

Rejestr: H:5006 → H:5015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 51 Ściemniacz Odczyt i zapis

Rejestr: H:5106 → H:5115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 52 Ściemniacz Odczyt i zapis

Rejestr: H:5206 → H:5215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 53 Ściemniacz Odczyt i zapis

Rejestr: H:5306 → H:5315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 54 Ściemniacz Odczyt i zapis

Rejestr: H:5406 → H:5415 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 55 Ściemniacz Odczyt i zapis

Rejestr: H:5506 → H:5515 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 56 Ściemniacz Odczyt i zapis

Rejestr: H:5606 → H:5615 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 57 Ściemniacz Odczyt i zapis

Rejestr: H:5706 → H:5715 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 58 Ściemniacz Odczyt i zapis

Rejestr: H:5806 → H:5815 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 59 Ściemniacz Odczyt i zapis

Rejestr: H:5906 → H:5915 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 60 Ściemniacz Odczyt i zapis

Rejestr: H:6006 → H:6015 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 61 Ściemniacz Odczyt i zapis

Rejestr: H:6106 → H:6115 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 62 Ściemniacz Odczyt i zapis

Rejestr: H:6206 → H:6215 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

ECG 63 Ściemniacz Odczyt i zapis

Rejestr: H:6306 → H:6315 UInt16 Jednostka: % numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Main Device Type          |
| Power On Level \[%]       |
| System Failure Level \[%] |
| Fade Time                 |
| Fade Rate                 |

Akcje serwisowe

|                          |
|--------------------------|
| Set Power-on Level       |
| Set System-failure Level |
| Set Fade Time            |
| Set Fade Rate            |
| Add to DALI Group        |
| Remove from DALI Group   |

Odczyt (moduł)

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
```

Inicjalizacja

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
```

Odczyt poziomu

```taphome
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
```

Zapis poziomu

```taphome
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
```

Atrybuty serwisowe

Main Device Type

```taphome

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
```

Power On Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
```

System Failure Level \[%]

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
```

Fade Time

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
```

Fade Rate

```taphome
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
```

Akcje serwisowe

Set Power-on Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set System-failure Level

Parametry: Level (0–100 Lvl)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Time

Parametry: Fade Time (0–15 FT)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
```

Set Fade Rate

Parametry: Fade Rate (1–15 FR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
```

Add to DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Remove from DALI Group

Parametry: Group (0–15 GR)

```taphome
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
```

Grupa DALI 0 Ściemniacz Odczyt i zapis

Ściemniacz broadcast tylko do zapisu dla wszystkich ECG przypisanych do grupy DALI 0 — brak sprzężenia zwrotnego odczytu, TapHome śledzi poziom tylko z danych wejściowych użytkownika

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 1 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 2 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 3 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 4 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 5 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 6 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 7 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 8 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 9 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 10 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 11 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 12 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 13 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 14 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

Grupa DALI 15 Ściemniacz Odczyt i zapis

UInt16 Jednostka: % numeric

Zapis poziomu

```taphome
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
```

**Połączenie:** Modbus RTU • 9600 baud• 8N1 • Slave ID: $\[SlaveId]

Możliwe ulepszenia (40)

- H:6800 Broadcast Arc Power Level — Write 0–100 % to set every ballast on the DALI line to the same arc power level — not exposed as an action; only per-group (6400+20\*GR) and All On/Off (6801) are wired up
- H:6802 Broadcast Step Down / Up — 0 = Step Down, 1 = Step Up applied to all ECGs on the line (step size controlled by each ECG's Fade Rate)
- H:6803 Broadcast Recall Min Level — Write 1 → every ballast jumps to its individually configured Min Level
- H:6804 Broadcast Recall Max Level — Write 1 → every ballast jumps to its individually configured Max Level
- H:6805 Broadcast Go to Scene — Write 0–15 to recall a DALI scene on every ballast (scenes pre-configured in MAPS or via Set Scene action per ECG)
- H:6806 Broadcast Store Current Level as Scene — Write 0–15 to save the current arc power level of every ballast into the selected scene slot
- H:6807 Broadcast Clear/Remove Scene — Write 0–15 to erase the selected scene on every ballast
- H:6808 Broadcast Set Fade Time — Write 0–15 to apply the same fade-time index to every ballast (faster than per-ECG configuration for uniform fades)
- H:6809 Broadcast Set Fade Rate — Write 1–15 to apply the same fade-rate index to every ballast
- H:6810 Broadcast Set Min Level — Write 0–100 % to set the same minimum dim level on every ballast
- H:6811 Broadcast Set Max Level — Write 0–100 % to set the same maximum dim level on every ballast
- H:6814 Broadcast Multicontrol — Compound register — 0=Off, 1=100%, 2=StpUp, 3=StpDwn, 1XX=GoScene(XX), 2XX=StoreScene, 3XX=RmvScene, 1XXX=FdRate, 2XXX=FdTime, 3XXX=MinLvl, 4XXX=MaxLvl, 5XXX=PwrOnLvl, 6XXX=SysFailLvl; enables 'one-write many-ops' for advanced BMS scripting
- H:SA+8 Physical Minimum Level (per ECG) — Hardware-defined minimum dim level per ballast (distinct from user-settable Min Level at +9); read-only
- H:SA+16 Arc Power Off/On (per ECG) — R/W toggle: 0 = Off, 1 = 100 %; TapHome writes arc power level at +15 instead which covers the same capability
- H:SA+17 Step Down/Up (per ECG) — 0 = Step Down, 1 = Step Up — relative dimming per ballast using the stored fade-rate
- H:SA+18 Recall Min Level (per ECG) — Write 1 → this ECG jumps to its Min Level
- H:SA+19 Recall Max Level (per ECG) — Write 1 → this ECG jumps to its Max Level
- H:SA+20 Go to Scene (per ECG) — 0–15 scene recall per ballast
- H:SA+21 Store Current Level as Scene (per ECG) — 0–15 scene save per ballast
- H:SA+22 Clear/Remove Scene (per ECG) — 0–15 scene clear per ballast
- H:SA+25 Set Min Level (per ECG) — 0–100 %; R/W — TapHome reads current min via service attribute Fade Time but does NOT expose a writer for minLevel (template caches the read value into minLevel variable for writelevel linear mapping)
- H:SA+26 Set Max Level (per ECG) — 0–100 %; mirror of the above for maxLevel
- H:SA+31 Multicontrol (per ECG) — Compound write (see Broadcast Multicontrol for encoding) — advanced single-register scripting entry-point per ECG
- H:6401+20\*GR Group Arc Power Off/On — Group-wide 0/100 % toggle; template only exposes Arc Power Level (group writelevel), so ON/OFF is achievable only by writing 0 or 100
- H:6402+20\*GR Group Step Down/Up — Relative dim per group
- H:6403+20\*GR Group Recall Min Level
- H:6404+20\*GR Group Recall Max Level
- H:6405+20\*GR Group Go to Scene — 0–15
- H:6406+20\*GR Group Store Current Level as Scene — 0–15
- H:6407+20\*GR Group Clear/Remove Scene — 0–15
- H:6408+20\*GR Group Set Fade Time — 0–15
- H:6409+20\*GR Group Set Fade Rate — 1–15
- H:6410+20\*GR Group Set Min Level — 0–100 %
- H:6411+20\*GR Group Set Max Level — 0–100 %
- H:6412+20\*GR Group Set Power-on Level — 0–100 %
- H:6413+20\*GR Group Set System-failure Level — 0–100 %
- H:SA+42..+73 Emergency Control Gear (EML) signals — Failure Status, Emergency Mode, Battery Charge, Function/Duration test control, Rated Duration, Prolong Time, Store* parameters — Entire DALI Emergency (Part 202) feature set: SA+42 Failure Status, +43 Emergency Mode, +44 Emergency Status, +45 Battery Charge %, +46..+49 test schedule, +50..+57 timing/level config, +60..+68 trigger writes (Rest, Inhibit, Start/Stop tests, Reset Lamp Time), +69..+73 Store* R/W settings; ECGs of type 1 (Emergency) in this template fall back to the generic Fluorescent/LED script, so none of these are surfaced — dedicated EML template would be needed
- H:SA+80..+93 LED Control Gear (Device Type 6) signals — Failure Status bitmask, Gear Type, Dimming Curve, Operating Modes, Reference Running, Current Protector, Fast Fade Time, Enable/Disable Current Protector, Select Dimming Curve, Store Fast Fade Time — Advanced LED diagnostics and tuning per DALI-2 Part 207; template uses only the common signals (0..28) so LED-specific bits are not exposed even though gateway supports them
- 14000 + 640\*LINE + 10\*IDX + INSTANCE + 1280\*SIG DALI Input Devices (Occupancy, Light sensors, Push buttons, Absolute inputs) — Gateway supports up to 64 DALI input devices per line (recommended 16 with push buttons) — occupancy (0/1/2/3), light level (lux), push-button event bitmask (press/release/short/double/long), absolute input (0–100 % / raw); template exposes NO input devices. Local management (gateway directly drives ECGs from push-button events) is also unused. This is the largest feature gap for IBOX-MBS-DALI integrations that use DALI-native sensors
- H:SA+29 (Add to DALI Group), H:SA+30 (Remove from DALI Group) Add/Remove DALI Group (per ECG) — Firmware-drift deprecation: the r1.5 manual (May 2024) marks signals 29–30 as 'Not used' in the common-signals table, but the TapHome template still exposes them as per-ECG service actions ('Add to DALI Group' / 'Remove from DALI Group') because they were functional on earlier firmware where this template was authored. Behavior on latest firmware should be verified before relying on group-membership-at-runtime writes; configure groups via Intesis MAPS commissioning instead for stable deployments

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Slave Id            | `1`           |
| IP address          | `192.168.1.0` |

## Źródła

- Intesis Modbus Server – DALI User Manual (r1.5, 2024)
  
  [www.hms-networks.com](https://www.hms-networks.com/docs/default-source/products/intesis/manuals-and-guides---manuals/user-manual-inmbsdalxxx0000.pdf) 2026-04-24
  
  [PDF](https://taphome.com/compatibility/devices/intesis-dali/manufacturer/user-manual.pdf)
- IBOX-MBS-DALI Installation Sheet (rev. 1.5)
  
  [cdn.chipkin.com](https://cdn.chipkin.com/assets/uploads/2019/Oct/intesisbox_ibox-mbs-dali_installation_manual_en_14-15-15-02.pdf) 2026-04-24
  
  [PDF](https://taphome.com/compatibility/devices/intesis-dali/manufacturer/installation-manual.pdf)

Dokumenty producentów są © ich właścicieli. Udostępniamy je w formie opublikowanej przez producenta, wyłącznie w celach informacyjnych.

## Powiązana dokumentacja

- [Modbus Integration](https://taphome.com/pl/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/pl/docs/integration/modbus/)
- [Prosta konfiguracja za pomocą szablonów](https://taphome.com/pl/docs/integration/modbus/templates/)
- [Skrypty Modbus i prefetch](https://taphome.com/pl/docs/script/modbus-scripts/)
- [Funkcje Modbus](https://taphome.com/pl/docs/script/modbus/)
- [Typy danych Modbus](https://taphome.com/pl/docs/script/modbus-data-types/)

## Rozwiązywanie problemów

Częste problemy związane z tym tematem:

- [Światła DALI włączają się same](https://taphome.com/pl/troubleshooting/wiring/dali-lights-switch-on-by-themselves/) — Światła DALI za bramką DALI bez żadnego polecenia włączają się na minimum lub zmieniają jasność, zwykle za każdym razem te same kilka świateł. Magistrala jest na chwilę zakłócana — przez bramkę, zwarcie na jednej gałęzi lub spadek napięcia.

[Zobacz wszystkie artykuły rozwiązywania problemów](https://taphome.com/pl/troubleshooting/)

