Jak ovládat REST Api (URL) z Loxone

Jak ovládat REST Api (URL) z Loxone

Dnešní článek je první ze série tří článků pro začátečníky o tom, jak propojit Loxone s externími systémy. Dnes to bude o komunikaci REST API (tzn volání URL adresy vzdáleného zařízení), příště nás pak čeká ovládání zařízení přes ModbusTCP a nakonec pak ovládání skrz MQTT (kde je nutné využít externí NodeRED na převod požadavku do MQTT formátu). Všechny tři způsoby využití budu ukazovat na chytrých zásuvkách Netio, které tyto protokoly podporují.

Pro ty, co neví, co je REST protokol, tak zjednodušeně řečeno je to volání nějaké URL adresy a zpracování takové odpovědi. Typ REST požadavku může být buď klasický GET (to je, jako když zadáte nějakou url adresu do prohlížeče), POST (což je, když se odesílá třeba formulář na webové stránce), nebo pak již konkrétnější příkazy PUT/DELETE/PATCH, které se používají při úpravách dat skrz REST protokol.

Pro naše potřeby nám bude nyní stačit GET, jelikož Netio podporuje nastavování napřímo skrz REST URL ve formátu http://IP_ADRESA/netio.cgi?pass=heslo&output1=3&delay1=2000.  Pokud bychom ale například chtěli nastavovat stav nikoli přes URL, ale přes JSON či XML, využili bychom příkazu POST, pomocí kterého bychom na adresu http://IP_ADRESA/netio.json posílali JSON soubor s instrukcí pro zapnutí. Jelikož se ale v Loxonu s JSON či XML nepracuje úplně nejlépe (rozuměj téměř nijak), zůstaneme raději u mnohem snazšího URL.

Takto nějak vypadá cíl našeho dnešního snažení. Krom samotného vypínače na zapnutí a vypnutí chytré zásuvky uděláme ještě tlačítko, které na 2 sekundy zásuvku zapne a poté zase vypne.

Jako první v Loxone Configu přidáme “Virtuální výstup”, který si pojmenujeme třeba NetioREST a zadáme mu Adresu http://192.168.1.98  (pozor, adresa nesmí končit lomítkem).

Dále pak přidáme “Příkaz virtuálního výstupu” do vytvořeního virtuálního výstupu. Ten si pojmenujeme třeba OnOff a vyplníme instrukci při zapnutí a vypnutí (pozor, musí začínat lomítkem).  Příkaz k zapnutí/vypnutí má formát/netio.cgi?pass=Heslo&output_CISLO_VYSTUPU=STAV_VYSTUPU (podrobná dokumentace zde).

Krom samotného on/off pak přidáme ještě druhý příkaz na zapnutí zásuvky jen na 2 sekundy. To se dělá tak, že jako stav výstupu nastavíme hodnotu 3 a přidáme parametr “delay”. Přidáme tedy další “virtuální příkaz”, pojmenujeme ho třeba “Pulse” a jako instrukci pro zapnutí dáme /netio.cgi?pass=heslo&output1=3&delay1=2000. V tomto případě nebudeme dávat instrukci pro vypnutí, jelikož o vypnutí se postará zásuvka sama.

Takto vytvořené virtuální příkazy si pak nataháme do samotného Loxone plánu, kde je propojíme s tlačítkem a vypínačem. V případě On/off necháme tlačítko v režimu “vypínač”, zatímco v případě pulzního sepnutí nastavíme režim “tlačítko”.

A takto pak vypadá samotné zapínání/vypínání přes vypínač či tlačítko.

Jak vidíte, ovládání přes REST API není nic komplikovaného. Co bohužel v případě Loxone trochu komplikované je, je správně zadat ovládací URL. Více o tom, co všechno se může pokazit a jak takové chyby odladit jsem psal v dřívějším článku “Loxone virtuální vystupy a jejich debugging”.

 

Pomohl Vám náš blog? Chcete nás podpořit? I málo udělá radost 😉
Become a patron at Patreon!
0 0 votes
Hodnocení články
Subscribe
Notify of
guest

3 Komentáře
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
dalibor
3 years ago


hezky a srozumitelně napsané díky :-). Těším se na pokračování.
Mimochodem mi nějak klekla integrace Broadlinku přes node-red a jen proto, že jsem ( si sám ) napsal návod co tady ve wiki jsem to měl obnovené za 5 min.

Deflo
Guest
Deflo
2 years ago

Dnes od rana resim problem, ktery je kus jiny nez tenhle.
Je API, ktere vraci aktualni spotrebu plynu ve formatu
[ [ 1637416320, 0 ] ]
Co je unix cas a hodnota. Na api se dotazuje
https://api.energomonitor.com/v1/feeds/xy/streams/yz/data?limit=1
a v header se musi poslat Authorization: Bearer TOKEN
To cele bych chtel v loxone vizualizovat v grafu. Tak mne napadlo virtual vstup a statistika.
Nj ale u virtual vstupu nemuzu udelat header doplneni a pote ani rozumne vytazeni te hodnoty. Mate napad?

3
0
Would love your thoughts, please comment.x
()
x