Ich verwende einen ESP8266, um ein WeMo-Gerät mit im Internet gefundenem wemos- und fauxmoESP-Arduino-Code zu emulieren. Nachdem ich die grundlegende Interaktion von Ein- und Ausschaltbefehlen verstanden habe, möchte ich eine Statusantwort für den Status einiger Pins auf dem Gerät hinzufügen. Es scheint, dass "Einschalten" und "Ausschalten" grundlegende Alexa-Fähigkeiten sind und diese funktionieren. Es gibt jedoch keinen verbalen Befehl "Status" oder "Status".
Ich habe Stellen im Code gefunden, die das eventservice
XML verarbeiten, zum Beispiel: <binarystate>1</binarystate>
um es zu aktivieren, aber ich kann keine Dokumentation zum Abrufen des Status oder finden <getdevicestate>
. Anwendungsbeispiel: Wenn irgendwo kein Licht leuchtet, möchte ich das Gerät abfragen, um festzustellen, ob es ein- oder ausgeschaltet ist.
Da das Gerät einen Belkin-Ein / Aus-Schalter emuliert, enthält das Paket setup.xml nur:
<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>
und das Basisereignis reicht nicht aus, um Status oder weitere Fähigkeiten zu erhalten.
Dies alles geschieht ohne das Schreiben einer AWS-Fähigkeit und erfolgt über einen direkten Dialog im lokalen LAN zwischen dem ESP8266-Webserver und fauxmoESP zum und vom Echo Dot. Ich kann die Pakete sehen, indem ich am LAN (drahtlos) schnüffle, und glaube, es wäre unkompliziert, weitere Funktionen hinzuzufügen, wenn ich die Dokumentation zu den XML-Paketen für Steuerungsnachrichten finden könnte.
Wo finde ich diese Steuerelement-XML-Dialogvorlagen und hoffentlich Beispiele für deren Verwendung? Ich habe das Gefühl, dass dies nur mit einer AWS-Fähigkeit erreicht werden kann, aber es scheint so unnötig. Kann mir hier jemand eine Anleitung geben?
Was ist die Äußerung von Alexa, um den Status eines Geräts zu überprüfen? Es könnte sein, dass es dafür keine eingebaute Äußerung gibt und ich eine AWS-Fähigkeit schreiben muss (was ich, wenn möglich, nicht tun möchte).