registry: Speaker, StepSpeaker, EqualizerController, PlaybackController, PlaybackStateReporter, InputController, ChannelController

Seven descriptors written from their pages replace seven stubs. All are version 3; 1.5.2 announced Speaker,
StepSpeaker, EqualizerController and PlaybackStateReporter as version 1, and all but ChannelController without
a property. StepSpeaker has no properties object in discovery and PlaybackController one without fields, next
to supportedOperations; a directive for an operation the device did not list is answered with
INVALID_DIRECTIVE. The equalizer declares bands, modes or both under "configurations", a TV its inputs from
the 61 names of the page.

Not described: the lineup of ChannelController, whose discovery example the page folds away. The discovery
examples of InputController spell one key "friendNames"; the fixtures have friendlyNames, as its table does.
62 examples of the six pages are saved as fixtures. 241 tests pass, 215 before.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
David 2026-09-28 20:54:53 +00:00
parent c59cf3ff10
commit d7dfc5b122
113 changed files with 3948 additions and 47 deletions

View file

@ -14,12 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SchemaError = exports.s = exports.defineInterface = exports.DeclarationError = exports.SemanticsBuilder = exports.semantics = exports.text = exports.asset = exports.THERMOSTAT_MODES = exports.ToggleController = exports.ThermostatControllerSchedule = exports.ThermostatController = exports.TemperatureSensor = exports.SecurityPanelController = exports.RangeController = exports.PowerLevelController = exports.PowerController = exports.PercentageController = exports.MotionSensor = exports.ModeController = exports.LockController = exports.HumiditySensor = exports.EndpointHealth = exports.ContactSensor = exports.ColorTemperatureController = exports.ColorController = exports.BrightnessController = exports.Alexa = exports.registry = void 0;
exports.SchemaError = exports.s = exports.defineInterface = exports.DeclarationError = exports.SemanticsBuilder = exports.semantics = exports.text = exports.asset = exports.THERMOSTAT_MODES = exports.INPUTS = exports.ToggleController = exports.ThermostatControllerSchedule = exports.ThermostatController = exports.TemperatureSensor = exports.StepSpeaker = exports.Speaker = exports.SecurityPanelController = exports.RangeController = exports.PowerLevelController = exports.PowerController = exports.PlaybackStateReporter = exports.PlaybackController = exports.PercentageController = exports.MotionSensor = exports.ModeController = exports.LockController = exports.InputController = exports.HumiditySensor = exports.EqualizerController = exports.EndpointHealth = exports.ContactSensor = exports.ColorTemperatureController = exports.ColorController = exports.ChannelController = exports.BrightnessController = exports.Alexa = exports.registry = void 0;
// The interfaces the library knows, by namespace.
const Alexa_js_1 = require("./interfaces/Alexa.js");
Object.defineProperty(exports, "Alexa", { enumerable: true, get: function () { return Alexa_js_1.Alexa; } });
const BrightnessController_js_1 = require("./interfaces/BrightnessController.js");
Object.defineProperty(exports, "BrightnessController", { enumerable: true, get: function () { return BrightnessController_js_1.BrightnessController; } });
const ChannelController_js_1 = require("./interfaces/ChannelController.js");
Object.defineProperty(exports, "ChannelController", { enumerable: true, get: function () { return ChannelController_js_1.ChannelController; } });
const ColorController_js_1 = require("./interfaces/ColorController.js");
Object.defineProperty(exports, "ColorController", { enumerable: true, get: function () { return ColorController_js_1.ColorController; } });
const ColorTemperatureController_js_1 = require("./interfaces/ColorTemperatureController.js");
@ -28,8 +30,12 @@ const ContactSensor_js_1 = require("./interfaces/ContactSensor.js");
Object.defineProperty(exports, "ContactSensor", { enumerable: true, get: function () { return ContactSensor_js_1.ContactSensor; } });
const EndpointHealth_js_1 = require("./interfaces/EndpointHealth.js");
Object.defineProperty(exports, "EndpointHealth", { enumerable: true, get: function () { return EndpointHealth_js_1.EndpointHealth; } });
const EqualizerController_js_1 = require("./interfaces/EqualizerController.js");
Object.defineProperty(exports, "EqualizerController", { enumerable: true, get: function () { return EqualizerController_js_1.EqualizerController; } });
const HumiditySensor_js_1 = require("./interfaces/HumiditySensor.js");
Object.defineProperty(exports, "HumiditySensor", { enumerable: true, get: function () { return HumiditySensor_js_1.HumiditySensor; } });
const InputController_js_1 = require("./interfaces/InputController.js");
Object.defineProperty(exports, "InputController", { enumerable: true, get: function () { return InputController_js_1.InputController; } });
const LockController_js_1 = require("./interfaces/LockController.js");
Object.defineProperty(exports, "LockController", { enumerable: true, get: function () { return LockController_js_1.LockController; } });
const ModeController_js_1 = require("./interfaces/ModeController.js");
@ -38,6 +44,10 @@ const MotionSensor_js_1 = require("./interfaces/MotionSensor.js");
Object.defineProperty(exports, "MotionSensor", { enumerable: true, get: function () { return MotionSensor_js_1.MotionSensor; } });
const PercentageController_js_1 = require("./interfaces/PercentageController.js");
Object.defineProperty(exports, "PercentageController", { enumerable: true, get: function () { return PercentageController_js_1.PercentageController; } });
const PlaybackController_js_1 = require("./interfaces/PlaybackController.js");
Object.defineProperty(exports, "PlaybackController", { enumerable: true, get: function () { return PlaybackController_js_1.PlaybackController; } });
const PlaybackStateReporter_js_1 = require("./interfaces/PlaybackStateReporter.js");
Object.defineProperty(exports, "PlaybackStateReporter", { enumerable: true, get: function () { return PlaybackStateReporter_js_1.PlaybackStateReporter; } });
const PowerController_js_1 = require("./interfaces/PowerController.js");
Object.defineProperty(exports, "PowerController", { enumerable: true, get: function () { return PowerController_js_1.PowerController; } });
const PowerLevelController_js_1 = require("./interfaces/PowerLevelController.js");
@ -46,6 +56,10 @@ const RangeController_js_1 = require("./interfaces/RangeController.js");
Object.defineProperty(exports, "RangeController", { enumerable: true, get: function () { return RangeController_js_1.RangeController; } });
const SecurityPanelController_js_1 = require("./interfaces/SecurityPanelController.js");
Object.defineProperty(exports, "SecurityPanelController", { enumerable: true, get: function () { return SecurityPanelController_js_1.SecurityPanelController; } });
const Speaker_js_1 = require("./interfaces/Speaker.js");
Object.defineProperty(exports, "Speaker", { enumerable: true, get: function () { return Speaker_js_1.Speaker; } });
const StepSpeaker_js_1 = require("./interfaces/StepSpeaker.js");
Object.defineProperty(exports, "StepSpeaker", { enumerable: true, get: function () { return StepSpeaker_js_1.StepSpeaker; } });
const TemperatureSensor_js_1 = require("./interfaces/TemperatureSensor.js");
Object.defineProperty(exports, "TemperatureSensor", { enumerable: true, get: function () { return TemperatureSensor_js_1.TemperatureSensor; } });
const ThermostatController_js_1 = require("./interfaces/ThermostatController.js");
@ -59,19 +73,26 @@ const types_js_1 = require("./types.js");
const described = [
Alexa_js_1.Alexa,
BrightnessController_js_1.BrightnessController,
ChannelController_js_1.ChannelController,
ColorController_js_1.ColorController,
ColorTemperatureController_js_1.ColorTemperatureController,
ContactSensor_js_1.ContactSensor,
EndpointHealth_js_1.EndpointHealth,
EqualizerController_js_1.EqualizerController,
HumiditySensor_js_1.HumiditySensor,
InputController_js_1.InputController,
LockController_js_1.LockController,
ModeController_js_1.ModeController,
MotionSensor_js_1.MotionSensor,
PercentageController_js_1.PercentageController,
PlaybackController_js_1.PlaybackController,
PlaybackStateReporter_js_1.PlaybackStateReporter,
PowerController_js_1.PowerController,
PowerLevelController_js_1.PowerLevelController,
RangeController_js_1.RangeController,
SecurityPanelController_js_1.SecurityPanelController,
Speaker_js_1.Speaker,
StepSpeaker_js_1.StepSpeaker,
TemperatureSensor_js_1.TemperatureSensor,
ThermostatController_js_1.ThermostatController,
ThermostatControllerSchedule_js_1.ThermostatControllerSchedule,
@ -101,6 +122,8 @@ exports.registry = {
return [...descriptors.values()].sort((a, b) => (a.namespace < b.namespace ? -1 : 1));
},
};
var InputController_js_2 = require("./interfaces/InputController.js");
Object.defineProperty(exports, "INPUTS", { enumerable: true, get: function () { return InputController_js_2.INPUTS; } });
var ThermostatController_js_2 = require("./interfaces/ThermostatController.js");
Object.defineProperty(exports, "THERMOSTAT_MODES", { enumerable: true, get: function () { return ThermostatController_js_2.THERMOSTAT_MODES; } });
var resources_js_1 = require("./resources.js");