audio sensor property

This commit is contained in:
Koushik Dutta
2021-09-01 13:18:25 -07:00
parent 20fdb8e7cb
commit 1d65de0b44
4 changed files with 10 additions and 52 deletions

2
sdk/index.d.ts vendored
View File

@@ -54,6 +54,7 @@ export class ScryptedDeviceBase implements DeviceState {
intrusionDetected?: boolean;
powerDetected?: boolean;
motionDetected?: boolean;
audioDetected?: boolean;
occupied?: boolean;
flooded?: boolean;
ultraviolet?: number;
@@ -111,6 +112,7 @@ export class MixinDeviceBase<T> implements DeviceState {
intrusionDetected?: boolean;
powerDetected?: boolean;
motionDetected?: boolean;
audioDetected?: boolean;
occupied?: boolean;
flooded?: boolean;
ultraviolet?: number;

View File

@@ -1,5 +1,4 @@
const { Console } = require('console');
const { PassThrough } = require('stream');
const types = require('./types.generated.js');
class ScryptedDeviceBase {
constructor(nativeId) {
@@ -40,7 +39,6 @@ class ScryptedDeviceBase {
}
}
class MixinDeviceBase {
constructor(mixinDevice, deviceState, providerNativeId) {
this.mixinDevice = mixinDevice;
@@ -77,9 +75,7 @@ class MixinDeviceBase {
};
}
var fields = ["id", "interfaces", "metadata", "name", "providedInterfaces", "providedName", "providedRoom", "providedType", "providerId", "room", "type", "on", "brightness", "colorTemperature", "rgb", "hsv", "running", "paused", "docked", "temperature", "temperatureUnit", "humidity", "thermostatAvailableModes", "thermostatMode", "thermostatSetpoint", "thermostatSetpointHigh", "thermostatSetpointLow", "lockState", "entryOpen", "batteryLevel", "online", "updateAvailable", "fromMimeType", "toMimeType", "binaryState", "intrusionDetected", "powerDetected", "motionDetected", "occupied", "flooded", "ultraviolet", "luminance", "position",
];
for (var field of fields) {
for (var field of Object.values(types.ScryptedInterfaceProperty)) {
Object.defineProperty(ScryptedDeviceBase.prototype, field, {
set: _createSetState(field),
get: _createGetState(field),
@@ -97,7 +93,6 @@ const sdk = {
MixinDeviceBase,
}
const types = require('./types.generated.js');
Object.assign(sdk, types);
module.exports = sdk;

3
sdk/types.d.ts vendored
View File

@@ -46,6 +46,7 @@ export interface DeviceState {
intrusionDetected?: boolean;
powerDetected?: boolean;
motionDetected?: boolean;
audioDetected?: boolean;
occupied?: boolean;
flooded?: boolean;
ultraviolet?: number;
@@ -515,6 +516,7 @@ export interface PowerSensor {
powerDetected?: boolean;
}
export interface AudioSensor {
audioDetected?: boolean;
}
export interface MotionSensor {
motionDetected?: boolean;
@@ -1024,6 +1026,7 @@ export enum ScryptedInterfaceProperty {
intrusionDetected = "intrusionDetected",
powerDetected = "powerDetected",
motionDetected = "motionDetected",
audioDetected = "audioDetected",
occupied = "occupied",
flooded = "flooded",
ultraviolet = "ultraviolet",

View File

@@ -424,6 +424,7 @@ module.exports.ScryptedInterfaceDescriptors = {
AudioSensor: {
name: "AudioSensor",
properties: [
"audioDetected",
],
methods: [
]
@@ -535,51 +536,8 @@ module.exports.ScryptedInterfaceDescriptors = {
},
}
module.exports.ScryptedInterfaceProperty = {
id: "id",
interfaces: "interfaces",
metadata: "metadata",
name: "name",
providedInterfaces: "providedInterfaces",
providedName: "providedName",
providedRoom: "providedRoom",
providedType: "providedType",
providerId: "providerId",
room: "room",
type: "type",
on: "on",
brightness: "brightness",
colorTemperature: "colorTemperature",
rgb: "rgb",
hsv: "hsv",
running: "running",
paused: "paused",
docked: "docked",
thermostatAvailableModes: "thermostatAvailableModes",
thermostatMode: "thermostatMode",
thermostatSetpoint: "thermostatSetpoint",
thermostatSetpointHigh: "thermostatSetpointHigh",
thermostatSetpointLow: "thermostatSetpointLow",
temperature: "temperature",
temperatureUnit: "temperatureUnit",
humidity: "humidity",
lockState: "lockState",
entryOpen: "entryOpen",
batteryLevel: "batteryLevel",
online: "online",
updateAvailable: "updateAvailable",
fromMimeType: "fromMimeType",
toMimeType: "toMimeType",
binaryState: "binaryState",
intrusionDetected: "intrusionDetected",
powerDetected: "powerDetected",
motionDetected: "motionDetected",
occupied: "occupied",
flooded: "flooded",
ultraviolet: "ultraviolet",
luminance: "luminance",
position: "position",
}
module.exports.ScryptedInterfaceProperty = {}
Object.values(module.exports.ScryptedInterfaceDescriptors).map(s => s.properties).flat().forEach(s => module.exports.ScryptedInterfaceProperty[s] = s);
module.exports.ScryptedMimeTypes = {
AcceptUrlParameter: 'accept-url',