Roon Extension: macro.on

Hello everybody,

It’s time to show you my new Roon extension: macro.on

You will find a more detailed description and installation instructions right here:
https://github.com/bsc101/roon-extension-macroon-readme

A brief summary of what macro.on is about:

macro.on lets you define macros. A macro is a sequence of macro steps (a sequence of Roon commands).
For example:

You can run your macros manually or by sending an http GET request, this way you can run macros from any other software that is capable of sending http GET requests.

Furthermore, macros can be run automatically by using triggers. Examples for triggers are: a certain point in time (alarm clock), a Roon endpoint appears (autoplay after power on), and so on…
For Example:

trigger_example

You can assign constraints to a trigger to restrict the execution of a macro. A simple example would be an alarm clock that runs at 6am in the morning, but only on Mondays through Fridays. A more advanced example would be an autoplay functionality with different audio sources played at different times of day (news radio station in the morning, music playlist in the evening).

macro.on comes with a web interface where you can configure everything:

Here are a few examples of what I do with macro.on:

  • Alarm clock:
    Play a radio station at 5:50 AM with some specified volume, wait 10 minutes, increase volume.
  • Autoplay:
    I have a few Sonos devices which I typically power off if I do not use them. I want them to autoplay something when I plug them in. The Sonos in my bathroom does the following:
    If I turn it on between 6:00 and 9:00, it plays a radio news station.
    If I turn it on between 9:00 and 17:00, it plays my favorite music radio station.
    If I turn it on after 17:00, it continues playing a playlist (plays current queue).

So, you should now have a first impression of what macro.on is about and I hope you find it interesting. Looking forward to your feedback!

Cheers :beers:


Please note:

This is a first version, there is still a lot to do. The currently available macro steps, triggers and constraints are just a subset of what is possible. I will of course add further functionality with future releases. So, your input is very welcome!

I decided to give you the possibility to support me and the development of this extension (https://www.buymeacoffee.com/bsc101). You will find more details on the About page of the web interface. Supporters will be able to create more than 3 macros and triggers :wink:


This extension is also required by the macro.on Android App. You can find the app in the Google Play Store:
https://play.google.com/store/apps/details?id=com.bsc101.macroon
And some more details about the app right here:
https://community.roonlabs.com/t/roon-extension-macro-on-android-app/


Thank you @Christian_Riedl for the C# API :sunglasses:

13 Likes

This could be the answer to a prayer. Thank you.

What prayer exactly?

First and foremost I’ve been looking for ways to automate or program playback. I looked at Alarm Clock but I don’t understand how to install it. Bummer. I’m new to Roon and the Extensions system seems pretty opaque to me. In any event this seems to have that nailed.

In addition, I’m assuming you’ll also be considering something akin to IF THEN ELSE branching which would take it to another level.

I don’t want to get carried away at this time with questions and requests. I’m sure you have your own list and priorities. That said, I will post to your Github site once I have it installed and get some experience under my belt.

-Thanks again

Thanks @KGLT_Radio,
Let me know if you need any help and don’t hesitate to provide some feedback regarding your needs and use cases!
Cheers :slightly_smiling_face: