New endpoint to show if any speaker is running#781
New endpoint to show if any speaker is running#781zperee wants to merge 2 commits intojishi:masterfrom
Conversation
|
Excellent, this is exactly what I wanted t do. I'd also like to have an endpoint that lets me control the speaker LED. It's in the Sonos api but I have not yet found where it could be added in the Sonos-http-api That would give me a quick visual indication as to the state of the speaker as I'd like to mute it overnight |
jishi
left a comment
There was a problem hiding this comment.
I can't really comprehend what this code does, it should be as simple as just running the some() aggregation.
| doStateOn(player.system); | ||
| }, values[0] * 1000 * 60); | ||
| return Promise.resolve(); | ||
| } |
There was a problem hiding this comment.
What's the purpose of this setTimeout?
|
|
||
| function doAnyPlayerOn(system) { | ||
| const promises = system.zones.some(zone => zone.coordinator.state.playbackState === 'PLAYING'); | ||
| return {promises}; |
There was a problem hiding this comment.
Nothing here is a promise, so not sure why you return an object with { promises: bool }
| api.registerAction('pauseall', pauseAll); | ||
| api.registerAction('resumeall', resumeAll); | ||
| } | ||
| api.registerAction('anyplayeron', anyPlayerOn); |
There was a problem hiding this comment.
This should probably be in it's own action file, since it doesn't really have anything to do with play/pause all functionality.
To be able to show if any speaker is running (e.g in Apple Home Kit as a Switch) created a new endpoint which returns true if any speaker has the playBackState === "PLAYING" otherwise return false.
With the new endpoint it is possible together with homebride and the hombridge-http-switch plugin to stop all speakers from Apple Home Kit. The new endpoint is needed to display the state of the button. So if a speaker is running turn switch on otherwise turn switch off.