Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- script:
- tts_gadaj:
- alias: TTS Gadaj
- fields:
- entity_id:
- name: Media player entitity.
- description: Name(s) of media player entities.
- required: true
- example: media_player.jbl_salon
- selector:
- entity:
- domain: media_player
- volume_day:
- name: Day volume level
- description: The volume of the media player during the day.
- required: true
- example: '0.5'
- selector:
- number:
- min: 0
- max: 1
- step: 0.1
- mode: slider
- volume_night:
- name: Night volume level
- description: Media player volume at night.
- example: '0.3'
- selector:
- number:
- min: 0
- max: 1
- step: 0.1
- mode: slider
- message:
- name: TTS message
- description: Text to speak on devices.
- required: true
- example: Siała baba mak!
- selector:
- text:
- audio_file:
- name: Audio file path
- description: The path to a file that will be played before the message
- required: false
- example: /media/local/tadaaa.mp3
- selector:
- text:
- sequence:
- #włącz głośnik jeśli wyłączony (aby odcztać głośność do późniejszego przywrócenia)
- - choose:
- - conditions:
- - condition: template
- value_template: '{{ media_player_is_off }}'
- sequence:
- - service: media_player.turn_on
- target:
- entity_id: '{{ entity_id }}'
- #czekaj 3s aż się włączy, przerwij skrypt jeśli się nie włączy
- - wait_template: '{{ not is_state(entity_id, "off") }}'
- timeout: 3
- continue_on_timeout: false
- - conditions:
- - condition: template
- value_template: '{{ media_player_is_playing }}'
- sequence:
- - service: media_player.media_stop
- target:
- entity_id: '{{ entity_id }}'
- #czekaj 3s aż przestanie grać, przerwij skrypt jeśli nie przestanie
- - wait_template: '{{ not is_state(entity_id, "playing") }}'
- timeout: 3
- continue_on_timeout: false
- default: []
- #odczytaj stan głośnika
- - variables:
- media_player_content_id: '{{ state_attr(entity_id, "media_content_id") }}'
- media_player_volume_level: '{{ state_attr(entity_id, "volume_level") }}'
- media_player_content_type: '{% set c_type = state_attr(entity_id, "media_content_type") %}{% if c_type == None %} music {% else %} {{ c_type }} {% endif %}'
- media_player_app_name: '{{ state_attr(entity_id, "app_name") }}'
- #ustaw głośność
- - service: media_player.volume_set
- data:
- volume_level: '{{ tts_volume_level }}'
- target:
- entity_id: '{{ entity_id }}'
- #graj plik jeśli zdefiniowany
- - if:
- - condition: template
- value_template: '{{ audio_file is defined }}'
- then:
- - service: media_player.play_media
- target:
- entity_id: '{{ entity_id }}'
- data:
- media_content_type: music
- media_content_id: '{{ audio_file }}'
- - delay: 2
- - wait_template: '{{ not is_state(entity_id, "playing") }}'
- #gadaj
- - service: tts.google_translate_say
- data:
- entity_id: '{{ entity_id }}'
- message: '{{ message }}'
- cache: true
- language: pl
- #czekaj aż zacznie gadać
- - delay: 2
- #czekaj aż skończy gadać
- - wait_template: '{{ not is_state(entity_id, "playing") }}'
- #przywróć głośność
- - if:
- - condition: template
- value_template: '{{ media_player_volume_level != None }}'
- then:
- - service: media_player.volume_set
- target:
- entity_id: '{{ entity_id }}'
- data:
- volume_level: '{{ media_player_volume_level }}'
- #przywróć stan playera
- - choose:
- - conditions:
- - condition: template
- value_template: '{{ media_player_is_playing }}'
- sequence:
- - if:
- - condition: template
- value_template: '{{ media_player_app_name == "Spotify" }}'
- then:
- - service: spotcast.start
- data:
- entity_id: '{{ entity_id }}'
- force_playback: true
- else:
- - service: media_player.play_media
- target:
- entity_id: '{{ entity_id }}'
- data:
- media_content_id: '{{ media_player_content_id }}'
- media_content_type: '{{ media_player_content_type }}'
- - conditions:
- - condition: template
- value_template: '{{ media_player_is_off }}'
- sequence:
- - service: media_player.turn_off
- target:
- entity_id: '{{ entity_id }}'
- default: []
- mode: queued
- icon: mdi:text-to-speech
- variables:
- media_player_is_playing: '{{ is_state(entity_id, "playing") }}'
- media_player_is_off: '{{ is_state(entity_id, "off") }}'
- tts_volume_level: |
- {% set h = now().hour %}
- {% if (h >= 6 and h < 20) or volume_night is not defined %} {{ volume_day }}
- {% else %} {{ volume_night }} {% endif %}
- ###########################################################################
- # usage example 1
- service: script.tts_gadaj
- data:
- entity_id: media_player.jbl_sypialnia
- volume_day: 0.5
- volume_night: 0.3
- message: Siała baba mak!
- ###########################################################################
- # usage example 2
- service: script.tts_gadaj
- data:
- entity_id: media_player.jbl_sypialnia
- volume_day: 0.5
- message: Siała baba mak!
- audio_file: /media/local/tadaaa.mp3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement