Giter Club home page Giter Club logo

radiodawg's Introduction

Radiodawg Volumio webradio watchdog

Radiodawg is a Volumio service handling automatic resuming of webradios in case of internet drop-outs.

Python script radiodawg.py periodically (default timeout = 1 sec) queries Volumio's status to determine whether we are streaming a webradio. If so, it checks, whether a DNS service (default is 8.8.8.8, Google's DNS service) is reachable. If not, Volumio playback is stopped and is not resumed, until the DNS becomes reachable again.

Setup

To install the Radiodawg service, copy/move radiodawg.py to /usr/bin/ and radiodawg.service to /lib/systemd/system/. Then, to enable the service (let it run automatically at startup), run the following command:

$ sudo systemctl enable radiodawg.service

Please note that up until now, Radiodawg has only been tested with Volumio 2.861 running on Raspberry Pi 3.

radiodawg's People

Contributors

timolex avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

jo-me

radiodawg's Issues

consider webradio hang despite internet connection

Sometimes the webradio hangs or drops out despite an internet connection.
Volumio/mpd doesnt do a very good job at detecting this unfortunately. So it will sit there as if everything is still working.

I'd suggest implementing a similar logic as mpd-watchdog and check if the stream is still progressing.
the "seek" attribute in volumio status might be a good indicator.
Not sure if the attribute is reliably mirroring what MPD is doing, though.

Service stuck on "activating"

Hi,
thanks for sharing this script.

I had problems getting it to run as systemd service.
It was stuck on "activating" and never printed any logs.

Had more luck with this service description:

[Unit]
Description=run radiodawg Python script at startup
After=network.target
After=syslog.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/python3 -u /usr/bin/radiodawg.py

[Install]
WantedBy=multi-user.target

notice the "-u" parameter in ExecStart for unbuffered output. Without it I could not see any logs in "systemctl status .." .
Maybe all the flushes in the python script become obsolete with this change.

Cheers

volumio playback status not considered

The current playback status is not considered.
If it is "stop" before internet dropout it would be resumed by the script, right?

So "status": "play" should be checked in is_streaming_webradio(),
e.g. volumio status | grep '"status": "play"'

volumio@volumio:~$ volumio status
{
  "status": "stop",
  "position": 0,
  "title": "egofmbw.mp3",
   ...
  "trackType": "webradio",

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.