Roon Extension: Alarm Clock v0.9.1 (current)

Short description:
Roon Extension to start or stop playback on a specific zone at a specific time.

Description:
This extension turns your Roon system into an alarm clock. You select a zone, an action, a time, and a volume and when the time is right playback starts or stops. The main features (in short) are:

  • 5 independent alarms (number can change), all with their own zone, action, day, time and volume
  • A Play or Stop action, allowing for a wake or sleep function
  • A week timer, allowing for an alarm somewhere in the upcoming week, including repeat function
  • A relative timer, allowing for an alarm somewhere in the upcoming 24 hours. The relative timer starts counting down immediately after set-up.
  • A fade in/fade out time, depending on the selected action
  • A fallback to a default music source (Roon Radio), in case there is nothing selected in advance

Screenshots:
Status

Settings

Status:
All listed features are implemented and the extension is not only in use by me but also by some members of the Roon community. Based on feedback, the biggest hurdle seems to be to get it installed. There is some discussion about this in this thread, which may be of help, but please start off by reading the information in this first post.

I use the Alarm Clock mainly for wake-up and use an Internet Radio stream as music source.

Limitations:

  • If you want something specific to play you have to select it manually (internet radio, queue, playlist), in this situation the Play button is ‘pressed’ when it’s time to do so.
  • There is a fixed default source. If there is nothing to play when the alarm expires and the play history can be accessed via the Previous button, then a track from history is played. At the start of playback also the radio function is enabled to keep the music going after the initial track finished playing.

Known issues:

  • none

Availability:
The beta version of the extension is available on GitHub:

https://github.com/TheAppgineer/roon-extension-alarm-clock

The GitHub page has instructions on how to install the extension.

Important notes!!

  • Use this extension at your own risk!
  • Make regular backups of your Roon database.
  • This extension is in beta status, as is the API it depends on. This means that there can be small or even bigger issues!
  • Using this extension requires some tinkering (as the forum category suggests), I tried to make the installation instructions as clear as possible. If things are unclear, let me know.
  • GitHub will probably remain the distribution channel till the Roon team unfolds its plans for extension distribution and installation.
  • Start off by performing a basic test. Set up a non-critical alarm to start or stop playback and see if it works for you.
  • If you use it for wake up, use your phone or another alarm clock as a backup. Get confidence in the correct operation of the extension.
  • Keep an eye on the availability of the extension in the Settings->Extensions screen of Roon. I noticed that I had to restart the extension after a Roon Core update!

I would like to hear from you
User feedback will be valuable to bring this extension and the Roon API to the next level. I’m available for support or feature requests!

25 Likes

Great effort, I’m sure many Roonies are looking forward to using it.

1 Like

Great, would love to test this

This is a great idea!
I’d love to be able to add multiple alarms for different zones. For example it would cool to have a bedroom endpoint to wake you, then a few minutes later the bathroom endpoint fades up with the same music to lure you into the shower, followed 10 minutes later it picks up the tempo and fades into whatever area of the house gets you coffee the quickest.

This is great. Exactly what I was looking for in my Slaapkamer. It’s the main feature of Sonos that I still miss. The pleasure to wake up to music rather than my phone’s alarm :slightly_smiling_face:

I can live without music to wake to, but music to sleep to that’s a no brainer must have…sleep timer with fade out ideally where the hardware supports it.

2 Likes

Great to see the first API efforts appearing - nice work.

Hopefully the API will quickly evolve. I think an alarm setting has to be able to call upon a particular track, playlist or radio station for it to be useful and reliable. And an off/snooze button. :slight_smile:

It will be interesting to see how Roon will handle us users sharing community solutions. Will it be like a plugin network where you can browse and install these tools, or maybe even a simple forum section to start with, with a topic for each API tool.

Excellent work :slight_smile: well done.

Have you contacted @support for a view as to how to submit it?

Thanks for the positive reactions guys!

About the feature requests:

To avoid an endless list of settings, multiple alarms would require a tabbed settings layout, or something like that. Don’t know if this is supported by the API. But multiple alarms would be a logical expansion of functionality.

Volume can be controlled via the API, so a fade-in should technically be possible.

I thought about a sleep timer, but this is probably better served via a separate Roon Extension.

I agree that there should be a possibility to preselect some source material. May be the next thing to figure out.

How would you access an off/snooze button?

1 Like

Yes, I would like to hear about their plans as well. @danny, can you comment on this?

Good question. I suppose that would require a much more customisable interface via the API.

Perhaps a start would be a single popup button / customisable text / selectable areas.

Depending on the power of the API we could start to see some really nice tools appear.

If you were to build a sleep timer with fade out, I’d offer a nice bottle of whatever you enjoy while listening. :wink:

I will keep it in mind.
Makes me think, maybe I should first tell what I enjoy while coding :wink:

And congratulations for becoming a Roon moderator, well deserved.

2 Likes

I like the idea of adding a fade in/fade out time, but I’m wondering how long this time should be. Should this be something in the range from 1 to 5 minutes? longer? shorter?

In my Squeeze days, I used a plugin the allowed setting a time period and a few different choices for volume lowering (linear or sloped).

I usually set 30 minutes with a nice slope that lowered volume slowly in the beginning of the time period and more rapidly nearing the the end – at which time I was usually already snoring away).

But to avoid overcomplicating this: a linear decrease during a user defined time period would be perfectly fine.

Yep, if it will be in, it will be limited to linear :slight_smile:

Time for a status update:

I thought about the requests and how they can be incorporated to make the Alarm Clock more universal. First step was working out the settings screen, and that’s the part I have finished now. All the business logic behind it still has to be done. I have the impression that implementing this is feasible, but no guarantees!

The settings screen now provides in setting up:

  • 5 independent alarms (number can change), all with their own zone, action, day, time and volume
  • A Play or Stop action, allowing for a wake or sleep function
  • A week timer, allowing for an alarm somewhere in the upcoming week, including repeat function
  • A fade in/fade out time, depending on the selected action

I made an animation from a couple of actual screen shots, to give you an impression:

7 Likes

like what I see, but while I am no software guy, I can’t see why a sleep option is not just as workable with the confines of the same extension.

Looking fine, Jan. I had not made the connection to combine the two (sleep and wake) in one and the same extension, but this looks like a great way to implement both.

This new setup supports sleep, the idea is that you manually start payback and configure a time to stop it.

Or you start playback with alarm 1 and stop it with alarm 2.