blog.vyoralek.cz

Jak nastavit časovač na zapínání vánočních světel (Tasmota, ESPHome)

Dnes se podíváme na velmi aktuální téma a to jak pomocí chytré domácnosti ovládat vánoční osvětlení.

Vánoční osvětlení je často jedním z druhů světel, které nemají žádný spínač, tj. můžeme je zapínat/vypínat jen vytažením z elektřiny.

V případě vánočního stromu se to na některých typech (zejména starších) světel dá řešit povytažením jedné žárovky – pokud jsou tedy zapojeny sériově, což je jinak poměrně zásadní nevýhoda. Často tomu tak, ale není a je potřeba světla vytahovat ze zásuvky.

Dnes se podíváme jak si tuhle činnost zjednodušit a přidat i benefit v podobě nastavení automatického zapnutí/vypnutí v definovaném čase.

Vhodný hardware

Možnosti jaký typ hardware pro ovládání vánočních světel můžeme použít máme v zásadě dvě:

Každý z typů má nějakou výhodu, ale zároveň i nevýhodu. Na modelovém příkladu níže si popíšeme detailněji řešení formou chytré prodlužovačky, tj. použijeme Sonoff Basic v revizi 3, ke kterému si ze stran připojíme kabely se zástrčkou a zásuvkou.

Sonoff Basic R3

Pokud to začnete řešit na poslední chvíli, může to dopadnout jako v mém případě 😱v tzv. stylu co dům dal 😀. Nicméně celá prodlužovačka je schovaná pod vánočním stromkem, takže to vlastně ani tak moc nevadí.

Sonoff Basic chytrá prodlužovačka

Vhodný software

Díky použití přepínače Sonoff Basic s čipem ESP8285 je možností řešení opravdu hodně. My si ukážeme dvě přímo na úrovni firmware – Tasmota a ESPHome.

1. Firmware Tasmota

Jako nejvhodnějším řešením se mi jeví firmware Tasmota (dříve Sonoff-Tasmota).

Umí běžet úplně samostatně – nevyžaduje nějaké integrační prostředí jako např HomeAssistant.

Pro účely časovače je pak velkým benefitem vlastní webové rozhraní Tasmoty, které umožňuje přes prohlížeč časovač nastavit v poměrně hezkém uživatelském rozhraní. Není potřeba tedy psát žádný programový kód a nastavení po krátkém úvodu zvládne i laik.

O nahrávání firmware Tasmota jsem už napsal mnoho článků. Pokud ještě nevíte jak na to můžete se podívat na obecnější článek a nebo pro tenhle konkrétní případ mám i popis pro Sonoff Basic R3.

Jakmile nám Tasmota běží připojíme se pomocí webového prohlížeče do webového rozhraní – stačí zadat IP adresu zařízení – a v hlavním menu vybereme Nastavení z kterého se dále přepneme do Nastavení Časovače.

V časovači máme k dispozici celkem 16 slotů, kde každý z nichž může představovat jedno nastavení pro zapnutí, vypnutí nebo přepnutí spínače.

Nejprve je potřeba zapnout časovač pomocí zatržení volby Povol časovač a můžeme se vrhnout na nastavení jednotlivých slotů.

Ve většině případů nám budou stačit sloty dva – jeden na zapnutí a jeden na vypnutí – nastaví se pomocí volby Napájení.

Dále zatrhneme volbu aktivní + opakovat (pokud nechceme časovač použít jen jednou) a vybereme si způsob definice času, kdy má k dané akci dojít. K dispozici máme tři možnosti:

  1. čas – nastavíme čas, kdy má k akci dojít
  2. svítání – použije se aktuální čas svítání
  3. soumrak – použije se aktuální čas západu

Následující sekce s nastavením času má trochu jiný význam v závislosti na způsobu definice času:

  1. pokud vybereme volbu čas, tak první dvě číselná políčka označují hodiny a minuty a poslední pole +/- určuje interval v minutách, kdy se náhodná hodnota přičte/odečte od zadaného času – díky tomu můžeme mít v určitém směru nepravidelný interval časovače +/- až 15 minut
  2. pokud vybereme volbu svítání a nebo soumrak pak můžeme nastavit první pole na hodnotu + a nebo – v následně pak definovat hodiny a minuty, které se od svítání/soumraku odečtou – chceme-li například spustit zařízení X minut před svítáním. Stejně jako u předchozího typu pak můžeme nechat Tasmotu přičíst/odečíst náhodné číslo v intervalu +/- až 15 minut

Jestliže jsme použili svítání a/nebo soumrak pro nastavení časovače, pak je potřeba nastavit ještě souřadnice lokace – výchozí nastavení je Eiffelovka v Paříži. To provedeme pomocí dvojice příkazu do konzoly Tasmoty:

Latitude 50.091065
Longitude 14.400538

Tyto hodnoty jsou pro změnu pro Katedrálu svatého Víta v Praze 🙂

Poslední volbou je pak definice dnů po které má být pravidlo aktivní. Pokud chceme, aby se tak dělo každý den pak zatrhneme všechny dny a nastavení uložíme.

Pokud nechceme klikat pak můžeme použít i příkaz pro konzolu Tasmoty, který vše nastaví najednou (hodí se zejména pokud chceme nastavit více zařízení stejně).

Pro stejné nastavení jako výše tak budeme potřebovat dva příkazy:

Timer1 {"Arm":1,"Mode": 1,"Window":0,"Days":"SMTWTFS","Repeat":1,"Output":1,"Action":1}

… pro zapínání a jeden pro vypínání:

Timer2 {"Arm":1,"Mode": 2,"Window":0,"Days":"SMTWTFS","Repeat":1,"Output":1,"Action":0}

Kompletní popis možností nastavení časovače najdete na webu Tasmoty.

2. Firmware ESPHome

Druhou možností je použití firmware ESPHome, které stejně jak Tasmota má možnost nastavení časovače přímo v zařízení, tj. bez nutnosti mít integrační centrum jako HomeAssistant.

O způsobu jak nahrát firmware ESPHome si můžeme přečíst v tomto článku.

Bohužel na rozdíl od Tasmoty nemá ESPHome tak hezky propracované webové rozhraní a časovač přes něj nemůžeme nastavit. Budeme tak muset použít konfiguraci pomocí kódu.

V případě použití východu/západu slunce je to komponenta sun a v případě použití přesného času komponenta time.

Nejprve si tedy ukážeme konfiguraci s východem/západem slunce:

sun:
  latitude: <VYPLNIME_DLE_MISTA>
  longitude: <VYPLNIME_DLE_MISTA>

  on_sunrise:
    - then:
        - switch.turn_on: my_switch

  on_sunset:
    - then:
        - switch.turn_off: my_switch

… a druhá možnost pomocí přesného času:

time:
  - platform: sntp
    # ...
    on_time:
      - seconds: 0
        minutes: 30
        hours: 7
        then:
          - switch.turn_on: my_switch

      - seconds: 0
        minutes: 30
        hours: 21
        then:
          - switch.turn_off: my_switch

Pokud vás napadá nějaké další fajn řešení dejte vědět v komentářích. Tasmota je opravdu fajn, že má ono webové rozhraní, ale je trochu škoda, že to může být stále příliš složité pro běžné smrtelníky.

Na závěr přeji všem krásné a klidné prožití vánočních svátků a vstupu do Nového roku 2020. Už nyní mám hromady nápadů na další články a blog bude určitě dál pokračovat. Děkuji všem zároveň za podporu a zpětnou vazbu. Snad příští rok posuneme společně domácí IoT zase o kus dále.

10 komentářů

Leave a Reply

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Vdaka za clanok, trosku by som ale dovysvetlil bod: “použije se aktuální čas svítání, přičemž můžeme nastavit posun +/- v minutách”

    posun je mozne nastavit v hodinach a minutach (prve 3 inputy, kde v prvom sa vybera prave + alebo -, v druhom hodiny a v tretom minuty)
    posledny input (pomenovany prave +/-) udava maximalnu hodnotu v minutach, ktora sa vzdy nahodne odrata od/prirata k zvolenemu casu

    • Díky moc za dopřesnění. Článek jsem zaktualizoval a poměrně ještě rozšířil o vysvětlení jak pracovat s tímto nastavením času. Nakonec trochu překvapení, že je to komplikovanější než jsem čekal, ale zase je možné nastavit skutečně téměř cokoliv 🙂

  • Dobrý den
    jakým způsobem se nastaví správný vlastníčas spínače ? Ani nikde vlastně nevidím jaký aktuálně má …

    • Dobrý den, pokud se nepletu Tasmota se snaží získat čas z ntp serveru pool.ntp.org. Aktuální nastavení NTP serveru je možné získat pomocí příkazu ntpserver1 a informace o aktuálním čase jsou pak součástí příkazu status 7. Vše je možné zadat v konzoli webového rozhraní Tasmoty na zařízení.

  • Dobrý den,
    Jak by šlo upravit komponentu sun: – on_sunrise: , on_sunset: v ESPHome, tak aby šlo zapnout popřípadě vypnout +- nějakou tu hodinu od východu nebo západu slunce.
    Děkuji za info.

    • Hmm, vypadá to, že to s ESPHome tak jednoduché nebude. Časový posun do plusu od východu/západu by neměl být problém pomocí delay, ale opačný do mínusu mě zatím nenapadá jak vyřešit.
      Plusový by tedy mohl vypadat nějak takto:

      on_sunrise:
      - then:
      - delay: 20m
      - switch.turn_on: my_switch

      • Takhle to mám zakomponováno a pořád mi to hlásí chybu.

        text_sensor:

        platform: sun
        name: “Vychod slunce cas:”
        type: sunrise
        id: vychod_slunce
        on_sunrise:

        then:

        delay: 20m
        logger.log: “Je 20 min po vychodu slunce”

        • V jedné diskuzi k požadavku na jistou funkcionalitu ESP Home jeho autor odpověděl takto, cituji”:

          “While it is possible to use esphome that way, it is in no way supposed to be used without a central home automation system. You can use it this way, it’s just not made for this use.

          Flagging this a very low priority as any home automation system can do this – and esphome isn’t trying to (nor can it ever) replicate the functionality of a home automation hub.”

          Může se zdát, že je to vytržené z kontextu, ale ve zkratce jde o to, že ESP Home není primárně určené jako samostatně funkční díl, ale jako komponenta do Home Assistant-u.
          A tam si už v Automatizaci můžeš nastavit spínání dle čehokoliv podmíněné čímkoliv.

  • Super článek. Občas se mi stane, že po delším výpadku proudu se Sonoff Basic vyresetuje a časovač musím nastavit znova. Ale je to opravdu nepravidelné. Je tam firmware 8.1.0. Je nějaká možnost, jak tu konfiguraci uložit napořád i po delším výpadku proudu?

%d bloggers like this: