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 comments

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?