Šablóna Resi DALI je runtime prevádzkový pendant nástroja Resi Dali - Konfigurácia na uvedenie do prevádzky. Pripája TapHome k plne adresovanej DALI svetelnej zbernici cez bránu RESI-DALI-SIO alebo RESI-DALI-ETH (Modbus-DALI) a sprístupňuje denné ovládanie pre až 64 individuálne adresovaných DALI ovládacích zariadení (gears) (krátke adresy 0–63) a 16 DALI broadcast skupín (0–15), plus per-gear DALI 1.0 stav, diagnostika porúch lampy a porúch napájania.
Komunikácia s bránou používa Modbus RTU pri 9600 baud 8N1. Zápisy jasu idú do H:510 LAMP LEVEL (per-gear) a H:520 GROUP LEVEL (per-skupina); per-gear konfiguračné príkazy a dotazy sú tunelované cez H:511 LAMP COMMAND / H:512 LAMP COMMAND + REPEAT, pričom register brány H:550 DALI STATUS sa pollie kvôli pripravenosti odpovede.
Táto šablóna predpokladá, že DALI krátke adresy sú už naprogramované na zbernici. Ak gear-y ešte nemajú adresu, použite najprv šablónu Resi Dali - Konfigurácia (alebo bezplatný nástroj výrobcu MODBUSConfigurator / DCA) na spustenie sprievodcu náhodným adresovaním DALI 2.0 — pozri Vzťah ku konfiguračnej šablóne nižšie.
RESI-DALI-SIO (RS-485) a RESI-DALI-ETH (Ethernet) sú master brány na DIN lištu, ktoré sú medzi sériovým/Ethernet hostom a DALI svetelnou zbernicou. SIO je v púzdre CEM17 (17,5 × 90 × 56,4 mm) a ETH v širšom púzdre CEM35 (35,8 × 90 × 56,4 mm), aby sa zmestil RJ45 konektor. Žiadna z brán nenapája DALI zbernicu sama — sprievodný DALI bus napájací zdroj (RESI-DALI-PS alebo akýkoľvek kompatibilný 200 mA DALI PSU) je povinný.
Zapojenie RESI-DALI-SIO (RS-485)
Svorky na ľavej strane RESI-DALI-SIO (zhora → nadol): GND, +12..48V=, RS485 DATA+ (A+), RS485 DATA- (B-), RS485 GND, RS232 TX, RS232 RX, RS232 GND. Svorky DALI zbernice na opačnej strane sú D+ / N/C / D- (3-pinový USLIM blok, prostredný N/C pin zostáva nezapojený).
Pre TapHome inštaláciu použite RS-485 rozhranie:
RS485 DATA+ (A+) → A+/D+ na TapHome RS-485 zbernici
RS485 DATA- (B-) → B-/D- na TapHome RS-485 zbernici
RS485 GND → GND na TapHome napájacom zdroji (odporúčané pre stabilnú komunikáciu)
+12..48V= / GND → 12–48 V DC primárne napájanie
Zapojenie RESI-DALI-ETH (Ethernet)
Ethernetová varianta má rovnaké svorky DALI zbernice (D+ / N/C / D-) a vstupy primárneho napájania (GND, +12..48V=), plus jediný RJ45 konektor pre 10/100 Mbit Ethernet. Továrenské IP nastavenia sú 192.168.0.191 / 255.255.255.0 / 192.168.0.1 s Modbus Unit ID 255; vstavané webové UI používa prihlasovacie údaje RESI / RESI.
Keďže ide o Modbus RTU šablónu, TapHome nekomunikuje s RESI-DALI-ETH cez natívny Modbus/TCP. Použite ho radšej v transparentnom režime RTU-over-Ethernet, alebo umiestnite SIO za sériovo-IP most (Moxa NPort, USR-TCP232) — pozri Konfigurácia → Nastavenie RTU-over-TCP nižšie.
DALI bus napájací zdroj (RESI-DALI-PS)
RESI-DALI-PS poskytuje až 200 mA na DALI zbernici (skratový prúd ~225 mA, napätie zbernice typicky 14–18 V) a podporuje až 64 DALI 1.0 predradníkov alebo DALI 2.0 ovládacích zariadení na jednej linke. Primárna strana akceptuje rovnaké 12–48 V DC napájanie ako jednotka SIO/ETH. Brána a PSU sa pripájajú na rovnaký pár D+ / D- — PSU napája zbernicu, pričom brána číta a zapisuje DALI rámce.
Tri LED diódy na PSU pomáhajú pri diagnostike porúch: POWER (primárne 12–48 V OK, počas normálnej prevádzky stále svieti), DALI (krátko bliká počas DALI komunikácie), ERR (trvalo svieti pri poruche PSU, DALI skrate alebo preťažení zbernice — počas normálnej prevádzky musí byť zhasnutá).
Topológia DALI zbernice
DALI linka má niekoľko tvrdých obmedzení, ktoré priamo ovplyvňujú stabilitu prevádzky:
Prierez vodiča
Max dĺžka DALI kábla
1,5 mm²
300 m
1,0 mm²
238 m
0,75 mm²
174 m
0,5 mm²
116 m
Limit vychádza z maximálne povoleného úbytku napätia 2 V na DALI kábli. Ďalšie pravidlá:
Maximálne 64 DALI 1.0 predradníkov a až 64 DALI 2.0 ovládacích zariadení na zbernici (oddelené priestory krátkych adries).
Iba stromová topológia — žiadne kruhy, žiadne slučky.
Skutočný počet gear-ov závisí aj od menovitého prúdu PSU (typicky 200 mA na RESI-DALI-PS; rátajte ~2 mA na gear plus rezervu).
RESI-DALI-PS (alebo ekvivalentný DALI PSU) je povinný. Bez neho brána nemôže napájať zbernicu a každé per-gear čítanie skončí timeoutom “Gear not present!”. Ak sa na dlhú linku pridá druhý PSU, vložte DALI tlmivku alebo rozdeľte zbernicu na galvanicky oddelené segmenty.
Sériové parametre hosta na RESI-DALI-SIO sa volia 4-polohovým DIP prepínačom na module. TapHome šablóna je fixne nastavená na 9600 baud 8N1, takže DIP prepínače musia zodpovedať.
DIP1
DIP2
Baud rate
OFF
OFF
9600 bd (vyžadované TapHome)
ON
OFF
19200 bd
OFF
ON
38400 bd
ON
ON
Použije baud rate z FLASH (továrenský default 57600 bd)
DIP4
Zdroj Modbus Unit ID
OFF
FLASH register H:65221 je akceptovaný — vyžadované, ak bola počas uvedenia do prevádzky naprogramovaná neštandardná Slave ID
ON
Hardvérový fallback — Unit ID je vynútene 255, FLASH hodnota je ignorovaná
DIP3 je pre produkt vyhradený rezervný bit; nechajte ho v továrenskej polohe. Parita je fixná na None a stop bit na 1 (formát rámca 8N1) pre kombinácie DIP1/DIP2 baud rate vybrané vyššie.
RS-485 zakončenie: ukončte zbernicu odporom 120 Ω na oboch koncoch. TapHome Core poskytuje jedno zakončenie na svojich BUS svorkách; ak je RESI brána posledným zariadením na linke, pridajte diskrétny 120 Ω rezistor medzi A+ / B- na jej RS-485 svorkách.
Slave ID
Továrensky predvolená Modbus Unit ID je 255 (FLASH register H:65221 číta 0xFFFF, čo brána klampuje na 255). Šablóna sprístupňuje servisný atribút na úrovni modulu Slave ID, ktorý spätne číta tento register, takže nakonfigurovanú adresu možno overiť po importe.
Zmena Slave ID je záležitosťou uvedenia do prevádzky riešená sesterskou šablónou Resi Dali - Konfigurácia — táto runtime šablóna zámerne nezapisuje do H:65221 ani nespúšťa softvérový reset, takže môže ostať aktívna v projekte bez rizika náhodnej rekonfigurácie brány.
Nastavenie RTU-over-TCP
Keďže šablóna používa Modbus RTU pripojenie, ponúka sa aj importný parameter IpAddress pre inštalácie, kde TapHome dosiahne bránu cez sériovo-IP most (Moxa NPort, USR-TCP232) alebo cez RESI-DALI-ETH v transparentnom režime RTU-over-Ethernet. V tom prípade nasmerujte IpAddress na IP mosta / ETH jednotky a všetky ostatné nastavenia ponechajte rovnaké ako pri RS-485 variante. Pre čistý Modbus/TCP by bola prirodzenejšia TCP-based šablóna — táto Modbus RTU šablóna konkrétne očakáva rámcovanú RTU komunikáciu.
Iba jeden Modbus master naraz. Ani DALI ani Modbus RTU nearbitrujú medzi súbežnými master-mi. Ak PLC, BMS alebo PC nástroj (napríklad MODBUSConfigurator) tiež pollie bránu, dotazy gear-ov budú kolidovať a TapHome bude hlásiť sporadické chyby “Gear not responding!”.
Tá istá definícia Dali.xml sa s RESI bránou dodáva ako dve komplementárne TapHome šablóny, ktoré pracujú na rôznych fázach životného cyklu rovnakého hardvéru:
Šablóna
Fáza
Čo robí
Kedy použiť
Resi Dali - Konfigurácia (resi-dali-daliconfig)
Jednorazové uvedenie do prevádzky
Sprievodca DALI 2.0 náhodným adresovaním, per-adresa probe device-type, broadcast ON/OFF testy zdravia, Set Slave ID, Reset Gateway
Nová inštalácia: priraďte krátke adresy 0–63 ovládacím zariadeniam, overte ktoré adresy sú obsadené
Resi DALI (resi-dali-dali, táto šablóna)
Denné runtime ovládanie
Per-gear stmievanie (64 gear-ov), skupinové stmievanie (16 skupín), per-gear DALI 1.0 diagnostika, správa členstva v skupinách
Po uvedení do prevádzky: koncové ovládanie osvetlenia
Typický priebeh projektu:
Zapojte a napájajte DALI zbernicu (RESI-DALI-PS) a bránu.
Importujte šablónu Resi Dali - Konfigurácia, spustite Reset Short Addresses → Start → Scan / SEARCHADDR / COMPARE / PROGRAM SHORT ADDRESS / Check, kým každý viditeľný gear nemá krátku adresu. Overte cez Gear 0..63 a Turn On / Off All Lamps.
Odstráňte modul Resi Dali - Konfigurácia z projektu.
Importujte šablónu Resi DALI (túto) na runtime ovládanie. Namapujte zariadenia Gear N a Group N na TapHome scény, časovače a pravidlá.
Obe šablóny môžu aj dočasne koexistovať — napr. pri pridávaní nového gear-u do živej inštalácie — ale len jedna by mala posielať Modbus komunikáciu naraz. Runtime šablóna zámerne vynecháva akcie rekonfigurácie brány (Reset Gateway, Set Slave ID, broadcast ALL LEVEL), aby mohla zostať v projekte bez rizika prepísania nastavení uvedenia do prevádzky.
Bezplatný DCA nástroj výrobcu MODBUSConfigurator (Windows, dostupný zo stránky RESI) možno tiež použiť na uvedenie do prevádzky namiesto TapHome šablóny Resi Dali - Konfigurácia. Runtime šablóna Resi DALI funguje rovnako bez ohľadu na to, ktorý nástroj bol použitý na priradenie krátkych adries.
Šablóna sprístupňuje 80 DALI zariadení v TapHome, organizovaných v dvoch paralelných skupinách: 64 stmievačov Gear (jeden na každú DALI krátku adresu) a 16 stmievačov Group (jeden na každú DALI skupinu). Jeden servisný atribút na úrovni modulu dopĺňa obraz.
Per-gear stmievanie — Gear 0 … Gear 63
Každé zo 64 servisných zariadení Gear 0, Gear 1, … Gear 63 je TapHome stmievač, ktorý cieli na jediné DALI ovládacie zariadenie pri zodpovedajúcej krátkej adrese. Zápisy jasu idú do H:510 LAMP LEVEL (TapHome 0–100 % je škálované lineárne do rozsahu DALI arc power, ohraničeného vlastnou MIN LEVEL a MAX LEVEL gear-u); skutočná úroveň sa spätne číta z H:511 cez DALI príkaz QUERY ACTUAL LEVEL (0xA0) a preškáluje sa späť do 0–100 %.
Keď šablóna importuje gear, init skript najprv probuje gear cez QUERY STATUS (0x91); odpoveď 0x8000 „bez odpovede" označí gear ako neprítomný (s 1–60 s exponenciálnym back-off) a v TapHome logu vypíše „Gear not present!". Ak gear odpovie, init skript ďalej prečíta QUERY LAMP FAILURE (0x92), QUERY POWER FAILURE (0x9B), QUERY MIN LEVEL (0xA2) a QUERY MAX LEVEL (0xA1) a uloží výsledky do interného stavu pre periodický readscript.
Každý gear sprístupňuje 10 servisných atribútov, ktoré na požiadanie čítajú DALI 1.0 / 2.0 dotazy:
Servisný atribút
DALI príkaz
Hlási
Short Address
(interné)
Krátka adresa (0–63), na ktorú toto zariadenie cieli — fixovaná v čase importu šablóny
Device Type
QUERY DEVICE TYPE (0x99)
DT{n} (napr. DT0 fluorescenčný, DT6 LED, DT8 farebný / tunable white) alebo -- keď bez odpovede
Physical Min Level
QUERY PHYSICAL MIN LEVEL (0x9A)
Hardvérom vynútená minimálna úroveň stmievania v %
Max Level
QUERY MAX LEVEL (0xA1)
Nakonfigurovaná horná hranica použitá pri škálovaní 0–100 % na DALI arc power
Min Level
QUERY MIN LEVEL (0xA2)
Nakonfigurovaná dolná hranica použitá pri škálovaní 0–100 % na DALI arc power
Power Up Level
QUERY POWER ON LEVEL (0xA3)
Jas obnovený po opätovnom napájaní DALI zbernice
System Failure Level
QUERY SYSTEM FAILURE LEVEL (0xA4)
Jas prijatý, keď zbernica stratí komunikáciu na >500 ms
Groups
QUERY GROUPS 0-7 (0xC0) + QUERY GROUPS 8-15 (0xC1)
Čiarkami oddelený zoznam DALI skupín, do ktorých gear patrí (None alebo napr. 0,3,7)
Support Lamp Failure
QUERY LAMP FAILURE (0x92) capability bit
Yes / No / -- — kontroluje chybu „Lamp failure!" v periodickom readscripte
Support Power Failure
QUERY POWER FAILURE (0x9B) capability bit
Yes / No / -- — kontroluje chybu „Power failure!" v periodickom readscripte
Periodický readscript na každom gear-i číta aktuálnu arc úroveň (0xA0) a, keď je podporované, sleduje príznaky porúch lampy a porúch napájania — vystavené ako TapHome warningy/chyby, takže porucha žiarivkovej trubice alebo vypadnutý LED ovládač sa zobrazí v aktivity logu bez manuálneho pollovania.
Akcie konfigurácie per-gear
Štyri servisné akcie na každom Gear N zariadení zapisujú DALI konfiguračné príkazy (auto-opakované do 100 ms cez H:512 LAMP COMMAND + REPEAT, ako vyžadujú non-volatile DALI príkazy):
Add to Group (parameter Group ID 0–15) — posiela ADD TO GROUP (0x60+grp), takže gear vstúpi do zvolenej DALI skupiny a bude poslúchať následné broadcast zápisy skupiny.
Remove from Group (parameter Group ID 0–15) — posiela REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings — posiela DALI RESET (0x20); obnoví všetky NVM parametre gear-u (max/min/power-on/system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels — zachytí aktuálnu arc power a uloží ju ako Power On Level aj System Failure Level v poradí: STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D), každý s 10 ms medzerou.
Skupinové stmievanie — Group 0 … Group 15
Každé zo 16 servisných zariadení Group 0, Group 1, … Group 15 je write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u patriacemu do tej DALI skupiny, používajúc H:520 GROUP LEVEL (TapHome 0–100 % sa násobí 0xFE → DALI arc power 0–254). DALI nepovoľuje bráne spätne čítať úroveň skupiny — zbernica nesie iba broadcast zápis — takže TapHome drží poslednú zapísanú hodnotu ako „aktuálnu" úroveň. Na zariadeniach skupiny nie sú žiadne init ani read skripty.
Každé zariadenie Group N sprístupňuje dve servisné akcie pre hromadnú správu členstva:
Add All Lamps to Group — broadcastuje ADD TO GROUP (0x60+grp) cez H:532 ALL COMMAND + REPEAT. Každý gear na zbernici vstúpi do skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group — broadcastuje REMOVE FROM GROUP (0x70+grp). Každý gear opustí skupinu.
Použite skupinové stmievanie pre „kuchynské svetlá", „obývacie downlighty" alebo akúkoľvek zónu, kde má viacero gear-ov sledovať jediný stmievač. Skupinové zápisy sú oveľa efektívnejšie ako paralelné ovládanie jednotlivých gear-ov — jediná Modbus transakcia dosiahne až 64 gear-ov súčasne.
Diagnostika na úrovni modulu
Modul sprístupňuje jediný servisný atribút:
Slave ID — číta Modbus Unit ID uložené vo FLASH registri H:65221. Aktívne iba keď DIP4 = OFF; pri DIP4 = ON brána vynúti adresu 255 bez ohľadu na FLASH hodnotu. Použite na overenie adresy brány pred pridávaním ďalších zariadení, najmä po kole uvedenia do prevádzky, ktoré zapísalo neštandardnú ID.
Overte napätie DALI zbernice na gear-i: 11,5–22,5 V (typicky 14–16 V). Nižšie hodnoty zvyčajne indikujú skrat alebo zbernicu, ktorá je príliš dlhá pre prierez kábla (pozri Topológia DALI zbernice).
Skontrolujte LED ERR na RESI-DALI-PS — ak svieti, zbernica je v skrate, preťažená alebo PSU je chybný.
Spustite znova probovanie Gear N v sesterskej šablóne Resi Dali - Konfigurácia — runtime šablóna skúša znova iba každých 1–60 s s exponenciálnym back-off, konfiguračná šablóna dáva okamžité pass/fail per adresu.
Overte, či gear vôbec má krátku adresu. Ak bol vymenený alebo továrensky resetovaný na zbernici, bude bez adresy a musí byť znova uvedený do prevádzky cez Resi Dali - Konfigurácia.
Skupinové stmievanie nemá efekt
Overte, že aspoň jeden gear je členom skupiny — otvorte Gear N → Groups na každom podozrivom členovi a skontrolujte, či sa ID skupiny objavuje v čiarkami oddelenom zozname.
Ak chýba členstvo, spustite akciu Add to Group na každom gear-i jednotlivo, alebo použite Add All Lamps to Group na zariadení skupiny pre broadcast po celej zbernici.
Pamätajte, že Group N je write-only — slider stmievača v TapHome ukladá poslednú zapísanú hodnotu, ale nereflektuje skutočný stav zbernice. Ak sú gear-y vypnuté, príkaz úrovne skupiny na nich nemá efekt.
Porucha lampy / porucha napájania nie sú hlásené
Otvorte servisné atribúty gear-u a skontrolujte Support Lamp Failure / Support Power Failure. Ak ktorýkoľvek číta No, ovládač gear-u neimplementuje ten DALI 1.0 dotaz — periodický readscript blokuje zodpovedajúcu chybu a nikdy nebude varovať pre ten gear.
Spustite Reset to Default Settings na gear-i a znova importujte zariadenie. Init skript znova preverí oba capability bity počas ďalšieho čítacieho cyklu.
Sporadické Modbus chyby po uvedení do prevádzky
Uistite sa, že žiadny iný Modbus master (MODBUSConfigurator, PLC, BMS) súbežne nepollie bránu. DALI a Modbus nearbitrujú medzi master-mi.
Overte, že RS485 GND je pripojený medzi bránou a spoločnou zemou TapHome napájacieho zdroja — chýbajúca GND je najčastejšia chyba RS-485 na dlhých linkách.
Pre RTU-over-TCP cez sériový most potvrďte, že most beží v rámcovom RTU režime (nie raw TCP socket) a že medzi-znaková medzera na sériovej strane rešpektuje časovanie 9600 baud 8N1.
Ak sa symptómy objavili po zmene Slave ID cez šablónu Resi Dali - Konfigurácia, znova importujte túto runtime šablónu s novým importným parametrom SlaveId — predchádzajúci importovaný modul stále pollie na starej adrese.
Dostupné zariadenia
Resi DALIModul
Servisné atribúty
Slave ID
Číta Modbus Unit ID uložené vo FLASH registri H:65221 — aktívne iba keď DIP4=OFF (továrenský default 255). Použite na overenie adresy brány pred pridaním ďalších zariadení.
Resi Dali
Servisné atribúty
${xml_slave_id}
modbusr(H,65221,uint16)
Gear 0Stmievač
DALI ovládacie zariadenie pri krátkej adrese 0 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 0
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 1 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 1
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 2 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 2
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 3 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 3
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 4 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 4
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 5 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 5
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 6 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 6
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 7 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 7
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 8 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 8
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 9 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 9
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 10 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 10
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 11 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 11
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 12 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 12
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 13 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 13
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 14 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 14
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 15 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 15
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 16 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 16
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 17 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 17
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 18 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 18
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 19 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 19
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 20 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 20
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 21 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 21
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 22 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 22
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 23 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 23
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 24 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 24
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 25 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 25
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 26 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 26
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 27 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 27
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 28 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 28
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 29 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 29
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 30 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 30
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 31 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 31
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 32 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 32
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 33 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 33
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 34 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 34
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 35 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 35
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 36 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 36
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 37 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 37
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 38 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 38
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 39 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 39
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 40 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 40
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 41 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 41
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 42 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 42
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 43 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 43
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 44 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 44
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 45 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 45
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 46 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 46
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 47 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 47
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 48 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 48
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 49 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 49
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 50 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 50
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 51 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 51
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 52 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 52
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 53 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 53
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 54 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 54
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 55 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 55
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 56 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 56
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 57 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 57
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 58 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 58
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 59 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 59
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 60 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 60
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 61 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 61
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 62 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 62
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI ovládacie zariadenie pri krátkej adrese 63 — TapHome stmievač namapovaný na DALI arc power 0–100 % cez H:510 LAMP LEVEL (zápis) a QUERY ACTUAL LEVEL cez H:511 (čítanie), ohraničený vlastnou MIN / MAX LEVEL gear-u.
Register: H:511 → H:510UInt16Jednotka: %numeric
Servisné atribúty
Krátka adresa
DALI krátka adresa (0–63) cielená týmto zariadením — fixovaná v čase importu šablóny a použitá v hornom byte každého Modbus zápisu.
Device Type
DALI byte device-type vrátený cez QUERY DEVICE TYPE (0x99) — hlási DT0 (fluorescenčný), DT6 (LED ovládač), DT8 (farebný / tunable white) atď., alebo -- keď bez odpovede.
Physical Min Level
Hardvérom vynútená minimálna úroveň stmievania, ktorú gear hlási — čítané z QUERY PHYSICAL MIN LEVEL (0x9A), v percentách.
Max Level
Nakonfigurovaný DALI MAX LEVEL — čítané z QUERY MAX LEVEL (0xA1); použité ako horná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Min Level
Nakonfigurovaný DALI MIN LEVEL — čítané z QUERY MIN LEVEL (0xA2); použité ako dolná hranica pri škálovaní TapHome 0–100 % na DALI arc power.
Power Up Level
Jas obnovený po obnove napájania DALI zbernice — čítané z QUERY POWER ON LEVEL (0xA3).
System Failure Level
Jas prijatý, keď DALI zbernica stratí komunikáciu na viac ako 500 ms — čítané z QUERY SYSTEM FAILURE LEVEL (0xA4).
Skupiny
Čiarkami oddelený zoznam DALI skupín (0–15), do ktorých gear patrí — dekódovaný z QUERY GROUPS 0-7 (0xC0) a QUERY GROUPS 8-15 (0xC1); zobrazuje None alebo napr. 0,3,7.
Support Lamp Failure
Či lampa / ovládač podporuje detekciu poruchy lampy — Yes / No / --. Kontroluje chybu Lamp failure! v periodickom readscripte.
Support Power Failure
Či lampa / ovládač podporuje detekciu poruchy napájania — Yes / No / --. Kontroluje chybu Power failure! v periodickom readscripte.
Servisné akcie
Add to Group
Pridá tento gear do DALI skupiny (0–15) cez ADD TO GROUP (0x60+grp) — auto-opakované do 100 ms, ako vyžadujú DALI konfiguračné príkazy.
Remove from Group
Odstráni tento gear z DALI skupiny (0–15) cez REMOVE FROM GROUP (0x70+grp).
Reset to Default Settings
Posiela DALI RESET (0x20) — obnoví každý NVM parameter gear-u (max / min / power-on / system-failure level, členstvo v skupinách, scény) na továrenský default.
Set Startup Levels
Zachytí aktuálnu arc power a uloží ju ako Power On Level a System Failure Level — postupnosť STORE ACTUAL LEVEL IN DTR (0x21) → STORE DTR AS POWER ON LEVEL (0x2C) → STORE DTR AS SYSTEM FAILURE LEVEL (0x2D).
Gear 63
Čítanie (modul)
var x := 0; var rx := 0;
if Status > 0
Status := Status -1;
adderror("Gear not responding!");
return(0);
end
checkStatus := checkStatus -1;
if checkStatus < 1
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(10, 60);
adderror("Gear not present!");
else
Status := 0;
checkStatus := 60;
end
else
Status := RANDINT(10, 60);
adderror("Gear not responding!");
end
end
if suppLampFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Lamp failure!"), 0), 0);
end
if suppPowerFailure
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, if (x != 0xFF, adderror("Power failure!"), 0), 0);
end
Inicializácia
var x := 0; var rx := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x91);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if x != 0x8000
if x != 0xFF
Status := RANDINT(1, 60);
else
Status := 0;
end
else
Status := RANDINT(1, 60);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, maxLevel := x );
end
Čítanie úrovne
var x := 0; var rx := 0;
if Status = 0
if minLevel = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000, minLevel := x );
end
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
x := modbusr(SH, 511, uint16);
if (x != 0x8000 or rx, checkStatus := 60);
if (x != 0x8000 and x != 0xff, return( if(x = 0, 0, linear(x , minLevel, 0.01, maxLevel, 1)) ), return (Le));
else
return(NaN);
end
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x));
end
return("--")
Physical Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9A);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Max Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA1);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Min Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA2);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
Power Up Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA3);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
System Failure Level
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xA4);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return(round((x / 0xFE) * 100) + " %"));
end
return("--")
${xml_groups}
var x := 0; var rx := 0;
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC0);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g1 := modbusr(SH, 511, uint16);
if (g1 = 0x8000, return("--"));
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0xC1);
sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var g2 := modbusr(SH, 511, uint16);
if (g2 = 0x8000, return("--"));
var ret := "";
if (getbit(g1, 0), ret := ret + "0");
if (getbit(g1, 1), if (ret = "", ret := "1", ret := ret + ",1"));
if (getbit(g1, 2), if (ret = "", ret := "2", ret := ret + ",2"));
if (getbit(g1, 3), if (ret = "", ret := "3", ret := ret + ",3"));
if (getbit(g1, 4), if (ret = "", ret := "4", ret := ret + ",4"));
if (getbit(g1, 5), if (ret = "", ret := "5", ret := ret + ",5"));
if (getbit(g1, 6), if (ret = "", ret := "6", ret := ret + ",6"));
if (getbit(g1, 7), if (ret = "", ret := "7", ret := ret + ",7"));
if (getbit(g2, 0), if (ret = "", ret := "8", ret := ret + ",8"));
if (getbit(g2, 1), if (ret = "", ret := "9", ret := ret + ",9"));
if (getbit(g2, 2), if (ret = "", ret := "10", ret := ret + ",10"));
if (getbit(g2, 3), if (ret = "", ret := "11", ret := ret + ",11"));
if (getbit(g2, 4), if (ret = "", ret := "12", ret := ret + ",12"));
if (getbit(g2, 5), if (ret = "", ret := "13", ret := ret + ",13"));
if (getbit(g2, 6), if (ret = "", ret := "14", ret := ret + ",14"));
if (getbit(g2, 7), if (ret = "", ret := "15", ret := ret + ",15"));
if (ret = "", return("None"), return(ret));
else
return("--");
end
Support Lamp Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x92);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppLampFailure := 1, suppLampFailure := 0);
if (suppLampFailure, return("Yes"), return("No"));
end
return("--")
Support Power Failure
if Status = 0
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x9B);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, suppPowerFailure := 1, suppPowerFailure := 0);
if (suppPowerFailure, return("Yes"), return("No"));
end
return("--")
DALI broadcast skupina 0 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 0;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 0;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 1Stmievač
DALI broadcast skupina 1 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 1;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 1;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 2Stmievač
DALI broadcast skupina 2 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 2;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 2;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 3Stmievač
DALI broadcast skupina 3 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 3;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 3;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 4Stmievač
DALI broadcast skupina 4 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 4;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 4;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 5Stmievač
DALI broadcast skupina 5 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 5;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 5;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 6Stmievač
DALI broadcast skupina 6 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 6;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 6;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 7Stmievač
DALI broadcast skupina 7 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 7;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 7;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 8Stmievač
DALI broadcast skupina 8 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 8;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 8;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 9Stmievač
DALI broadcast skupina 9 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 9;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 9;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 10Stmievač
DALI broadcast skupina 10 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 10;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 10;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 11Stmievač
DALI broadcast skupina 11 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 11;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 11;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 12Stmievač
DALI broadcast skupina 12 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 12;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 12;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 13Stmievač
DALI broadcast skupina 13 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 13;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 13;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 14Stmievač
DALI broadcast skupina 14 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
var GroupAddress := 14;
modbusw(SH, 532, uint16, 0x60 + GroupAddress)
${xml_remove_from_group_all_lamps}
var GroupAddress := 14;
modbusw(SH, 532, uint16, 0x70 + GroupAddress)
Group 15Stmievač
DALI broadcast skupina 15 (0–15) — write-only TapHome stmievač, ktorý broadcastuje jednu hodnotu arc-power každému gear-u v tejto skupine cez H:520 GROUP LEVEL. Zbernica nezvracia úrovne skupín, takže TapHome drží poslednú zapísanú hodnotu.
UInt16Jednotka: %numeric
Servisné akcie
Add All Lamps to Group
Broadcastuje ADD TO GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici vstúpi do tejto skupiny bez ohľadu na svoju aktuálnu krátku adresu.
Remove All Lamps from Group
Broadcastuje REMOVE FROM GROUP cez H:532 ALL COMMAND + REPEAT — každý gear na zbernici opustí túto skupinu.
H:531ALL COMMAND (broadcast DALI command) — Single-shot broadcast DALI command (no repeat). Template uses H:532 (ALL COMMAND + REPEAT) for group membership but never exposes plain ALL OFF / ALL ON / ALL ARC POWER as a service action — turn-on/off-all are not present (sibling daliconfig template has them via H:530)
H:530ALL LEVEL (broadcast arc power) — Sets brightness for every gear in one Modbus write. Convenient 'turn off all lamps' / 'turn on all lamps' shortcut — implemented in the sibling daliconfig template, missing in this operational template
H:521GROUP COMMAND (per-group DALI command) — Per-group DALI command (single-shot). Could expose group-level OFF / RECALL MIN / RECALL MAX / GO TO SCENE as service actions on each Group device, but template only writes H:520 GROUP LEVEL
H:522GROUP COMMAND + REPEAT — Per-group DALI configuration command (auto-repeated within 100 ms). Required for STORE DTR AS GROUP SCENE etc. — not exposed as a service action
H:541DIRECT 16-BIT FRAME — Raw DALI 1.0 frame send. Used by sibling daliconfig template for the DALI 2.0 random-addressing algorithm; not needed for runtime brightness control
I:10020-I:10027DALI 24-BIT FRAME — DALI 2.0 24-bit frames — required for DT8 colour control (XY, colour temperature, RGBW), DALI 2.0 control gear queries, and DALI-2 input devices (push-buttons, presence detectors). Template exposes only DALI 1.0 brightness layer per gear
I:10030-I:10047DALI 25-BIT eDALI FRAME — Lunatone-proprietary 25-bit eDALI frames (auto and user redundant-bit variants). Not used by any DALI 1.0 gear
I:10050-I:10067DALI 28-BIT / 32-BIT FRAME — Extended DALI 2.0 frames (memory bank access, DALI-2 application controllers). Template scope is single-channel arc power per gear
H:500 (DSI VALUE)DSI 8-bit value send — Send a raw 8-bit DSI/DALI value with no addressing (bus-level diagnostics). Bypassed by every TapHome script
C:0 / H:551DALI Bus Error — 1 = DALI bus fault / short circuit / missing PSU. Useful diagnostic — could be added as a module-level service attribute. Currently bus errors only surface indirectly through 'Gear not responding!' errors emitted by per-gear readscripts
H:100DALI PRIORITY SLOT — 0..4 → 12-16 ms forward-frame timing. Default 2 (configuration). Bus-tuning parameter; template runs at default
H:6000DIP SWITCH / SOFTWARE RESET — Read returns the 4 DIP switch values; write 1 reboots the gateway. Sibling daliconfig template exposes Reset Gateway / Set Slave ID; this runtime template intentionally does not (commissioning concern)
H:65222 / H:65224 / H:65225BAUD_RATE / PARITY / STOP_BITS (FLASH) — FLASH-stored serial parameters. Template hard-codes 9600 8N1 in connection_details, so these are out of scope
I:0 / I:50-I:53 / scenesDALI 1.0 scenes (recall / store / query) — DALI 1.0 standard supports 16 stored scenes per gear/group recallable via GO TO SCENE (0x10..0x1F) and storable via STORE DTR AS SCENE (0x40..0x4F). Template exposes per-gear ADD/REMOVE FROM GROUP and RESET, but no scene recall/store/remove/query actions
H:512 (RECALL MAX/MIN/GOTO LAST/UP/DOWN/STEP)DALI 1.0 high-level commands per gear — RECALL MAX LEVEL (0x05), RECALL MIN LEVEL (0x06), UP (0x01), DOWN (0x02), STEP UP (0x03), STEP DOWN (0x04), GO TO LAST ACTIVE LEVEL (0x0A) — useful as service actions for visual feedback / smooth dimming. Not exposed; brightness goes only through linear scaling
H:512 (STORE DTR AS MAX/MIN/POWER ON/SYSTEM FAILURE LEVEL)Per-gear configuration write commands — STORE DTR AS MAX LEVEL (0x2A), STORE DTR AS MIN LEVEL (0x2B), STORE DTR AS POWER ON LEVEL (0x2C), STORE DTR AS SYSTEM FAILURE LEVEL (0x2D), STORE DTR AS FADE TIME / FADE RATE — template has 'Set Startup Levels' (combines 0x21, 0x2C, 0x2D) but does NOT expose individual writes for max/min/fade-time/fade-rate
H:511 (QUERY FADE TIME / FADE RATE / RANDOM ADDRESS / EXT VERSION)Additional DALI queries — QUERY FADE TIME / FADE RATE (0xA5), QUERY VERSION NUMBER (0x97), QUERY RANDOM ADDRESS H/M/L (0x98/0xC2/0xC3), QUERY CONTENT DTR/DTR1/DTR2 — not exposed in service attributes, only the 10 attributes listed per gear are populated
H:511 (QUERY CONTROL GEAR / RESET STATE / LIMIT ERROR / LAMP POWER ON / MISSING SHORT ADDRESS)DALI gear health / topology queries — QUERY CONTROL GEAR (0x90), QUERY RESET STATE (0x95), QUERY LIMIT ERROR (0x94), QUERY LAMP POWER ON (0x93), QUERY MISSING SHORT ADDRESS (0x96, broadcast) — diagnostic queries. Could be useful as module-level diagnostics; template exposes only QUERY STATUS / LAMP FAILURE / POWER FAILURE / DEVICE TYPE / MIN-MAX-PHYSICAL MIN-POWER UP-SYSTEM FAILURE LEVEL / GROUPS
H:511 (READ MEMORY LOCATION 0xC5)DALI memory bank read — READ MEMORY LOCATION (0xC5) is required to read DALI 2.0 memory banks (Bank 0 device GTIN, FW version, serial number; Bank 1 for emergency lighting). Not used
ASCII protocol commandsParallel ASCII text protocol — RESI gateway also exposes a CR-terminated text protocol (#LARC, #GARC, #AARC, #LGS, #LCMD, #LCMDA, #DALI CMDxx etc.). Template uses Modbus exclusively — ASCII would only matter for diagnostics/terminal access
DT6 fade time / fade rate / DAPC sequenceSmooth dimming primitives — DAPC (Direct Arc Power Control) sequence allows fast continuous level updates for smooth dimming. Each gear has stored fade time / fade rate that affect transitions. Template writes raw arc power without configuring fade behaviour
DT8 colour control (XY, colour temperature, RGBW)DALI DT8 tunable white / RGB / RGBW — DT8 colour control gears (tunable white CCT, XY colour, RGBW) require DALI 2.0 24-bit frames sent via H:541 / I:10020. Template exposes plain ModbusDimmer per gear — for DT8 lamps use a dedicated DT8 template
DT1 emergency lightingDALI DT1 self-contained emergency lights — Emergency-luminaire device type with periodic self-tests (function/duration test) and battery state queries. Out of scope — template is general-purpose dimming