Estou usando um ESP8266 para emular um dispositivo WeMo com o wemos e o código do arduino do fauxmoESP encontrados na Internet. Agora que entendo a interação básica dos comandos liga e desliga, gostaria de adicionar uma resposta de status para o estado de alguns pinos no dispositivo. Parece que "ligar" e "desligar" são habilidades básicas do Alexa e funcionam. Mas não há comando verbal "status" ou "state".
Encontrei lugares no código que manipulam o eventservice
XML, por exemplo: <binarystate>1</binarystate>
para ativá-lo, mas não consigo encontrar nenhuma documentação sobre como obter status ou <getdevicestate>
. Exemplo de uso: se não conseguir ver uma luz acesa em algum lugar, gostaria de consultar o dispositivo para ver se está ligado ou desligado.
Como o dispositivo emula um botão liga / desliga belkin, o pacote setup.xml possui apenas:
<service>
<serviceType>urn:Belkin:service:basicevent:1</serviceType>
<serviceId>urn:Belkin:serviceId:basicevent1</serviceId>
<controlURL>/upnp/control/basicevent1</controlURL>
<eventSubURL>/upnp/event/basicevent1</eventSubURL>
<SCPDURL>/eventservice.xml</SCPDURL>
</service>
e o evento básico não é suficiente para obter status ou capacidade adicional.
Isso tudo é feito sem a necessidade de escrever uma habilidade da AWS e é tratado com diálogo direto na LAN local entre o servidor da Web ESP8266 e o fauxmoESP de e para o Echo Dot. Posso ver os pacotes farejando a LAN (sem fio) e acredito que seria fácil adicionar mais recursos se eu encontrasse a documentação nos pacotes XML de controle de mensagens.
Onde posso encontrar esses modelos de diálogo XML de controle e, esperançosamente, exemplos de como usá-los? Estou sentindo que isso só pode ser realizado usando uma habilidade da AWS, mas parece tão desnecessário. Alguém pode me dar alguma orientação aqui?
Além disso, qual é o enunciado para o Alexa verificar o status de um dispositivo? Pode ser que não haja um enunciado incorporado para isso e precisarei escrever uma habilidade da AWS (o que não desejo, se possível).