Beo web remote - web server for controlling network link attached B&O devices
All I really wanted was to create a magic button that could shut it all off when leaving home. Along the way and after some serious research on Internet (mainly GitHub) and reverse engineering an app (or rather some of how it communicates with the system) I managed to build the desired functionality. With the knowledge I had gathered I managed to squeeze in a couple of more features. One day I also realized that a snooze function would be useful so that I could fall asleep listening to music (or any other source in fact).
It's nothing fancy really. If you want to add features please go ahead!
Launch the web server using the following command:
python beowebmote.py
On startup the script starts to listen for beolink services on the local network and for requests on port 5000.
Get the status of the web server.
http://<beowebmote_host>:5000/
List all devices available on the local network.
http://<beowebmote_host>:5000/devices
Start playback of selected source.
http://<beowebmote_host>:5000/<device_name>/play
Pause playback of selected source.
http://<beowebmote_host>:5000/<device_name>/pause
Stop playback of selected source.
http://<beowebmote_host>:5000/<device_name>/stop
Skip to next track or channel for the selected source.
http://<beowebmote_host>:5000/<device_name>/next
Select previous track or channel for the selected source.
http://<beowebmote_host>:5000/<device_name>/prev
Put a specific device into standby.
http://<beowebmote_host>:5000/<device_name>/standby
Put all devices into standby.
http://<beowebmote_host>:5000/<device_name>/allstandby
Put a specific device into standby after a delay specified in minutes. Minutes should be an integer value.
http://<beowebmote_host>:5000/<device_name>/snooze/<delay_in_minutes>
Put all devices into standby after a delay specified in minutes. Minutes should be an integer value.
http://<beowebmote_host>:5000/<device_name>/allsnooze/<delay_in_minutes>
Get the current volume set for a device.
http://<beowebmote_host>:5000/<device_name>/volume
Set the volume to a certain level for a specific device. Range is 1-100, but is also limited by device settings.
http://<beowebmote_host>:5000/<device_name>/volume/<level>
Increase the volume by one for a specific device.
http://<beowebmote_host>:5000/<device_name>/volume/up
Decrease the volume by one for a specific device.
http://<beowebmote_host>:5000/<device_name>/volume/down
Get the mute status for a select device.
http://<beowebmote_host>:5000/<device_name>/volume/ismuted
Mutes a select device.
http://<beowebmote_host>:5000/<device_name>/volume/mute
Unmutes a select device.
http://<beowebmote_host>:5000/<device_name>/volume/unmute
http://<beowebmote_host>:5000/<device_name>/sources
http://<beowebmote_host>:5000/<device_name>/join