[BETA] Sonos Minimum Volume Tracker App

Sonos Minimum Volume Tracker

This app was developed to track the lowest set volume of all selected Sonos devices.

Warning

This app was developed for Sonos speakers only, and has not been tested with any other type of Music Player capability devices.

Status

This app is in BETA status.

Tested environments

Hubs: C-7

Software: 2.2.4.158

Code

https://github.com/viertaxa/hubitat/tree/main/Apps/SonosMinimumVolumeTracker

Feature Requests and Bug Reports

Please open Feature Requests and Bug Reports as an issue on GitHub:

https://github.com/viertaxa/hubitat/issues

Support

Support can be found at https://github.com/viertaxa/hubitat/discussions

HPM

Now available on HPM under the username viertaxa

Releases

RELEASE HISTORY:
    - 0.1.0: Initial Release
    - 0.1.1: Add support for uninstalled() callback
    - 0.1.2: Change input selection to show only Sonos devices

RESERVED for future posts.

Hey @viertaxa

I'm intrigued to know what you use this app for...what's your use case?

I've got a few rules adjusting volumes in the early hours of the morning to avoid the kids party mode volumes during the day...had a notification blast me awake in the morning...#AlwaysLearning.

Thanks for sharing the app!

I use it to capture whatever the lowest volume is before starting an announcement to the house during an alarm, for example.

So the rules look like:

  • set variable to minimum volume of all sonoses
  • stop all sonoses
  • unmute all sonoses
  • set all sonoses to a high volume
  • speak until canceled “Intruder detected at %device%” with a delay between messages.
  • once canceled:
  • stop speaking
  • set all sonoses volume minimum 10, maximum 20, preferred pre-alarm minimum volume.

I’ll probably be writing a more advanced app to either handle all of that in an app rather than HSM or RM4, but it works for now.

1 Like

How are you controlling this app in RM4?
Trying to think through how I would use this. I like the idea of resetting the sonos min/max volumes after a TTS alert/warning/Alarm.

I use it as follows:

  • Create a global variable called sonosVolumePreAlarm
  • In a rule triggered by HSM status of alarm:
    • Use action "Set Variable" to set sonosVolumePreAlarm to "device attribute". Under select device, select the child device this app creates and updates the volume on, and select attribute "volume"
    • use action "Control Media Player/Set Volume" to set all of the sonoses to 98 volume
  • In a rule triggered by HSM status of canceled:
    • use action "Control Media Player/Set Volume" to set all sonoses to sonosPreVolumeAlarm.

It's not perfect, but it's better than turning on the TV and having the soundbar blast at 98 volume!

Like I said above, I might write an app that stores the volumes of each individual sonos separately or something, but for now this is working fine.

1 Like

Released 0.1.2: Change input selection to show only Sonos devices

1 Like

Awesome, thank you for that.
I'll give this a go!
Minor feature request I would have once you get out of beta is to add this to HPM if it's not already in your plan.

1 Like

Sure, I'm new to Hubitat, so I'm not very familiar with HPM. Is there an easy way to add apps to it?

Super easy.
Full instructions here, but the summary is you;

  1. Create a Package Manifest file that you'd host on github that lists your app(s)
  2. You submit a Pull Request against the HPM repository https://raw.githubusercontent.com/dcmeglio/hubitat-packagerepositories/master/repositories.json pointing to your new manifest.

FYI this is pending approval from HPM for the list of repositories. As soon as that gets merged, it will be available through HPM.

2 Likes

This is now available through HPM. I don't personally use HPM, and I don't have a development hub, so please let me know if you experience any issues.

1 Like

Worked great, thank you!