Pokročilé automatizace¶
Tato stránka popisuje proměnné, šablony v JavaScriptu a přímou úpravu kódu JSON. Je určena uživatelům, kteří rozumějí datovým typům a umějí obnovit zálohu.

Nejdříve vytvořte zálohu
Chyba v šabloně nebo JSON může znefunkčnit více pravidel najednou. Před úpravou zkopírujte celý JSON do textového souboru a ten bezpečně uložte.
Před ručním spuštěním vždy uložte
Každou změnu pravidla, proměnné nebo JSON potvrďte tlačítkem Uložit automatizace. Neuloženou automatizaci ručně nespouštějte. Po další úpravě ji před novou ruční zkouškou znovu uložte.
Omezení automatizací¶
Automatizace a jejich šablony jsou před přijetím kontrolovány. Pravidlo může být zamítnuto, pokud je neplatné, příliš složité nebo by jeho vyhodnocení mohlo spotřebovat nepřiměřené množství času či paměti. Posuzuje se také souhrnná složitost celé automatizace, takže může být odmítnuta i kombinace několika samostatně jednoduchých šablon.
Automatizace může být zamítnuta například kvůli:
- chybné syntaxi, příliš dlouhé šabloně nebo příliš velkému počtu šablon,
- rekurzi, neomezeným smyčkám, příliš hlubokému vnoření nebo iteraci nad kolekcí, jejíž velikost nelze bezpečně určit,
- vytváření příliš velkých kolekcí, řetězců nebo jiných mezivýsledků,
- regulárnímu výrazu nebo textové operaci s neúměrnou výpočetní náročností,
- pokusu spouštět dynamický kód, časovače nebo přistupovat k okolnímu prostředí aplikace,
- příliš dlouhému běhu nebo chybě při zkušebním vyhodnocení,
- neplatným prahům hystereze nebo nepodporované dynamické hodnotě u hystereze a minimálních intervalů akcí.
Pokud je pravidlo zamítnuto, zjednodušte výrazy, omezte velikost zpracovávaných dat nebo automatizaci rozdělte do několika menších pravidel. Smyčky musí mít předvídatelný počet kroků a šablony by měly pouze vypočítat výslednou hodnotu bez vedlejších účinků.
Proměnné¶
Proměnná uchovává vlastní hodnotu, kterou mohou číst nebo měnit automatizace.

Povolené znaky¶
Název smí obsahovat:
- písmena
a-zaA-Zbez diakritiky, - číslice
0-9, - podtržítko
_.
Nepoužívejte mezery, pomlčky ani českou diakritiku.
Vytvoření proměnné¶
- Na stránce Automatizace rozbalte Proměnné.
- Do pole Název napište například
Minimalni_Teplota. - Stiskněte Přidat proměnnou.
- Nastavte počáteční hodnotu, pokud ji rozhraní nabídne.
- Stiskněte Uložit automatizace.
Proměnná jako vypínač¶
Proměnná s názvem začínajícím prepinac_ se v rozhraní chová jako vypínač s hodnotami:
OFF– vypnuto,ON– zapnuto.
Příklad názvu: prepinac_Levny_Proud.
Šablonovací systém¶
Šablonovací systém umožňuje použít místo pevně zadané hodnoty výsledek výpočtu. Do výrazu lze vložit aktuální údaje senzorů, provést s nimi matematickou operaci nebo podle podmínky zvolit jiný výsledek.
Šablona sama žádné zařízení neovládá. Vždy pouze vrátí jednu hodnotu, kterou následně použije podmínka nebo akce automatizace.

Šablona je JavaScript¶
Obsah mezi {{ a }} se vyhodnocuje jako výraz v jazyce JavaScript. Nejde tedy o omezený seznam předem připravených vzorců. V rámci jednoho výrazu lze použít prakticky libovolnou výpočetní logiku JavaScriptu a kombinovat ji s aktuálními hodnotami senzorů.
K dispozici jsou zejména:
- aritmetické operátory
+,-,*,/,%a**, - porovnání
>,>=,<,<=,===a!==, - logické operátory
&&,||a!, - podmínkový operátor
podminka ? hodnota1 : hodnota2, - závorky a vnořené výrazy,
- spojování a úpravy textu,
- běžné funkce JavaScriptu, například
Math.min(),Math.max(),Math.round()neboMath.abs(), - kombinace více senzorů, proměnných a mezivýpočtů v jednom výsledku.
Šablonou tak lze například omezit hodnotu na povolený rozsah, zaokrouhlit výkon, spočítat průměr, porovnat více čidel, sestavit text nebo zkombinovat několik podmínek. Výraz může být podstatně složitější než příklady v tomto návodu, ale nakonec musí vrátit jednu hodnotu, kterou lze použít v cílové podmínce nebo akci.
Tento příklad zaokrouhlí vstup a současně omezí výsledek na rozsah od 0 do 100.
Běhové prostředí může být omezené
Šablona je výraz v jazyce JavaScript, nikoli samostatný program ani plnohodnotný editor skriptů. Nespoléhejte na přístup k webové stránce, síti, úložišti prohlížeče ani na asynchronní operace. Pro automatizace používejte výpočty bez vedlejších účinků a každou použitou funkci nejdříve vyzkoušejte ve Zkoušce šablony.
Jak se šablona vyhodnotí¶
Při spuštění automatizace systém:
- načte aktuální hodnoty senzorů uvedených v šabloně,
- vyhodnotí obsah mezi značkami
{{a}}jako výraz v jazyce JavaScript, - vytvoří výslednou hodnotu,
- předá výsledek podmínce nebo akci, ve které je šablona použitá.
Výsledkem může být číslo, text, logická hodnota nebo prázdná hodnota. Datový typ výsledku musí odpovídat místu, kam jej automatizace předává. Číselný vstup například nemůže použít text vetsi.
Kdy šablonu použít¶
Šablona je vhodná například pro:
- odečtení bezpečnostní rezervy od naměřeného výkonu,
- převod hodnoty do jiné jednotky,
- výpočet z více senzorů,
- porovnání hodnoty s limitem,
- výběr různého výsledku podle splněné podmínky.
Pokud automatizace potřebuje stále stejné číslo nebo stejnou položku nabídky, použijte pevnou Hodnotu. Šablona je určena pro výsledek, který se má průběžně měnit podle aktuálních dat.
Základní zápis¶
Do pole vložte celý výraz včetně počátečních a koncových složených závorek:
Zápis senzoru má tři části oddělené tečkami:
V uvedeném příkladu jednotlivé části znamenají:
0– ID typu zařízení, v tomto příkladu měnič.a0b1c2d3e4f5– dvanáctimístné ID konkrétního zařízení.zarizeni_Load_totalpower– technický název senzoru.- 50– matematická operace.
Stejnou hodnotu lze použít několika způsoby:
| Účel | Šablona | Výsledek |
|---|---|---|
| Převzít hodnotu beze změny | {{ 0.a0b1c2d3e4f5.zarizeni_Load_totalpower }} | Původní hodnota senzoru. |
| Odečíst rezervu 50 W | {{ 0.a0b1c2d3e4f5.zarizeni_Load_totalpower - 50 }} | Číslo o 50 menší než hodnota senzoru. |
| Převést watty na kilowatty | {{ 0.a0b1c2d3e4f5.zarizeni_Load_totalpower / 1000 }} | Výkon v kilowattech. |
| Porovnat hodnotu s limitem | {{ 0.a0b1c2d3e4f5.zarizeni_Load_totalpower > 100 }} | Logická hodnota true nebo false. |
Použijte vlastní ID zařízení a technický název senzoru vybraného v aplikaci. Neopisujte běžný název karty ani viditelný popisek hodnoty; technický název může být odlišný.
Pravidla pro výpočty¶
- Matematické operace používejte pouze s číselnými hodnotami.
- Jednotky se nepřevádějí automaticky. Převod musí být součástí výrazu.
- Textové výsledky zapisujte do uvozovek, například
"zapnout". - U desetinných čísel používejte tečku, například
12.5. - Chybějící nebo prázdnou hodnotu senzoru nepovažujte automaticky za nulu.
- Před uložením vždy zkontrolujte výsledek a jeho datový typ ve Zkoušce šablony.
Zvláštní zdroje dat¶
V seznamu zařízení mají systémové zdroje stálá ID typu:
| ID | Zdroj |
|---|---|
997 | uživatelské proměnné |
998 | uživatelské automatizace |
999 | systémové senzory |
U fyzických zařízení se používá ID typu a dvanáctimístné ID konkrétního zařízení.
Podmínka v JavaScriptu¶
Šablona může podle podmínky vrátit různé hodnoty.
Tento zápis vrátí text vetsi, pokud je hodnota nad 100, jinak mensi.
Používejte jednoduché výrazy
Složitý JavaScript se hůře kontroluje a může selhat po změně datového typu. Výpočet rozdělte do více proměnných nebo pravidel.
Zkouška šablony¶

- Rozbalte Šablonovací systém.
- Najděte část Zkouška šablony.
- Vložte šablonu.
- Zkontrolujte Výsledná hodnota.
- Zkontrolujte Typ hodnoty.
- Zkontrolujte seznam Použité senzory.
Číslo, text, logická hodnota a prázdná hodnota nejsou zaměnitelné. Cílový senzor musí přijímat výsledný typ.
Režim Hodnota a Šablona¶
V podmínkách i akcích je pole Režim zadávání hodnoty.
- Hodnota – zadáte pevné číslo nebo položku nabídky.
- Šablona – výsledek se vypočítá při každém spuštění.
Pro běžný limit použijte Hodnota. Šablonu použijte, až když pevná hodnota nestačí.
Kód automatizací v JSON¶
Rozbalovací část Kód automatizací (JSON) zobrazuje celý datový zápis pravidel.

Objekt automatizace obsahuje zejména:
| Klíč | Obsah |
|---|---|
id | Jedinečné ID automatizace. |
nazev | Název pravidla. |
prepinac | 1 pro zapnuto, 0 pro vypnuto. |
rezim | zakladni nebo paralelni. |
podminky | Pole podmínek. |
akce | Pole akcí po splnění. |
negativni_akce | Pole akcí po nesplnění. |
ID dvou automatizací nesmí být stejné.
Záloha JSON¶
- Rozbalte Kód automatizací (JSON).
- Stiskněte kopírovat.
- Vložte obsah do prostého textového souboru.
- Soubor pojmenujte datem, například
automatizace-2026-08-19.json. - Zálohu bezpečně uložte.
Do veřejné zprávy zálohu nevkládejte. Může obsahovat názvy, ID zařízení a texty oznámení.
Ruční aktualizace JSON¶
- Nejdříve vytvořte zálohu.
- Upravte JSON v editoru, který kontroluje syntaxi.
- Ověřte čárky, závorky, uvozovky a jedinečná ID.
- Vložte celý výsledný JSON do pole.
- Stiskněte Aktualizovat automatizace.
- Zkontrolujte každé změněné pravidlo v běžném editoru.
- Nechte změněná pravidla vypnutá a stiskněte Uložit automatizace.
- Počkejte na potvrzení uložení.
- Každé změněné pravidlo znovu otevřete a teprve potom ho ručně otestujte.
Nevkládejte neznámý JSON
Pravidla vložená z neznámého kódu JSON mohou ovládat libovolný zapisovatelný senzor vašeho účtu. Použijte raději knihovnu a každé pravidlo zkontrolujte.
Obnova ze zálohy¶
- Otevřete uložený soubor JSON.
- Zkopírujte celý obsah.
- Vložte jej do části Kód automatizací (JSON).
- Stiskněte Aktualizovat automatizace.
- Zkontrolujte počet a názvy pravidel.
- Otevřete každé obnovené pravidlo a ověřte zařízení i senzor ve všech podmínkách, akcích a negativních akcích.
- Uložte automatizace.
- Obnovte stránku a stejná pole znovu zkontrolujte.
Pokud aplikace hlásí chybu, zálohu neupravujte naslepo. Ověřte správnost zápisu JSON nebo kontaktujte podporu.
Sdílení a soukromí¶
Při sdílení lze zvolit účet nebo možnost Anonymně. I anonymní pravidlo však může v názvech, popisu nebo akcích obsahovat osobní údaje.
Před sdílením odstraňte:
- jména osob,
- adresy a názvy místností, které nechcete zveřejnit,
- e-mailové adresy v textu akcí,
- neveřejné poznámky.
Doporučený kontrolní seznam¶
- Kód JSON je zazálohován.
- Pravidlo je při úpravě vypnuto.
- Všechny změny jsou před ruční zkouškou uložené.
- Každé ID zařízení patří vašemu účtu.
- Výsledný datový typ odpovídá cílovému senzoru.
- Pravidlo ošetřuje stav, kdy senzor nevrátí hodnotu.
- Paralelní režim je opravdu nutný.
- Akce i negativní akce jsou bezpečné při opakování.
- Po ruční zkoušce je zkontrolován skutečný stav zařízení.