Loxone a raspberry = LoxBerry

Při brouzdání na webu jsem narazil na zajimavý projekt – LoxBerry

Instalace – https://www.loxwiki.eu/pages/viewpage.action?pageId=27100376

První kroky – https://www.loxwiki.eu/display/LOXBERRY/First+steps

Pluginy – https://www.loxwiki.eu/pages/viewpage.action?pageId=27100429

Permanent link to this article: https://www.elvisek.cz/2019/02/loxone-a-raspberry-loxberry/

Kodi – synchronizace filmové knihovny

Dlouhou dobu se potýkám s potřebou mít centrální knihovnu pro LibreElec s KODI (běžící na RasPi). Mít všechno pěkně na jednom místě, uklizené a setřízené a ne aby si každé zařízení knihovnu vytvářelo samo a hrabalo tak x-krát na NAS a skenovalo její obsah. Při jednom Kodi zařízení by se to dalo akceptovat, ale ne u 5ti, jako máme doma 🙂

Jedna z možností, která je funkční, je mít centrální databází, kde se budou ukládat metadata a náhledy pro filmovou knihovnu. Na tuto databázi napojíme postupně všechny Kodi zařízení, které dostanou okamžitě zindexovaný obsah celé filmotéky.

Podmínky pro správnou funkci jsou jen dvě : stejné verze LibreElec s Kodi a stejně pojmenované knihovny v Kodi. Jinak se indexovaný obsah nedokáže spárovat. Originální článek na wiki Kodi je zde.

Pokud chceme zachovat již vytvořenou knihovnu, můžeme provést její export do xml, z menu Nastavení – Media –  Knihovna – Exportovat knihovnu. Jak budeme mít databázi nachystanou, můžeme toto xml znovu naimportovat.

Nachystáme si MySQL databázi do které budeme ukládat data a uživatele, pod kterým se na ni budeme připojovat. Nejprve uživatele, pomocí příkazové řádky MySQL klienta nebo přes GUI – je potřeba, aby měl plné oprávnění, bude si vytvářet databázi!

CREATE USER 'kodi' IDENTIFIED BY 'kodi';GRANT ALL ON *.* TO 'kodi';flush privileges;

Pokud máme možnost, vytvoříme si uložiště pro náhledy, které vysdílíme do sítě pomocí SMB nebo NFS sdílení.

Dále do každého zařízení si nakopírujeme soubory advancedsettings.xml a source.xml. Soubory jsou umístěny v adresáři – /storage/.kodi/userdata/. V advancedsettings.xml je nastavení pro připojení k databázi a cesta k náhledům (thumbnails). V souboru source.xml jsou definovány jednotlivé zdroje.

Nyní máme všechno nastaveno a mužeme Kodi restartovat. Pokud jsme udělali všechno správně, databáze se nám po nastartování Kodi naplnila strukturou tabulek, které Kodi bude využívat. 

Nyní můžeme naimportovat původní knihovnu nebo si nechat naindexovat knihovnu odznova. Po dokončení indexu, můžeme připojit/zapnout další Kodi zařízení, ve kterém se knihovna ihned ukáže.

Permanent link to this article: https://www.elvisek.cz/2018/10/kodi-synchronizace-filmove-knihovny/

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/