The interface registry, generated and checked discovery, typed dispatch with
automatic error answers, message builders, proactive events and typed
helpers for every error type; the 1.x API is kept and the examples of 1.5.2
run unchanged. docs/wire-changes.md lists what a 1.x caller can observe.

On 2026-09-28 a real Alexa account drove 33 test devices on this API through
the public Alex2MQTT service: Alexa accepted the discovery of all of them,
50 of 58 cases passed, 4 had no action in the control call and 4 failed on
what the check could see, none on an answer of the library. The readme table
names the interfaces that run covered. Voice commands were not tested yet.

307 tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
David 2026-09-28 22:55:23 +00:00
parent e2ed755111
commit dd071548bc
8 changed files with 46 additions and 36 deletions

View file

@ -1,8 +1,8 @@
// A doorbell: Alexa.DoorbellEventSource. It takes no directive and reports no state of the button;
// device.raise() says that somebody rang. Press Enter to ring.
//
// The event is published to <root>/event. Not tested with an Alexa account yet: whether the press reaches Alexa
// depends on the Alex2MQTT service relaying that topic. Alexa wants 30 seconds between two presses of one doorbell.
// The event is published to <root>/event, which the Alex2MQTT service passes on to Alexa. Alexa wants 30 seconds
// between two presses of one doorbell.
//
// ALEX2MQTT_USERNAME=... ALEX2MQTT_PASSWORD=... ALEX2MQTT_ROOT_TOPIC=... node examples/doorbell.js
//