I’m using forked-daapd as a music server to stream audio to various airplay speakers in my house. Forked-daapd has some rudimentary mpd support so the mpd binding works to start and stop playback but it would be much nicer to have a proper daapd binding.
Anybody working on this? Would there be a general interest in this?
+1 for interest. I’m beginning to gather Airplay speakers in more and more rooms so a binding to read status (device connected/disconnected) and manage volume would be great.
I’d love to see this but noticed this on wikipedia:
As of January 20, 2016, the iTunes 7.0+ DAAP authentication still hasn’t been reverse engineered, so no third-party application can stream from servers running iTunes software (from 7.x, all the way up to and including version 11.x).[5]
why would you need to stream from iTunes? The idea is here to control iTunes. (or forked-daapd for that matter). There is no need to stream from iTunes - especially not for openhab
yeah applescript doesn’t work for me since forked-daapd server (which I use instead of iTunes) runs on a linux PC.
I can even rudimentary control it through the mpd protocol however what is not really working is updating the state of the system. I would like openhab to know whether something is actually playing. That does not work (no idea why) through the mpd binding.
So a real binding would be great and I thought I will not be the only one wanting that but apparently not many people use multi room audio systems other than sonos.
I actually find airplay really great for multi room audio…
On the other hand MPD Binding is already given and can be extended with missing functions probably.
At YMPD.org there is a MPD web client written in C, I can control speakers at forked-daapd with.
EDIT:
I used samples provided at Wiki of MPD Binding to receive player status (current track info), which works just fine.
I am also able to switch speakers at forked-daapd on/off by using following binding:
Switch MPD_Speaker1 “Speaker 1” (SpeakerSwitch) { mpd=“OFF:player-id:disable=speaker-id, ON:player-id:enable=speaker-id”}
At my system 1 has to be set as speaker-id for local output, while Airplay Speaker is at 40000 range. Speaker status hasn’t been implemented at MPD Binding as far as I could see at its sources. I used ympd to lookup speaker-ids (you’ll need to add 1 for the speaker-id at openHAB Binding).
There is an ITunes rest api on github - check it out, I have it working with Dashing.io and openhab - also added airfoil support so I can stream from my iPhone to multiple speakers.
@micro7 for me the retrieval of the tracking play status is mostly not working. It does work if I start openhab after forked-daapd but if forked-daapd disappears (shuts down) and then returns it no longer works. So itS not really reliable.