Eight descriptors written from their pages, each with its version, the value of its property and the payload of every directive. Seven replace a stub; Alexa.HumiditySensor is new, as AlexaInterfaceType.HUMIDITY_SENSOR. LockController is deferrable: defer() on a lock logs no warning. A 1.x declaration of LockController, MotionSensor, PercentageController or PowerLevelController now lists its property in discovery, where 1.5.2 listed none: the zoo's lock, motion sensor and heater come out as the JSON Alexa accepted. A payload that does not fit (hue 361, 900 K) is answered with INVALID_VALUE. 48 examples of the eight pages are saved as fixtures. 191 tests pass, 168 before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
24 lines
958 B
JavaScript
24 lines
958 B
JavaScript
import { s } from "../schema.js";
|
|
import { defineInterface } from "../types.js";
|
|
/** The power of a device as a percentage, a dimmer switch for one (alexa-powerlevelcontroller.html). */
|
|
export const PowerLevelController = defineInterface({
|
|
namespace: "Alexa.PowerLevelController",
|
|
version: "3",
|
|
doc: "https://developer.amazon.com/docs/alexaplus/device-apis/alexa-powerlevelcontroller.html",
|
|
kind: "controller",
|
|
tier: 1,
|
|
instanced: false,
|
|
properties: {
|
|
powerLevel: { name: "powerLevel", value: s.number({ min: 0, max: 100, integer: true }) },
|
|
},
|
|
directives: {
|
|
SetPowerLevel: {
|
|
name: "SetPowerLevel",
|
|
payload: s.object({ powerLevel: s.number({ min: 0, max: 100, integer: true }) }),
|
|
},
|
|
AdjustPowerLevel: {
|
|
name: "AdjustPowerLevel",
|
|
payload: s.object({ powerLevelDelta: s.number({ min: -100, max: 100, integer: true }) }),
|
|
},
|
|
},
|
|
});
|