AlexaErrors has a helper for each of the 73 types of the table on alexa-errorresponse.html, named after the type in camel case: 63 take the message only, 10 take the payload fields their page documents. A field the page requires (reason, currentDeviceMode, currentChargeState, resourceType) is a required argument, so leaving it out does not compile; from JavaScript the helper throws a TypeError that lists the values. validRange is optional, as the page says, and has both ends when given. temperatureOutOfRange and setpointsTooClose stay as shorter names. The helpers are compared with the 15 examples of the four error pages. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
71 lines
3.4 KiB
TypeScript
71 lines
3.4 KiB
TypeScript
import type { Schema } from "../schema.js";
|
|
/** alexa-property-schemas.html, "ThermostatMode values". EM_HEAT, emergency heating, came with version 3.2. */
|
|
export declare const THERMOSTAT_MODES: readonly ["AUTO", "COOL", "ECO", "EM_HEAT", "HEAT", "OFF"];
|
|
export type ThermostatModeName = (typeof THERMOSTAT_MODES)[number];
|
|
/**
|
|
* Version 3.2. A thermostat declares the properties it has: targetSetpoint for a single setpoint, lowerSetpoint and
|
|
* upperSetpoint for two, all three for a target within a range. Temperatures are reported "in the same temperature
|
|
* scale (Celsius or Fahrenheit) that the thermostat is set to display". An error of errorTypes goes under the
|
|
* namespace of the interface, TEMPERATURE_VALUE_OUT_OF_RANGE under Alexa
|
|
* (alexa-thermostatcontroller-errorresponse.html).
|
|
*/
|
|
export declare const ThermostatController: import("../types.js").InterfaceDescriptor<{
|
|
targetSetpoint: {
|
|
name: string;
|
|
value: Schema<import("../schema.js").Temperature>;
|
|
};
|
|
lowerSetpoint: {
|
|
name: string;
|
|
value: Schema<import("../schema.js").Temperature>;
|
|
};
|
|
upperSetpoint: {
|
|
name: string;
|
|
value: Schema<import("../schema.js").Temperature>;
|
|
};
|
|
thermostatMode: {
|
|
name: string;
|
|
value: import("../schema.js").EnumSchema<"ECO" | "OFF" | "AUTO" | "COOL" | "EM_HEAT" | "HEAT">;
|
|
};
|
|
adaptiveRecoveryStatus: {
|
|
name: string;
|
|
value: import("../schema.js").EnumSchema<"PREHEATING" | "PRECOOLING" | "INACTIVE">;
|
|
note: string;
|
|
};
|
|
}, {
|
|
SetTargetTemperature: {
|
|
name: string;
|
|
payload: Schema<import("../schema.js").InferShape<{
|
|
targetSetpoint: import("../schema.js").OptionalSchema<import("../schema.js").Temperature>;
|
|
lowerSetpoint: import("../schema.js").OptionalSchema<import("../schema.js").Temperature>;
|
|
upperSetpoint: import("../schema.js").OptionalSchema<import("../schema.js").Temperature>;
|
|
holdUntil: import("../schema.js").OptionalSchema<import("../schema.js").TimeInterval>;
|
|
}>>;
|
|
note: string;
|
|
};
|
|
AdjustTargetTemperature: {
|
|
name: string;
|
|
payload: Schema<import("../schema.js").InferShape<{
|
|
targetSetpointDelta: Schema<import("../schema.js").Temperature>;
|
|
}>>;
|
|
};
|
|
SetThermostatMode: {
|
|
name: string;
|
|
payload: Schema<import("../schema.js").InferShape<{
|
|
thermostatMode: Schema<import("../schema.js").InferShape<{
|
|
value: import("../schema.js").EnumSchema<"ECO" | "OFF" | "AUTO" | "COOL" | "EM_HEAT" | "HEAT">;
|
|
}>>;
|
|
}>>;
|
|
};
|
|
ResumeSchedule: {
|
|
name: string;
|
|
payload: Schema<import("../schema.js").InferShape<{}>>;
|
|
note: string;
|
|
};
|
|
}, import("../schema.js").InferShape<{
|
|
/** Default: HEAT, COOL, AUTO, OFF. */
|
|
supportedModes: import("../schema.js").OptionalSchema<("ECO" | "OFF" | "AUTO" | "COOL" | "EM_HEAT" | "HEAT")[]>;
|
|
/** The user can set a temperature for a time: SetTargetTemperature comes with holdUntil. Default: false. */
|
|
supportsScheduling: import("../schema.js").OptionalSchema<boolean>;
|
|
/** The properties the thermostat has. Default: the three setpoints and thermostatMode. */
|
|
properties: import("../schema.js").OptionalSchema<("thermostatMode" | "targetSetpoint" | "lowerSetpoint" | "upperSetpoint" | "adaptiveRecoveryStatus")[]>;
|
|
}>, false>;
|