#mpd #home-automation #switch #playlist #play #control #instance

nightly bin+lib togglempc

Togglempc 是一个小型的 REST 服务器,可以接收 HTTP POST 请求来切换 MPD 的开关状态以及切换播放列表。(它是 MPD 的客户端。)MPD 是音乐播放守护进程,请参阅 https://www.musicpd.org/。Togglempc 可用于家庭自动化,或智能开关可以使用它来控制 MPD 实例。

1 个不稳定版本

0.1.0 2019 年 7 月 21 日

#884HTTP 服务器

MIT/Apache

28KB
609

Togglempc

Togglempc 是一个小型的 REST 服务器,可以接收 HTTP POST 请求来切换 MPD 的开关状态以及切换播放列表。(它是 MPD 的客户端。)MPD 是音乐播放守护进程,请参阅 https://www.musicpd.org/

家庭自动化或智能开关可以使用它来控制 MPD 实例。

 +------------------+       +-----------+       +-----+
 |                  |       |           |       |     |
 | smart switch /   +------>+ togglempc +------>+ MPD |
 | house automation |       |           |       |     |
 +------------------+       +-----------+       +-----+

如果您使用 openHAB,这里有两个用于控制 MPD 的 openhab 规则的示例(它假定您已经有两个名为 Kitchen_music_on_offKitchen_music_channel 的开关)

rule "toggle play kitchen"
when
    Item Kitchen_music_on_off received command
then
    sendHttpPostRequest("http://192.168.1.25:8000/mpd/kitchen/toggle-play")
end

rule "switch playlist kitchen"
when
    Item Kitchen_music_channel received command
then
    sendHttpPostRequest("http://192.168.1.25:8000/mpd/kitchen/switch-playlist")
end

目前 togglempc 只支持两个命令,即 toggle-play 和 switch-playlist。但它可以很容易地扩展以支持其他命令,如跳过歌曲或增加/减少音量。请参阅 src/main.rs 和 src/toggle_mpc.rs 了解当前命令的实现方式。

Togglempc 使用 Rocket 接受 HTTP POST 请求。因此您需要切换到 rust nightly 来编译(有关详细信息,请参阅 https://rocket.rs/v0.5/guide/getting-started/

cd <path-to-my-clone-of-togglmpc>
rustup override set nightly
cargo run sample-config.toml

Togglempc 需要一个配置文件,其中配置了播放列表和 MPD。请参阅 sample-config.toml 以获取文档。

依赖项

~11MB
~225K SLoC