[GUIDE] How to set up Volumio to reboot nightly

I just implemented this but had a slightly different experience.

  • To install crontab I used sudo apt-get install -y cron
  • Changed the cronjob to 00 07 * * * /volumio/app/plugins/system_controller/volumio_command_line_client/commands/playback.js reboot

example:
___
/_ \ __
__ __ //\ \ __ __ ___ ___ /_\ ___
/\ /\ \ / __\\ \ \ /\ \/\ \ /' __ __\/\ \ / __\
\ \ _/ |/\ \L\ \
\ _\ \ _\ /\ /\ /\ \ \ /\ \L\
\ _
/ \ _//_\ _/\ _\ _\ _\ _\ _/
// // // // /////////___/

         Free Audiophile Linux Music Player - Version 2.0

      C 2015 Michelangelo Guarise - Volumio Team - Volumio.org

Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
volumio@volumio:~$ sudo apt-get install -y cron
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed

============
volumio@volumio:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use ‘*’ in these fields (for ‘any’).#
# Notice that tasks will be started based on the cron’s system
# daemon’s notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
#
# * * * * * CMD
# 1 2 3 4 5 6
# | | | | | |
# | | | | | ± Command to run
# | | | | ±— Day of the Week (range: 0-6, 1 standing for Monday)
# | | | ±----- Month of the Year (range: 1-12)
# | | ±------- Day of the Month (range: 1-31)
# | ±--------- Hour (range: 0-23)
# ±----------- Minute (range: 0-59)
#
# The below command was entered on 3/26/2021 to perform nighly reboots
#
00 07 * * * /volumio/app/plugins/system_controller/volumio_command_line_client/commands/playback.js reboot
volumio@volumio:~$

seems to be working based on uptime

Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
volumio@volumio:~$ uptime -s
2021-03-27 07:00:14

Thanks for posting this - I’ve been tearing my hair out with my pi 2B loosing the network - thought it was a wifi issue so switched to wired lan and the problem persists - incredibly frustrating!

Sounds like others have similar issues any thoughts on a solution beyond the sledgehammer approach?

I’ll see if I can figure out the instructions above and give it a whirl.

Many thanks,

Robert

Had a look at all the instructions above and finding them to be all opaque to me lol.

I love using volumio & my pi (when it works it’s great) but feel that for the times when things go wrong having to relearn how to do all this stuff again and again is just too much… the draw of the dark side of commercially available streamers feels very strong!

Are you able to SSH into the device?

It’s really not very difficult, but if you’ve got £/$/E1000s to blow, then go for it. :innocent: Alternatively, you could ask for help and clarification of stuff that you don’t understand. One of the things I like about Volumio is that it’s community is very happy to give help and advice on stuff from the basics of linux single board computers such as the RPi, right up through the experience of how to achieve great sound from your hardware whatever your budget.

Just for a first pointer if you’re looking for a comparable experience to commercial streamers, then please invest a tiny bit more in a more capable RPi than RPi2, or one of the x86 mini-PC boxes available.

Edit: ok for my example of a daily, clean reboot…

There is an error in this post, please go here for further details.

  1. Enable & access your RPi by ssh (this is simply a way of talking directly to your RPi through the command line.

https://volumio.github.io/docs/User_Manual/SSH.html

  1. Make a systemd timer file in /etc/systemd/system:
sudo nano /etc/systemd/system/systemd-reboot.timer

Add the following content and press CTRL-O to write the file, followed by CTRL-X to return to the command line. [Edit: please note that here I originally wrote “CTRL Z to save it.”]

[Unit]
Description=Reboot daily at 1am

[Timer]
OnCalendar=*-*-* 1:00:00

[Install]
WantedBy=timers.target

  1. Enable the timer & start it:
sudo systemctl enable /etc/systemd/system/systemd-reboot.timer
sudo systemctl start /etc/systemd/system/systemd-reboot.timer

Done, your RPi should reboot daily at 1.00am :wink:

Edit 2: to anyone wanting to get into writing plugins for Volumio, this simple rebooter would be a great first project to get used to how plugins are produced/work in Volumio. You just need to understand how the above timer file can be incorporated into Volumio’s plugin structure.

More information on writing plugins can be found here.

1 Like

Hi,

Many thanks for the reply!

Are you thinking an upgrade to a Rpi4 would help things?

Thank you also for the instructions for the automatic reboot - I’ll take a look and see if I can figure the steps out. I’m not a natural at this so each time something goes wrong it feels like I’m starting from scratch and having to relearn how to dabble in the rpi code. I know I can do it and have done in the past but… well you know, ultimately I just want to be able to sit down and listen to my tunes. (Ps my sd card now keeps being corrupted - arghh)

Thanks though,

Robert

Lots of people use the older Pis quite happily, and although I have retired all my 1s & 2s, I run a couple of RPi0s with Volumio … it’s a matter of expectations. An upgrade to a RPi4 would certainly lead to a much more responsive experience. RPi3s would be fine, but since they’re all at a similar price-point, why not got for the RPi4. The only thing to watch for with the RPi4 is that you get a decent 3A power supply.

Let us know how you get on. :wink:

P.S. if you’re getting the sd corruption on multiple cards, then this might be a result of poor power supply.

1 Like

hi - sd card rebuilt and the tunes return… immediate reduction in stress… right - ssh…

Ok - so, downloaded openssh from the link under SSH on the volumio documentation but no idea how to install the software (I’m guessing that it is software to install) on my macbook… sorry for being a pain but you might be starting to pick up on how much of a struggle this is for me! I have looked through all of the files that downloaded but nothing leaps out at me - under pc/windows I’m thinking that this would be an .exe file?

Am I right in thinking that openSSH is a small programme that allows access to the Rpi from my mac and so allows me to ammend the volumio code to include the instruction to reboot at 1am?

No need to download any software. Your Mac should already be capable of using ssh directly. Have a quick read here … jump past the first section straight to “Connecting to a Server via SSH in Terminal”. The server referred to there is your RPi, and the command to start the ssh connection will be:

ssh volumio@volumio.local

That should get you yo your RPi’s command line.

(There will also be graphical ssh clients available, if you feel more comfortable in that kind of environment, but you will need to install them … and honestly I don’t think it’s worth the effort for what you are going to do.)

Yes. :slight_smile:

Thanks for your patience! I feel that I’m getting there… then I get this…

[2]+ Stopped sudo nano /etc/systemd/system/systemd-reboot.timer
volumio@volumio:~$ sudo systemctl enable /etc/systemd/system/systemd-reboot.timer
Failed to execute operation: No such file or directory
volumio@volumio:~$ sudo systemctl start /etc/systemd/system/systemd-reboot.timer
Failed to start etc-systemd-system-systemd\x2dreboot.timer.mount: Unit etc-systemd-system-systemd\x2dreboot.timer.mount failed to load: No such file or directory.
volumio@volumio:~$

‘nano’ is a text editor that you are using to make the .timer file. Can you check that you have made the file correctly by typing:

cat /etc/systemd/system/systemd-reboot.timer

and pasting the output here please.

I tried running through the previous instructions again just in case and got the dame result. Here is what I get after inputting your last instruction… guessing something is missing…

volumio@volumio:~$ cat /etc/systemd/system/systemd-reboot.timer
cat: /etc/systemd/system/systemd-reboot.timer: No such file or directory
volumio@volumio:~$

yes, you are not creating the file systemd-reboot.timer with ‘nano’ for some reason.

Oh wow, my mistake … sorry you need to hit CTRL-O to write the file, and CTRL-X to exit back to command line. I’m going to go back and edit my original post for the sake of clarity for people following afterwards.

Hi,

Took a few goes… but hopefully it’s working - is there any way of checking that it’s actually doing the job? Will this: cat /etc/systemd/system/systemd-reboot.timer

tell me?

Many thanks,

Robert

Have afeeling that this is now looking psitive!

volumio@volumio:~$ cat /etc/systemd/system/systemd-reboot.timer

[Unit]

Description=Reboot daily at 1am

[Timer]

OnCalendar=--* 1:00:00

[Install]

WantedBy=timers.target

volumio@volumio:~$

There is an error in this post, please go here for further details.

The easiest way to check is to edit the file:

  1. Stop the timer from running.
    sudo systemctl stop /etc/systemd/system/systemd-reboot.timer
  1. Edit the file to include a time say 10 minutes from now.
sudo nano /etc/systemd/system/systemd-reboot.timer

So change the 01:00 to say 14:10 in the OnCalendar= line, save the file CTRL-o, and exit nano CTRL-x

  1. Restart the timer.
sudo systemctl start /etc/systemd/system/systemd-reboot.timer

and wait until your set time (14:10) is reached… the RPi should reboot.

To your other question, ‘cat’ just shows the contents of the file.

Dear chsims1,
thank you for your reboot code.
I have created the file and all works pretty. at 1:00am the mashine did made a reboot,

volumio@volumio-bad:~$ cat /etc/systemd/system/systemd-reboot.timer
[Unit]
Description=Reboot daily at 1am

[Timer]
OnCalendar=*-*-* 1:00:00

[Install]
WantedBy=timers.target

but what I am realy wondering is, after I enable the code and want to start the code the following message comes up:

volumio@volumio-bad:~$ sudo systemctl start /etc/systemd/system/systemd-reboot.timer
Failed to start etc-systemd-system-systemd\x2dreboot.timer.mount: Unit etc-systemd-system-systemd\x2dreboot.timer.mount failed to load: No such file or directory.

On the end it works but I can not trace why? Do you have an idea?
Kind regards Korniman

I think that you have made a typo somewhere.

Once you have enabled the file ok, it will automatically start after a reboot. You can see if it is running successfully by typing ‘sudo systemctl status systemd-reboot.timer’.

volumio@volumiostudy:~$ sudo systemctl status systemd-reboot.timer
● systemd-reboot.timer - Reboot daily at 1am
   Loaded: loaded (/etc/systemd/system/systemd-reboot.timer; disabled; vendor preset: enabled)
   Active: active (waiting) since Mon 2021-04-19 06:38:59 UTC; 17s ago
  Trigger: Tue 2021-04-20 01:00:00 UTC; 18h left

Apr 19 06:38:59 volumiostudy systemd[1]: Started Reboot daily at 1am.

So to summarise:

sudo systemctl enable timerfile         start timer automatically after a reboot.
sudo systemctl start timerfile             start timer immediately
sudo systemctl stop timerfile             stop timer immediately
sudo systemctl restart timerfile          restart timer if it is already running
sudo systemctl status timerfile          shows status of the timer