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 😉

2 thoughts on “Jak ovládat REST Api (URL) z Loxone

  1. @L
    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.

  2. To je presne duvod, proc ty navody pisu. Sam se k nim v pripade Loxone hodne casto vracim.

    Kolikrat na neco prijdu, nastavim a po par mesicich/letech uz ani nevim jak. A takhle se jen mrknu co a jak funguje a mam hned zase hotovo.

    Sem rad, ze to tak maji i ostatni 😉

Leave a Reply

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


Subscribe without commenting