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

@ -14,26 +14,31 @@ const README = path.join(ROOT, "readme.md");
const BEGIN = "<!-- capabilities: written by scripts/capability-table.js, npm run docs -->";
const END = "<!-- /capabilities -->";
// What was driven from a real Alexa account through the public Alex2MQTT service, and when. The runs used
// alex2node 1.5.2; a row is added here when a run is recorded, not when a descriptor is written.
// What was driven from a real Alexa account through the public Alex2MQTT service, and when: 33 test devices on
// the 2.0 API, 60 cases. A row is added here when a run is recorded, not when a descriptor is written.
const DRIVEN_ON = "2026-09-28";
const DRIVEN_WITH = "alex2node 1.5.2";
const DRIVEN_WITH = "alex2node 2.0.0";
const DRIVEN = {
"Alexa": "ReportState",
"Alexa.BrightnessController": "directives",
"Alexa.BrightnessController": "directives, change report",
"Alexa.ColorController": "directives",
"Alexa.ColorTemperatureController": "directives",
"Alexa.ContactSensor": "change report",
"Alexa.LockController": "directives, change report",
"Alexa.DoorbellEventSource": "event",
"Alexa.InventoryLevelSensor": "change report",
"Alexa.LockController": "directives with a deferred answer, change report",
"Alexa.ModeController": "directives",
"Alexa.MotionSensor": "change report",
"Alexa.PercentageController": "directives",
"Alexa.PowerController": "directives, change report",
"Alexa.PowerLevelController": "directives",
"Alexa.RangeController": "directives",
"Alexa.RangeController": "directives, change report",
"Alexa.SceneController": "directives",
"Alexa.TemperatureSensor": "change report",
"Alexa.SecurityPanelController": "directives, change report",
"Alexa.SimpleEventSource": "event",
"Alexa.TemperatureSensor": "state report",
"Alexa.ThermostatController": "directives",
"Alexa.ThermostatController.Schedule": "state report",
"Alexa.ToggleController": "directives",
};