Logitech Media Server TTS Notify Queue

I have now debugging enabled. I started testing with calling the service and it worked a few times with both players. But when player was off, there suddenly was no notification sound again at all. The notification came as playlist item, but it did not play audibly. I think there is kind of conflict in terms of waiting the player to be ready to play and how fast it plays the notification. I.e. the speaker is not yet able to produce sound but player has already played the notification.

Strange thing is that sometimes it happens, sometimes it does not. And strangely, setting the volume when calling the service seems to improve odds to hear the notification but I was able to play it a few times without audible sound also with this option.

I also observed the following. When player is part of sync group but off, it does not restore volume level even though in my opinion it should. Log is saying:

Restore volume: media_player.audiocast

But it is consistent that volume stays of the level on the notification. Is it maybe that the player goes off sooner that it is able to accept the request for volume level (even though restore state is after restore volume, log says the is 1ms in between)?

There was also couple of instances when synced player was off and then a notification was played, but it did not return to sync group anymore. When player was on, I was not able to reproduce it (it always returned to sync group).

Based on these test it feels quite reliable now, especially if the player is already on. The volume issue when player is off is something which I hope could be looked at. For this player a good level to play music is 20% and for notification +60%. When volume stays there and if you just turn on the player, there is a risk of ear damage… :sweat_smile:

Also, to help with the delay when a speaker is able to produce audible sound and playing the notification, could there be an optional delay parameter that could be specified in case the player is off when notification is triggered?

I just tried with a new Windows squeezeplay ( I only used squeezeplay at the dev stage ) and the first try the integration failed while restoring the playlist which gave an error and the integration did not work afterwards
After restarting HA I did not get the same error anymore
I think I remember LMS not picking up on new saved playlist names right away, could be wrong, it’s been a while when I made the integration

When the player is off when playing the the notification message HA does not know about the volume and the integration does not restore it

The integration does a lot of asking HA to update the status of the media player to know when to play the next part of the notification, on slow media players it can get confused and thinks the alert sound already finished and continuous to the message , did you try adding the “pause” option?

Hi, the description above matches my experience, after adding a new player a restart is needed. Then another to get the playback actually working. But this is not a biggie now that I know it :slight_smile:

Yeah, the volume thing when player is off is a challenge. I guess if it would turn the palyer on first, check volume, then do playback with set volume and return the volume after playback to what it was (and then turn off) would be possible.

Now I also noticed that a very low processing power player (I have Duet controller acting as a player in my garage, the doorbell doesn’t ring there so I was hoping to notify via the Squeezebox player) does not playback TTS almost at all - you only get some “stuttering robot” effect through. Maybe I need to put one Squeezelite Raspberry there as well to get it working decently.

did you try adding the “pause” option?

Sorry, now I don’t follow. Where can I find this option?

Hello! I’m wondering if anyone has tried using this repository lately and if they have had any issues?

From what I can see and gather, I have everything correct and it’s installed but I’m not seeing any service added to HA. I can get TTS to function off a squeezebox with google_translate as the platform.

There is no “lms_tts_notify” service so when it’s used it says “Failed to call service tts/lms_tts_notify_say. Service not found.”

Any ideas what I’m missing? I’ve tried reinstalling and removing via HACS and reinstalling again… still no luck. I verified the files are in the correct folders accordingly as well. HA just isnt recognizing anything…

I just installed this and I am having the same problem. I’ll up the logging and see if it shows anything.

My problem was that I had 2 notify: blocks in configuration.yaml. Once I sorted that it works fine. (My wife can’t handle being told to 'shut the effing fridge‘ though.)

Perhaps post your yaml.

Hello

configuration.yaml

  - platform: lms_tts_notify
    name: bedroom
    tts_service: tts.google_say
    media_player: media_player.bedroom_speaker
    device_group: group.all_persons
    volume: 0.2

Using the lms TTS Notify Queue

  - service: lms_tts_notify.queue
    data:
      repeat: 1
      entity_id: media_player.bedroom_speaker
      message: Testing
      volume: 0.5

The volume always remains as 0.2 as mentioned in configuration.yaml. Why is the volume not changing to 0.5. What am I doing wrong here ?

Bedroom Speaker is GOOGLE NEST MINI.

Kindly guide

Not an lms player then?

I can play TTS on this speaker via lms_tts_notify.queue and play music via Squeezebox call_method, the player is shown as entity in “Squeezebox (Logitech Media Server)” integration.

Ok, so are you using the lms Chromecast plugin?

yes… What am I doing wrong? Why is the volume for TTS always staying at 0.2??

I was able to get this plugin working by copying the config from the readme and it is awesome! Thank you @floris-b for creating it! However, I’d really like to be able to use one of my favorite piper voices instead of Google translate. I’m unclear on how to make that happen. Can someone please show me what my config should look like using piper?

Just released Release 0.3.15 · floris-b/lms_tts_notify · GitHub. Support for Assist tts.speak service! Thanks @floris-b and Wizmo2!

1 Like

Can you please share how to use with tts.speak and piper?

What should be the exact yaml configuration?

Thank you

It’s all in the documentation.

You can use the Assist tts.speak service, but it is required to specify the tts engine entity_id.
For example, entity_id: tts.piper

Can you post your notify-config?

tts:
  - platform: google_translate
    service_name: google_say

notify:
 - platform: lms_tts_notify
   name: bedroom
   tts_service: tts.google_say
   media_player: media_player.bedroom_speaker
   device_group: group.all_persons
   volume: 0.2

Well this should work with tts.piper.

notify:
 - platform: lms_tts_notify
   name: bedroom
   tts_service: tts.speak
   entity_id: tts.piper
   media_player: media_player.bedroom_speaker
   device_group: group.all_persons
   volume: 0.2

Thank so very much… It worked…

Kindly help me with the following issue.

service: lms_tts_notify.queue
data:
  entity_id: media_player.bedroom_speaker
  message: "Hello how are you ?"
  volume: 0.5

The notification is announced and the volume is set to 0.2. But in the above example I am setting the volume to 0.5 via service call. Why is not changing the volume to 0.5 ? Its always the volume that is set in configuration yaml.

Is it possible to change the volume via service calls ???

Kindly guide.

Thank you.

Good to here it worked. Strange that the volume settings do not work.
You can set the volume by a servicecall like this:

service: squeezebox.call_method
target:
  entity_id: media_player.bedroom_speaker
data:
  command: mixer
  parameters:
    - volume
    - 50

b.t.w. you can find the squeezebox cli docs on your LMS: http://localhost:9000/html/docs/cli-api.html (replace “localhost” with your server’s address).