Thank you for showing me that!! Very helpful!!
You can try this instead:
- delay:
seconds: "{{ (message.split() | count / 2) | round(0) }}"
It counts the number of words in the message, divides by two and rounds the result. In other words, it gives each word a half-second to be spoken.
If the spoken message is occasionally cut off, just tinker with the calculation to get a slightly longer delay. For example:
- delay:
seconds: "{{ (message.split() | count * 0.6) | round(0) }}"
Can you tell me what this is doing? Is this saying who and “media_player.sonos_group” are the same?
no, it’s getting who from your mapped players. If who isn’t in the mapped players, it grabs the default one… media_player.sonos_group
Very Nice!! I like that much better! Thank you for sharing your expertise!!
Thank you all again! I will report back in the morning if this seems to have fixed everything. (the next time the morning report announces through the house)
If I would like to choose another speaker to announce through. Do I essentially set who as one of the variables in the top of the script you helped me with?
it works exactly the same as your old script. No different.
You can remove the second media_player.volume_set
from your script. The script restores the original volume level when sonos.restore
is executed.
I follow you
Ahh, nice. Thank you for this. Much more simple now from what I started out with.