Estoy usando un ESP8266 para emular un dispositivo WeMo con wemos y código arduino fauxmoESP que se encuentra en Internet. Ahora que entiendo la interacción básica de los comandos de encendido y apagado, me gustaría agregar una respuesta de estado para el estado de algunos pines en el dispositivo. Parece que "encender" y "apagar" son habilidades básicas de Alexa y funcionan. Pero no hay un comando verbal de "estado" o "estado".
He encontrado lugares en el código que manejan el eventservice
XML, por ejemplo: <binarystate>1</binarystate>
para activarlo, pero no puedo encontrar ninguna documentación sobre cómo obtener el estado o <getdevicestate>
. Ejemplo de uso: si no puedo ver una luz encendida en alguna parte, me gustaría consultar el dispositivo para ver si está encendido o apagado.
Como el dispositivo emula un interruptor de encendido / apagado belkin, el paquete setup.xml solo tiene:
<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>
y el evento básico no es suficiente para obtener el estado o la capacidad adicional.
Todo esto se hace sin escribir una habilidad de AWS y se maneja con un diálogo directo en la LAN local entre el servidor web ESP8266 y fauxmoESP desde y hacia el Echo Dot. Puedo ver los paquetes olfateando la LAN (inalámbrica) y creo que sería sencillo agregar más capacidades si pudiera encontrar la documentación en los paquetes XML de mensajes de control.
¿Dónde puedo encontrar estas plantillas de diálogo de control XML y, con suerte, ejemplos de cómo usarlas? Tengo la sensación de que esto solo se puede lograr mediante el uso de una habilidad de AWS, pero parece tan innecesario. ¿Alguien puede darme alguna orientación aquí?
Además, ¿cuál es el enunciado de Alexa para verificar el estado de un dispositivo? Podría ser que no hay una expresión incorporada para esto y tendré que escribir una habilidad de AWS (que no quiero hacer si es posible).