This Mopidy Frontend Extension allows you to control Mopidy with MQTT and retrieve some information from Mopidy via MQTT. The implementation is very basic. Open for any kind of pull requests. Tested with Mopidy V3.
Mopidy sends an update as soon the playback state changes:
mytopic/state -> 'paused'
When a new title or stream is started Mopidy sends this via nowplaying
mytopic/nowplaying -> 'myradio'
Also the image url is send:
mytopic/image -> 'https://i1.sndcdn.com/artworks-kT5TLalLJI36UD05-BMX4rQ-t500x500.jpg'
You can start playback of a song or stream via MQTT. Send the following:
mytopic/play -> 'tunein:station:s48720'
You can stop the playback via MQTT. Send the following:
mytopic/control -> 'stop'
You can change the mixer volume from 0 to 100 via MQTT. Send the following:
mytopic/volume -> '50'
This is an example how to install on a Raspi:
cd ~
git clone https://github.com/magcode/mopidy-mqtt.git
cd mopidy-mqtt
sudo python3 setup.py develop
Alternatively for a local installation you can change the last line to
python3 setup.py install --user
Now configure the following file: /etc/mopidy/mopidy.conf
[mqtthook]
enabled = true
mqtthost = <mqtt host>
mqttport = <mqtt port>
username = <mqtt username> (Optional)
password = <mqtt password> (Optional)
topic = <topic, e.g. home/livingroom/music>
stoppedimage = An image url which will be posted to the 'image' topic in case Mopidy playback is stopped. Use https://mydomain/myimage.png
defaultimage = An image url which will be posted to the 'image' topic in case there is no other image available. Use https://mydomain/myimage.png
Restart Mopidy with sudo service mopidy restart
To check Mopidy log run sudo tail -f /var/log/mopidy/mopidy.log