controls - Sonos 控制 api:轮询率和订阅
问题描述
我们正在通过一个小型物联网设备控制 Sonos。该设备将放置在我们客户的家中。在我们的家庭自动化系统中,我们需要知道播放器/组的播放状态 + 音量。我们可以以什么轮询速率询问这些参数?
我们不能使用云服务器来处理订阅事件。我尝试在带有自签名证书的 IOT 设备中放置一个 https 网络服务,但这不起作用。在我发布订阅后,我在我的网络服务中收到一个请求,但云 Sonos 服务器立即断开连接。可能是因为证书是自签名的 - 或者还有其他原因吗?
还有另一种接收状态事件的方法吗?在发现期间在玩家 Json 对象中有一个键'websocketUrl'。文档说“设备的安全 WebSocket URL。有关详细信息,请参阅连接”。但我找不到有关此的更多信息。这个可以用吗?
解决方案
我们可以以什么轮询速率询问这些参数?
考虑使用订阅而不是轮询。有关更多信息,请参阅此答案:https ://stackoverflow.com/a/60893119/4902948
我们不能使用云服务器来处理订阅事件......或者还有其他原因吗?
是否有另一种方式来 [接收] 状态事件?
您必须托管满足一组要求的服务才能接收事件。有关更多信息,请参阅此答案:https ://stackoverflow.com/a/57189717/4902948
另请参阅版本 11.1、11.2 (S1) 和 12.0 (S2) 中的新功能中有关API 凭据和事件的详细信息。
可以使用 ['websocketUrl'] 吗?
这是不可公开使用的。
推荐阅读
- c# - 如何在 C# 中使用 mailkit 在草稿中添加字节 [] 附件
- jenkins - 有没有办法在有条件的情况下跳过整个 Jenkins 流水线(不是阶段)
- windows - 你能用 AutoHotkey 绑定一个键来最小化所有打开的窗口吗?
- python - 如何按单元格/元素将自定义函数应用于两个数据框?
- r - R:Renderui 没有正确初始化
- javascript - 在浏览器中保存无法在选项卡之间共享的数据的最佳方法?
- google-photos - 是否可以删除通过 Google Photos API 创建的照片或相册?
- python - Discord.py '频道对象没有属性 create_ytdl_player
- javascript - 如何使用 groupby 从 JSON 获取数据并使用 lodash 过滤
- chromecast - 没有音频的 Chromecast HLS 流