Home Assistant Naptár Felolvasása Piper TTS-el (Szkript Minták

Az alábbi YAML kódok segítségével a Home Assistant képes lekérni egy kiválasztott naptár (calendar.szombati_ebed) mai eseményeit, és a Piper hangasszisztens segítségével beépíteni azokat egy üdvözlőszövegbe.

1. Változat: Csak a bejegyzés Címének (Összegzés) felolvasása

Ez a verzió csak a naptári esemény nevét olvassa fel. Ha több esemény van, azokat vesszővel elválasztva sorolja fel.

YAML

alias: Krisz üdvözlése (Csak Cím)
description: "A naptári bejegyzések címeit olvassa fel."
sequence:
  - action: calendar.get_events
    target:
      entity_id: calendar.szombati_ebed
    data:
      duration:
        hours: 24
    response_variable: mai_naptar
  - action: tts.speak
    target:
      entity_id: tts.piper
    data:
      cache: true
      media_player_entity_id: media_player.okos_hangszoro_teszt_okos_hangszoro
      language: hu_HU
      options:
        voice: hu_HU-imre-medium
      message: >-
        Üdvözlöm Krisztina. Én Alfréd vagyok, Laci okos házvezetője. Kérem, helyezze magát kényelembe. 
        {% set esemenyek = mai_naptar['calendar.szombati_ebed'].events %} 
        {% if esemenyek | length > 0 %} 
          A mai program a naptár szerint: {{ esemenyek | map(attribute='summary') | join(', ') }}. 
        {% else %} 
          Mára nincs bejegyzés a naptárban. 
        {% endif %}

2. Változat: A Cím ÉS a részletes Leírás felolvasása

Ez a verzió elmondja az esemény nevét, majd ha van kitöltve részletes leírás a naptárban, akkor azt is hozzáfűzi a mondathoz.

YAML

alias: Krisz üdvözlése (Cím és Leírás)
description: "A naptári bejegyzések címét és leírását is felolvassa."
sequence:
  - action: calendar.get_events
    target:
      entity_id: calendar.szombati_ebed
    data:
      duration:
        hours: 24
    response_variable: mai_naptar
  - action: tts.speak
    target:
      entity_id: tts.piper
    data:
      cache: true
      media_player_entity_id: media_player.okos_hangszoro_teszt_okos_hangszoro
      language: hu_HU
      options:
        voice: hu_HU-imre-medium
      message: >-
        Üdvözlöm Krisztina. Én Alfréd vagyok, Laci okos házvezetője. Kérem, helyezze magát kényelembe. 
        {% set esemenyek = mai_naptar['calendar.szombati_ebed'].events %} 
        {% if esemenyek | length > 0 %} 
          A mai program: 
          {% for e in esemenyek %} 
            {{ e.summary }}{% if e.description %}, a leírás szerint: {{ e.description }}{% endif %}. 
          {% endfor %} 
        {% else %} 
          Mára nincs bejegyzés a naptárban. 
        {% endif %}

3. Változat: KIZÁRÓLAG a részletes Leírás felolvasása

Ideális választás, ha a naptár leírás mezőjébe eleve kész, kerek mondatokat írsz, és nem akarod, hogy az esemény tömör címe megzavarja a felolvasás ritmusát.

YAML

alias: Krisz üdvözlése (Csak Leírás)
description: "A naptári bejegyzések címét átugorja, csak a leírást olvassa fel."
sequence:
  - action: calendar.get_events
    target:
      entity_id: calendar.szombati_ebed
    data:
      duration:
        hours: 24
    response_variable: mai_naptar
  - action: tts.speak
    target:
      entity_id: tts.piper
    data:
      cache: true
      media_player_entity_id: media_player.okos_hangszoro_teszt_okos_hangszoro
      language: hu_HU
      options:
        voice: hu_HU-imre-medium
      message: >-
        Üdvözlöm Krisztina. Én Alfréd vagyok, Laci okos házvezetője. Kérem, helyezze magát kényelembe. 
        {% set esemenyek = mai_naptar['calendar.szombati_ebed'].events %} 
        {% if esemenyek | length > 0 %} 
          {% for e in esemenyek %} 
            {% if e.description %} 
              {{ e.description }} 
            {% else %} 
              A mai programhoz nem tartozik részletes leírás. 
            {% endif %} 
          {% endfor %} 
        {% else %} 
          Mára nincs bejegyzés a naptárban. 
        {% endif %}

📌 Beállítási tipp: A kódok használata előtt ellenőrizd a Home Assistant Fejlesztői eszközök menüpontjában, hogy a naptárad (calendar...) és a hangszóród (media_player...) entitás-azonosítói pontosan megegyeznek-e a kódban szereplőkkel!

Szólj hozzá!