Sonos control api: taxa de voto e assinatura

Estamos a controlar os sonos através de um pequeno dispositivo de IOT. Este dispositivo será colocado nas casas de nossos clientes. Em nosso sistema de automação doméstica precisamos conhecer o playbackstate + volume dos jogadores/grupos. A que taxa de votação podemos perguntar estes parâmetros ?

não podemos usar um servidor em nuvem para lidar com os eventos de assinatura. Eu tentei colocar um serviço web https no dispositivo IOT com um certificado autossignado, mas isso não funciona. Depois de eu ter publicado o assinatura recebo um pedido no meu webservice, mas o servidor cloud sono desliga-se imediatamente. Provavelmente por causa do certificado é auto assinado - ou pode haver outra razão ?

Há outra forma de receber os Eventos do status ? Durante a descoberta nos jogadores objeto Json existe uma chave'websocket'. A documentação diz " o URL do WebSocket seguro para o dispositivo. Veja conectar para mais detalhes". Mas não consigo encontrar mais informações sobre isto. Isto pode ser usado ?

Author: TomMitchell, 2020-07-02

3 answers

A que taxa de votação podemos perguntar estes parâmetros?

Considere a utilização de assinaturas em vez de sondagens. Veja esta resposta para mais: https://stackoverflow.com/a/60893119/4902948

Não podemos usar um servidor em nuvem para lidar com os eventos de assinatura... Ou pode haver outra razão?
Há outra maneira de [receber] eventos de status?

Você deve hospedar um serviço que satisfaça um conjunto de requisitos para receber eventos. Veja esta resposta para mais: https://stackoverflow.com/a/57189717/4902948

Ver também detalhes sobre as credenciais e eventos da API em novas funcionalidades nas versões 11.1, 11.2 (S1), & 12.0 (S2).

Pode ser usado o 'WebSocket'?

Isto não está disponível ao público para utilização.

 0
Author: yrg, 2020-07-08 21:25:49

Seria muito mais fácil usar a APIs UPnP (não documentada mas mais útil). Você poderia simplesmente subscrever o UPnP RenderingControl endpoint, então você terá um evento cada vez que o volume muda. Para descobrir quando a faixa muda, subscreva o avtransport endpoint.

Você pode fazer isso com um servidor local (é assim que cada aplicativo Sonos funciona afinal) e também não há requisitos especiais de cert.

Os eventos UPnP estão descritos na especificação UPnP.

 0
Author: ControlAV, 2020-07-17 22:38:40

A sua pergunta não fornece detalhes sobre a língua que está a usar, mas se o dispositivo for suficientemente potente para executar o nó, terá uma boa alteração com A Minha Biblioteca de sons.

Pode retirar as informações necessárias do dispositivo com a frequência que quiser. Ou utilizar as subscrições de Eventos build-in. Se você usar os Eventos, ele irá configurar automaticamente um ouvinte http e se inscrever automaticamente em todos os eventos que você está ouvindo. Os eventos são instantâneos. (como em 50ms-100ms após o evento ocorreu no dispositivo).

Se você pedir informações, é enviado directamente para o dispositivo e o dispositivo responderá com a resposta. Puxar vários pontos de dados por segundo nunca foi um problema para mim.

Aviso como indicado acima, isto usa a api UPNP local não documentada, mas como a sua própria app também a usa, acho que isso não vai mudar em breve.

 0
Author: Stephan, 2020-10-30 10:49:52