Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias: TTS wznowienie
- description: 'Obsługuje: Nabu Casa, Google Cloud, Google Translate. 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
- #Zmienne ze stanem player'a, zamim TTS zacznie gadać. Wypełniane są danymi przed wykonaniem bloku 'action'
- 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 20:00 głośność 0.5, wieczorkiem 0.3
- tts_volume_level: |
- {% set h = now().hour %}
- {% if h >= 6 and h < 20 %} 0.5 {% else %} 0.3 {% 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 < 20 %}
- {% if media_player_id == "media_player.jbl" %}
- 0.8
- {% elif media_player_id == "media_player.nest" %}
- 0.7
- {% else %}
- 0.5
- {% endif %}
- {% else %} 0.3 {% endif %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement