首页 > 解决方案 > Sonos 控制 api:轮询率和订阅

问题描述

我们正在通过一个小型物联网设备控制 Sonos。该设备将放置在我们客户的家中。在我们的家庭自动化系统中,我们需要知道播放器/组的播放状态 + 音量。我们可以以什么轮询速率询问这些参数?

我们不能使用云服务器来处理订阅事件。我尝试在带有自签名证书的 IOT 设备中放置一个 https 网络服务,但这不起作用。在我发布订阅后,我在我的网络服务中收到一个请求,但云 Sonos 服务器立即断开连接。可能是因为证书是自签名的 - 或者还有其他原因吗?

还有另一种接收状态事件的方法吗?在发现期间在玩家 Json 对象中有一个键'websocketUrl'。文档说“设备的安全 WebSocket URL。有关详细信息,请参阅连接”。但我找不到有关此的更多信息。这个可以用吗?

标签: controlscloudsubscriptionsonos

解决方案


我们可以以什么轮询速率询问这些参数?

考虑使用订阅而不是轮询。有关更多信息,请参阅此答案:https ://stackoverflow.com/a/60893119/4902948

我们不能使用云服务器来处理订阅事件......或者还有其他原因吗?
是否有另一种方式来 [接收] 状态事件?

您必须托管满足一组要求的服务才能接收事件。有关更多信息,请参阅此答案:https ://stackoverflow.com/a/57189717/4902948

另请参阅版本 11.1、11.2 (S1) 和 12.0 (S2) 中的新功能中有关API 凭据和事件的详细信息

可以使用 ['websocketUrl'] 吗?

这是不可公开使用的。


推荐阅读