Integrace Jablotron JA-100 do Loxone

Integrace Jablotron JA-100 do Loxone

Categories
You are here:
< Zpět

Požadavky:
– JA-121T Sběrnicové rozhraní RS-485 (dokumentace v PDF)
– Loxone RS485 extension

Integrace samotného základu je poměrně bezproblémová:

Nastavení extension v Loxone Config
– Serial Protocol: None
– End character: do not use
– Checksum: None
– Positive acknowledge: do not use
– Negative acknowledge: do not use

Ovládání alarmu – RS485 actuator(aktor) – příkazy
– ovládání sekce (příklad pro sekci 1)
– Command for ON: “1234 SET 1\r\n”
– Command for OFF: “1234 UNSET 1\r\n”
– zjištění stavu sekcí – Command for ON: “1234 STATE\r\n”
– zjištění stavu PG – Command for ON: “1234 PGSTATE\r\n”
– zjištění stavu periferií – Command for ON: “1234 PRFSTATE\r\n”
– ovládání PG (příklad pro PG 2)
– Command for ON: “1234 PGON 2\r\n”
– Command for OFF: “1234 PGOFF 2\r\n”
(příkazy samozřejmě zadávejte bez úvozovek a místo 1234 zadejte svůj bezp. kód)

Vyčítání informací – RS485 sensor
– zaalarmováno (příklad pro sekci 1) – Command recognition “STATE 1 ARMED”
– odalarmováno (příklad pro sekci 1) – Command recognition “STATE 1 READY”
PG 11 OFF
PG 11 ON

Pouze vynucené vyčítání periferií z Jablotronu pomocí PRFSTATE (není nutné tak čekat jen na automatické notifikace se zpoždením 8s) je komplikovanější, protože alarm odpovídá dvojnásobně dlouhým hexadecimálním řetězcem (32 znaků), který už Loxone a jeho \h nezvládne. Vždy vrátí 0. Řešení je trochu kostrbaté, ale plně funkční – je nutné parsovat vybrané znaky jako 1-4 bytové čísla a použít na ně formuli + binární dekodér.
Postup:
– přidejte 8 RS485 senzorů:
– JA PRFSTATE 00, Command recognition “PRFSTATE \2\1”
– JA PRFSTATE 01, Command recognition “PRFSTATE \s2\2\1”
– JA PRFSTATE 02, Command recognition “PRFSTATE \s4\2\1”
– JA PRFSTATE 03, Command recognition “PRFSTATE \s6\2\1”
– JA PRFSTATE 04, Command recognition “PRFSTATE \s8\2\1”
– JA PRFSTATE 05, Command recognition “PRFSTATE \s8\s2\2\1”
– JA PRFSTATE 06, Command recognition “PRFSTATE \s8\s4\2\1”
– JA PRFSTATE 07, Command recognition “PRFSTATE \s8\s6\2\1”

Větvit kód (kvůli dekódování HEXA z ASCII, kde ‘0’=48, ‘1’=49, … ‘9’=58 a pak ‘A’=65, ‘B’=66, … ‘F’=70)? Ternární operátor nahradím součtem součinů s 0 / 1. Na určení 0/1 by se dal použít… ha! Logaritmus! A hele, na uživatelských stránkách někdo objevil nedokumentovanou funkci INT() vracející celou složku reálného čísla! Hotovo. Výsledný vzorec vypadá strašlivě. Ale funguje 🙂

Na schématu jsou jsou řešení dvě. Na vstupu je 16b číslo tvořené dvěma ASCII HEX. Spodní dvě větve si dělají mezivýpočty – rozpad na horní a dolní byte a k tomu příznaky zda jde o 0-9 (nutno odečíst 48) a nebo A-F (nutno odečíst 55). Poslední prvek napravo pak pouze podle (vynásobením) příznaků na AI2 a AI4 odečte 48 nebo 55, horní byte vynásobí 16 a sečte.

A horní větev je to, co mě vlastně tak pobavilo. All-in-1. Peklo. Ale kdo někdy něco takového dělal, pochopí. Ten pocit, když překonáte takové překážky a navenek to vypadá elegantně (jen 1 prvek ve schématu). Co na tom, že uvnitř je něco, co nepřečte ani učitel algebry

Celý, v ještě větším detailu (vč. vysvětlení) jsem to popsal tady

Loxone zdar,

A.

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
Become a patron at Patreon!
Table of Contents

Leave a Reply

Your email address will not be published. Required fields are marked *