Pamiętaj, że moższ użyć helpa:
ok tylko jak zrobić tą automatyzacje jakich nodów użyć
U mnie zadziałała taka forma
{
"entity_id": "media_player.mateusz",
"message": "{{payload.message}}"
}
Działający w 100% Status poranny (2).json (35,9 KB). Pewnie można byłoby prościej ale moje techniczne umiejętności są zbyt słabe.
Wchodzisz w Ustawienia → Automatyzacje oraz sceny → Utwórz automatyzację → Utwórz nową automatyzację → trzy kropki w prawym górnym rogu → Edycja w YAML → wklejasz kod
alias: TTS wznowienie
description: 'Wznawianie serwisu Spotify przy użyciu spotcast.'
trigger:
# Nabu Casa
- platform: event
event_type: call_service
event_data:
service: cloud_say
# Google Cloud
- platform: event
event_type: call_service
event_data:
service: google_cloud_say
# Google Translate
- platform: event
event_type: call_service
event_data:
service: google_translate_say
action:
# Jeśli głośnik gra, to poczekaj aż TTS mu przerwie
- choose:
- conditions:
- condition: template
value_template: '{{ media_player_resume }}'
sequence:
- wait_template: '{{ not is_state(media_player_id, "playing") }}'
default: []
# Ustaw głośność
- service: media_player.volume_set
target:
entity_id: '{{ media_player_id }}'
data:
volume_level: '{{ tts_volume_level }}'
# Poczekaj aż zacznie gadać
- delay: 2
# Poczekaj aż skończy gadać
- wait_template: '{{ not is_state(media_player_id, "playing") }}'
# Przywróć poprzednią głośność (jeśli poprawnie odczytana)
- choose:
- conditions:
- condition: template
value_template: '{{ media_player_volume_level != None }}'
sequence:
- service: media_player.volume_set
target:
entity_id: '{{ media_player_id }}'
data:
volume_level: '{{ media_player_volume_level }}'
default: []
# Wznowienie poprzedniego utworu jeśli wcześniej głośnik grał, w przeciwnym razie wyłącz głośnik
- choose:
- conditions:
- condition: template
value_template: '{{ media_player_resume }}'
sequence:
- choose:
- conditions:
- condition: template
value_template: '{{ media_player_app_name == "Spotify" }}'
sequence:
- service: spotcast.start
data:
entity_id: '{{ media_player_id }}'
force_playback: true
default:
- service: media_player.play_media
target:
entity_id: '{{ media_player_id }}'
data:
media_content_type: '{{ media_player_content_type }}'
media_content_id: '{{ media_player_content_id }}'
default:
- service: media_player.turn_off
target:
entity_id: '{{ media_player_id }}'
mode: single
variables:
media_player_id: '{{ trigger.event.data.service_data.entity_id }}'
media_player_resume: '{{ is_state(media_player_id, "playing") }}'
media_player_content_id: '{{ state_attr(media_player_id, "media_content_id") }}'
media_player_volume_level: '{{ state_attr(media_player_id, "volume_level") }}'
media_player_content_type: >
{% set c_type = state_attr(media_player_id, "media_content_type") %}
{% if c_type == None %} music {% else %} {{ c_type }} {% endif %}
media_player_app_name: '{{ state_attr(media_player_id, "app_name") }}'
# Między 6:00 a 22:00 głośność 0.4, wieczorem 0.2
tts_volume_level: >
{% set h = now().hour %}
{% if h >= 6 and h < 22 %} 0.4 {% else %} 0.2 {% endif %}
aby uzależnić głośność od konkretnego głośnika należy zmodyfikować zmienną
tts_volume_level
np.:
tts_volume_level: |
{% set h = now().hour %}
{% if h >= 6 and h < 22 %}
{% if media_player_id == "media_player.NAZWA_GLOSNIKA_1" %}
0.8
{% elif media_player_id == "media_player.NAZWA_GLOSNIKA_2" %}
0.7
{% else %}
0.5
{% endif %}
{% else %} 0.3 {% endif %}
reset HA i ma działać, przynajmniej u mnie działa.