Loxone – data do Grafany

Jedna z mnoha metod, jak dostat data z Loxony jinam, kromě toho, že např. použijeme MQTT, je využití nativních funkcí Loxony – Vitruální výstup.

Dále využijeme Apache a PHP jako operátora, kterému předáme data pomocí URL adresy a ten je uloží do databáze (MySQL nebo Influxdb). V rámci testování používám metody GET, kde vidím v logu přímo hodnoty, které z Loxony vystupují. Šlo by samozřejme použít pro přenos i metody POST.

Struktura tabulky pro ukládání dat bude obsahovat 4 sloupečky (index, timestamp, jméno senzoru, vlastní data). V budoucnu lze samozřejmě libovolně rozšiřovat.

CREATE TABLE data_teplota (
id_mereni int(11) NOT NULL,
timestamp_mereni timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
nazev_hodnoty char(40) NOT NULL,
data_hodnoty float(10,3) NOT NULL);
ALTER TABLE data_teplota
ADD PRIMARY KEY (id_mereni);
ALTER TABLE data_teplota
MODIFY id_mereni int(11) NOT NULL AUTO_INCREMENT;

Dále vytvoříme PHP skript, kterým se budou data z Loxone přijímat a následně ukládat do vytvořené tabulky. Obsah skriptu je velmi jednoduchý a univerzální, takže se může použít na jakékoliv ukládání hodnot co bude přijímat. Hlavní část, která se stará o vykonávání akcí. Nejsou zde žádné metody pro ošetření vstupů, co přijde na vstup URL, ukládá se do databáze.

    foreach ( $_GET as $key => $value )
    {
        $add_to_database = mysqli_query($spojeni, "INSERT INTO `data_teplota` (`id_mereni`, `timestamp_mereni`, `nazev_hodnoty`, `data_hodnoty`) VALUES (NULL, CURRENT_TIMESTAMP, '".$key."', '".$value."')");
    }

Skript uložíme (tag: RasPi, Apache, PHP) a otestujeme si jeho funkčnost zavoláním URL s odpovídajícími parametry, např. http://RasPi_IP_adresa/loxone.php?test=123.456. V tabulce by se tak měl objevit první řádek.

Tím máme skript hotov a poslední věcí je nastavit samotnou Loxonu, zde si vytvoříme pod Vitruální výstupy nový objekt, ve Vlastnostech nastavíme adresu RasPi. Pak vytváříme nové příkazy virtuálního výstupu. Pro každou potřebnou měřenou hodnotu vytvoříme nový jeden příkaz. Nastavíme jej podle obrázku, ve vlastnosti Instrukce při zapnutí zvolíme onen php skript (loxone.php) a jako jeho parametry (za ?) vložíme nazev_hodnoty a data_hodnoty (parametr <v.3> bude doplněn analogový výstup zaokrouhlený na 3 desetinná místa). U intervalu opakovaní opatrně, abychom Loxonu nepřetížili.

Tím máme fázi vytvoření a plnění databáze hotovou. Už je stačí v Grafaně vytvořit nový Dashboard, kde bude nový graf využívat zdroj dat databázi s tabulkou data_teplota.

Vzorec pro zobrazení grafu je jednoduchý select:

SELECT  UNIX_TIMESTAMP(timestamp_mereni) as time_sec,  data_hodnoty as value,  nazev_hodnoty as metricFROM data_teplota
WHERE $__timeFilter(timestamp_mereni)
ORDER BY timestamp_mereni ASC

A to je vše. Použitím virtuálního výstupu není ideálním řešením, ale svoji funkci plní dobře. Zatížení Loxony vzrostlo o necelých 10%, bez rozdílu na počet virtuálních výstupů.

Permanent link to this article: https://www.elvisek.cz/2018/10/loxone-data-do-grafany/

Loxone – propojení s Kodi

Je na čase si pohrát s Kodi, která je doma u všech TV jako multimediální centrum. Propojení se bude provádět pomocí pluginu, který se nainstaluje do Kodi a následně pomocí virtuálních vstupů u Loxony dostaneme potřebné informace.

Příprava je tedy jasná, nainstalovat do Kodi tento plugin (Callback handler) a nastavit jej na propojení s Loxone.

instalace ZIP modulu
nainstalovaný Callback Handler
nastavený Callback handler na adresu Loxone Miniserveru

V Loxone Configu vytvoříme virtuální UDP vstup (IP adresu použijeme Kodi, port UDP 7000).
Následně vytvoříme virtuální příkaz, který bude načítat již vlastní akce z Kodi (movie_started,paused,stopped,…)

vytvoření virtuálního UDP vstupu
vytvoření virtuálního UDP příkazu

Tímto dostaneme z Kodi informaci, jaká byla provedena akce. Pro vzdálené ovládání Kodi můžeme využít Virtuální HTTP příkaz a ovládat ji pomocí Web Interface API. Návod zde. Původní návod v DE – zde.

Permanent link to this article: https://www.elvisek.cz/2018/10/loxone-ovladani-kodi/

RasPi – instalace InfluxDB

InfluxDB je velmi jednoduchá databáze pro ukládání dat, která se mění v čase (monitoring, aplikační metriky, IoT data nebo real-time analýzy).

Instalace a konfigurace se provádí následovně:

  • instalace z repozitáře – sudo apt-get install influxdb
  • konfigurace je v /etc/influxdb/influxdb.conf
  • spuštění služby – sudo service influxdb start
  • její status – sudo systemctl status influxdb

Ověření, že je funční pomocí webového prohlížeče – http://[ipadresa]:8086. Pokud je vše v pořádku, zobrazí se stránka – 404 page not found. 🙂

Úvodní příručka – zde. Instalační příručka – zde

Permanent link to this article: https://www.elvisek.cz/2018/10/raspi-instalace-influxdb/

RasPi – instalace Node-RED

Node-RED – grafický nástroj pro programování funkčních bloků IoT

Instalace se provádí (dle ofiko instrukcí) pomocí bash skriptu, tedy:

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Po úspešné instalaci povolíme spouštení po startu – sudo systemctl enable nodered.service

službu spustíme manuálně – node-red-start

přístup je na – http://[ipadresa]:1880

Pokud všechno funguje, přidáme si např. modul pro komunikaci s Loxone, přes pravé horní menu přejdeme na Manage palette

kde vyhledáme na záložce Install – „loxone“ – modul node-red-contrib-loxone

po instalaci se nám přidali další funkční bloky v levém menu

Permanent link to this article: https://www.elvisek.cz/2018/10/raspi-instalace-node-red/