Pokročilá konfigurace

Command line

Command line spouští zadané příkazy a podle jejich výstupu vytváří entity nebo ovládá zařízení. Hodí se pro lokální skripty a systémové integrace, které nemají vlastní nativní napojení.

Doména
command_line
Kategorie
binární senzory, senzory, spínače, kryty, notifikace
Komunikace
lokální spuštění příkazu
Nastavení
configuration.yaml
Akce
command_line.reload
UI

Ukázka v RichPear Home

Screenshoty ukazují české rozhraní RichPear Home při vyhledání integrace a při prvním bezpečném kroku nastavení.

Vyhledání Command Line v katalogu integrací.
RichPear Home u Command Line ukazuje ruční konfiguraci v souboru configuration.yaml.
01

Co integrace přidá

Integrace je pouze přes YAML. Podporuje mimo jiné binární senzory, senzory, kryty, notifikační služby a spínače podle toho, jaké příkazy a parsování nakonfigurujete.

Příkazy spouštějte jako malé, předvídatelné operace. Výstup musí být stabilní, protože z něj RichPear Home odvozuje stav entity nebo výsledek akce.

Kontrolní témata

  1. Příkaz zapisujte ideálně do jednoduchých uvozovek, aby se minimalizovalo nechtěné escapování.
  2. Po změně lze entity znovu načíst akcí command_line.reload.
  3. Příkazy běží v prostředí hostitele RichPear Home a musí mít dostupná potřebná oprávnění.
  4. Nepoužívejte příkazy, které mohou zůstat viset nebo měnit systém bez kontroly.
02

Příprava před přidáním

Nejdřív příkaz otestujte přímo na hostiteli RichPear Home se stejnými cestami a oprávněními. Výstup zkraťte na hodnotu, kterou opravdu potřebujete.

Pro složitější logiku použijte vlastní skript a z YAML volejte jen jeho stabilní rozhraní. U hesel a tokenů nepoužívejte hodnoty přímo v příkazu, pokud je lze uložit bezpečněji.

Command line je silný nástroj. Každý příkaz berte jako kód běžící na produkční instalaci.
03

Nastavení v RichPear Home

Konfiguraci přidejte do configuration.yaml. Po prvním přidání restartujte RichPear Home; další změny v entitách lze často načíst přes akci command_line.reload.

command_line:
  - sensor:
      name: Teplota CPU
      command: 'cat /sys/class/thermal/thermal_zone0/temp'
      unit_of_measurement: '°C'
      value_template: '{{ (value | float / 1000) | round(1) }}'
04

Kontrola entit a funkcí

Po načtení zkontrolujte stav entity, jednotku, historii a případné chyby v logu. Pokud výstup není číslo nebo JSON podle očekávání, opravte šablonu nebo příkaz.

U spínačů a krytů nejdřív spusťte příkazy ručně v bezpečném kontextu a ověřte, že odpovídají skutečnému stavu zařízení.

Po nastavení

  1. Ověřte cestu ke každému skriptu absolutní cestou.
  2. Zkontrolujte timeout a chování při chybě příkazu.
  3. Pojmenujte entity podle účelu, ne podle příkazu.
  4. Použijte reload až po validaci YAML.
05

Použití v automatizacích

Command line entity používejte v automatizacích až po delším sledování stability. U příkazů, které ovládají zařízení, přidejte podmínky a ruční možnost vypnutí automatizace.

Pro notifikace a skripty logujte chyby tak, aby šlo poznat, jestli selhal příkaz, šablona, oprávnění nebo cílové zařízení.

06

Provoz a údržba

Po aktualizaci systému, změně cest nebo balíčků znovu otestujte příkazy. Změna shellu, oprávnění nebo dostupnosti binárky může entitu rozbít.

Složitější příkazy držte ve verzovaném skriptu a v dokumentaci si napište, co vrací a jak se má chovat při chybě.

07

Řešení problémů

Když se stav neaktualizuje, ověřte syntaxi YAML, uvozovky, návratový kód příkazu, oprávnění, absolutní cesty, šablonu a zda příkaz doběhne v rozumném čase.

Potom otevřete Nastavení → Systém → Logy a hledejte chyby podle domény command_line. Integraci neodstraňujte jako první krok; nejdřív ověřte přístup, síť, konfiguraci a poslední úspěšnou aktualizaci.