Umístění šablon.

Co umí šablony a jak je využívat.
Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Umístění šablon.

Příspěvek od Plazivec »

Kam s nima? Můj první funkční slepenec šel do configuration.yaml, ale moc se mi to nezdá. Nemám vytvořit nějaký /cesta/kudy/na/můj.yaml soubor, kde budu cpát šablony?

Uživatelský avatar
Tad
Administrátor fóra
Administrátor fóra
Příspěvky: 455
Registrován: 30. prosinec 2020, 00:14
Bydliště: 3D
Dal poděkování: 89 poděkování
Dostal poděkování: 52 poděkování

Re: Umístění šablon.

Příspěvek od Tad »

ja si vytvořil adresář includes a do něj si dávám jednotlivé položky z configuration.yaml, je to určitě přehlednější a můžeš skočit přesně tam kde chceš něco upravit/přidat.
v configuration.yaml mám odkazy na jednotlivé yaml soubory:

Kód: Vybrat vše

yahoofinance: !include includes/yahoofinance.yaml 
group: !include includes/groups.yaml
automation: !include includes/automations.yaml
script: !include includes/scripts.yaml
scene: !include includes/scenes.yaml
recorder: !include includes/recorder.yaml
http: !include includes/http.yaml
binance: !include includes/binance.yaml
....
a v adresáři includes mám jednotlivé soubory, tam už se píše kód rovnou bez názvu integrace (teplate, scene, script....)
např:
/config/includes/scripts.yaml

Kód: Vybrat vše

tombudik:
  alias: Tom budík
  sequence:
  - service: media_player.volume_set
    data:
      entity_id: media_player.googlehome6592
      volume_level: 0.2
  - service: tts.google_translate_say
    entity_id: media_player.googlehome6592
    data:
      message: "Dobré ráno. Je {{ now().strftime('%H')}} hodin {{ now().strftime('%M')}}\
        \ minut\n za okny je {{states('sensor.th13_teplota') | replace('.',',')}} °C.\n Takže žádné\
        \ flákání, paní učitelka se na tebe jistě moc těší, šup šup šup a lezeme z\
        \ postýlky!"
      language: cs
  mode: single
verunkabudik:
  alias: Verunka budik
  sequence:
  - service: light.turn_on
    data:
      entity_id: light.extended_color_light_13
      transition: 300
      rgb_color:
      - 255
      - 153
      - 0
      brightness: 125
      effect: solid
    entity_id: light.extended_color_light_13
  mode: single
  .....
HAOS-x86-64, Intel J4125 Quad Core, 8GB RAM, 512GB SSD, Conbee II, zigbee2MQTT

Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Umístění šablon.

Příspěvek od Plazivec »

Nejsem programátor, jen se plácám v tom pajtnu slepuju to dle vzorů. Takže mám další dotaz.
Chápu, že includes znamená, že se to jaksi začleňuje do hlavního konfiguračního yaml.
A teď dotaz, ty slůvka v tom prvním kódu (yahoofinance, group,automation...atd.)jsou klíčová? Protože tam templates nevidím. Kde najdu jejich seznam?

Uživatelský avatar
Tad
Administrátor fóra
Administrátor fóra
Příspěvky: 455
Registrován: 30. prosinec 2020, 00:14
Bydliště: 3D
Dal poděkování: 89 poděkování
Dostal poděkování: 52 poděkování

Re: Umístění šablon.

Příspěvek od Tad »

Ano, includes znamená že v configuration.yaml jsou tyto další soubory obsaženy jako by samotný kód byl přímo tam.
Je to zkrácený, nedával jsem do příspevku vše.
templates, jsou v sensoru, tedy v configuration.yaml mám:

Kód: Vybrat vše

sensor: !include includes/sensor.yaml    
a v souboru /config/includes/sensor.yaml uz píšeš vše co je v původním configuration.yaml pod
sensor:

Jen bacha na formátování kódu...

Kód: Vybrat vše

# Kurzy koruny
- platform: openexchangerates
  api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  quote: CZK   
  
- platform: template
  sensors:
    eur_kurz:
      friendly_name: "EUR"
      value_template: "{{ (states('sensor.exchange_rate_sensor') | float(1)) / (state_attr('sensor.exchange_rate_sensor', 'EUR') | float(1)) |float|round(3) }}"
      icon_template: mdi:currency-eur
      unit_of_measurement: 'Kč'  
- platform: template
  sensors:
    eur_kurz1:
      friendly_name: "EUR kurz"
      value_template: "{{'%.2f' | format(states('sensor.eur_kurz') | float(1))}}"
      icon_template: mdi:currency-eur
      unit_of_measurement: 'Kč'
- platform: template
  sensors:
    usd_kurz:
      friendly_name: "USD kurz"
      value_template: "{{ (states('sensor.exchange_rate_sensor') | float(1) | round(2))|round(3) }}"
      icon_template: mdi:currency-usd
      unit_of_measurement: 'Kč' 
HAOS-x86-64, Intel J4125 Quad Core, 8GB RAM, 512GB SSD, Conbee II, zigbee2MQTT

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Umístění šablon.

Příspěvek od Lion® »

Plazivec píše: 22. červenec 2022, 07:42 Můj první funkční slepenec šel do configuration.yaml, ale moc se mi to nezdá.
Nechtěl by si nám ten "slepenec" ukázat?
Pak snad budeme mít možnost být konkrétnější.

můj celý configuration.yaml vypadá následovně:

Kód: Vybrat vše

default_config:
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
group: !include groups.yaml
http:
homeassistant:
  packages: !include_dir_named all_package
  customize: !include customize.yaml
tts:
  - platform: google_translate
    language: "cs"
frontend:
  themes: !include_dir_merge_named themes
mqtt:
  broker: 192.168.1.200
spotify:
  client_id: !secret spotify_id
  client_secret: !secret spotify_secret
spotcast:
  sp_dc: !secret sp_dc
  sp_key: !secret sp_key
  country: cz #optional, added in 3.6.24
home_connect_alt:
  client_id: !secret hc_id
  client_secret: !secret hc_secret
mám vytvořený adresář
all_package
a tam řeším jednotlivé integrace v tzv package souborech obsahujících sensory, binární sensory pomocníky, scripty i automatizace související s tou kterou konkrétní integrací.
Výstřižek.PNG
například:
Výstřižek1.PNG
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Umístění šablon.

Příspěvek od Plazivec »

Má to za úkol sečíst dohromady proud ze třech stringů.

Kód: Vybrat vše

template:
  - sensor:
      - name: "Prúd_z_panelov"
        unit_of_measurement: "A"
        state: >
          {% set I_zapad = states('sensor.charging_current') | float %}
          {% set I_juh = states('sensor.charging_current_2') | float %}
          {% set I_východ = states('sensor.charging_current_3') | float %}
          {{ ((I_zapad + I_juh + I_východ)) | round(1, default=0) }}
A tady mám kompletní configuration.yaml

Kód: Vybrat vše

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
usb:

template:
  - sensor:
      - name: "Prúd_z_panelov"
        unit_of_measurement: "A"
        state: >
          {% set I_zapad = states('sensor.charging_current') | float %}
          {% set I_juh = states('sensor.charging_current_2') | float %}
          {% set I_východ = states('sensor.charging_current_3') | float %}
          {{ ((I_zapad + I_juh + I_východ)) | round(1, default=0) }}

api:
  api_password: "apipassword"

sensor:
  - platform: emoncms
    api_key: 0eb2400fbd5cd8fa36107ad25ef01431
    url: http://192.168.11.250/emoncms/
    id: 1

influxdb:
  host: ccf28a08-influxdb
  port: 8086
  database: homeassistant
  username: homeassistant
  password: homeassistant
  max_retries: 3
  default_measurement: state

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Umístění šablon.

Příspěvek od Lion® »

Plazivec píše: 22. červenec 2022, 13:18 Má to za úkol sečíst dohromady proud ze třech stringů.

Kód: Vybrat vše

template:
  - sensor:
      - name: "Prúd_z_panelov"
        unit_of_measurement: "A"
        state: >
          {% set I_zapad = states('sensor.charging_current') | float %}
          {% set I_juh = states('sensor.charging_current_2') | float %}
          {% set I_východ = states('sensor.charging_current_3') | float %}
          {{ ((I_zapad + I_juh + I_východ)) | round(1, default=0) }}
POSLEDNÍ EDIT 14:05

takže sensor

v configuration.yaml je nutné mít všechny sensory za řádkem

Kód: Vybrat vše

sensor:
ty ho máš před

v configuration.yaml by to mělo vypadat nějak takto:
Výstřižek2.PNG
Výstřižek2.PNG (2.18 KiB) Zobrazeno 476 x

Kód: Vybrat vše

sensor:
  - platform: template
    sensors:
      proud_z_panelu:
        friendly_name: "Proud z panelů"
        value_template: "{{ ((states( 'sensor.charging_current') | float) + (states( 'sensor.charging_current_2') | float) + ( states( 'sensor.charging_current_3') | float | round(1) }}"
        unit_of_measurement: "A"
pokud máš někde soubor sensors.yaml tak ten určitě začíná prvním řádkem

Kód: Vybrat vše

sensor:
takže ty už přidáš jen na jeho konec (nebo za poslední sensor v configuration.yaml):

Kód: Vybrat vše

  - platform: template
    sensors:
      proud_z_panelu:
        friendly_name: "Proud z panelů"
        value_template: "{{ ((states( 'sensor.charging_current') | float) + (states( 'sensor.charging_current_2') | float) + ( states( 'sensor.charging_current_3') | float | round(1) }}"
        unit_of_measurement: "A"
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Umístění šablon.

Příspěvek od Lion® »

Tímto se omlouvám TADovi, že skáču do řeči.
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Plazivec
Aktivní autor
Aktivní autor
Příspěvky: 61
Registrován: 04. červenec 2022, 23:32
Dal poděkování: 10 poděkování
Dostal poděkování: 1 poděkování

Re: Umístění šablon.

Příspěvek od Plazivec »

Takže vona to nemusí bejt šablona? /template/?
Staší, když to napíšu jako sensor?
Moc mě to teď nemyslí, budu si to muset rozebrat asi až mě přejde horečka.
Pište, kdyby vás něco napadlo, hlavně ta syntax, já to potřebuju nějak vstřebat, koukám, že ten Pajton bude dost gumenej na to jak co napsat, to půjde vicero způsobama.
Jinak ta template mě jede.

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Umístění šablon.

Příspěvek od Lion® »

Plazivec píše: 22. červenec 2022, 14:24 Takže vona to nemusí bejt šablona? /template/?
Staší, když to napíšu jako sensor?
Moc mě to teď nemyslí, budu si to muset rozebrat asi až mě přejde horečka.
Pište, kdyby vás něco napadlo, hlavně ta syntax, já to potřebuju nějak vstřebat, koukám, že ten Pajton bude dost gumenej na to jak co napsat, to půjde vicero způsobama.
Jinak ta template mě jede.
stačí...
ale děláš to dobře podle dokumentace, principielně to bude v zápisu ale stejné

Kód: Vybrat vše

https://www.home-assistant.io/integrations/template/
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Odpovědět

Zpět na „Šablony“