mirror of
https://github.com/koush/scrypted.git
synced 2026-03-20 16:40:24 +00:00
sdk/plugins/client/server: add new ScryptedDeviceCreator ui hooks
This commit is contained in:
8
packages/client/package-lock.json
generated
8
packages/client/package-lock.json
generated
@@ -9,7 +9,7 @@
|
||||
"version": "1.3.5",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@scrypted/types": "^0.3.31",
|
||||
"@scrypted/types": "^0.3.33",
|
||||
"engine.io-client": "^6.5.3",
|
||||
"follow-redirects": "^1.15.6",
|
||||
"rimraf": "^5.0.5"
|
||||
@@ -84,9 +84,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@scrypted/types": {
|
||||
"version": "0.3.31",
|
||||
"resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.31.tgz",
|
||||
"integrity": "sha512-ZmpHMhCp5Aw6AaRKCTc6+y5u1gaNU6MxktWfeuFQ3djMdeI2XVWbpN9o/uTVeyqCHJzBnFTg1JM52sU9bJpolw=="
|
||||
"version": "0.3.33",
|
||||
"resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.33.tgz",
|
||||
"integrity": "sha512-te81NcMnzQsxv0z4efARDbqMBiGzOPD2H+mOzcYCr2Cm2wpvYMwVt576MoXX890Bxn8omh2aRsFK4xSFTlUWSQ=="
|
||||
},
|
||||
"node_modules/@socket.io/component-emitter": {
|
||||
"version": "3.1.0",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"typescript": "^5.4.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scrypted/types": "^0.3.31",
|
||||
"@scrypted/types": "^0.3.33",
|
||||
"engine.io-client": "^6.5.3",
|
||||
"follow-redirects": "^1.15.6",
|
||||
"rimraf": "^5.0.5"
|
||||
|
||||
4
plugins/amcrest/package-lock.json
generated
4
plugins/amcrest/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/amcrest",
|
||||
"version": "0.0.151",
|
||||
"version": "0.0.152",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/amcrest",
|
||||
"version": "0.0.151",
|
||||
"version": "0.0.152",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/amcrest",
|
||||
"version": "0.0.151",
|
||||
"version": "0.0.152",
|
||||
"description": "Amcrest Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "Amcrest Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
],
|
||||
|
||||
@@ -703,6 +703,9 @@ class AmcrestProvider extends RtspProvider {
|
||||
];
|
||||
}
|
||||
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'Amcrest Camera';
|
||||
}
|
||||
|
||||
async createDevice(settings: DeviceCreatorSettings, nativeId?: string): Promise<string> {
|
||||
const httpAddress = `${settings.ip}:${settings.httpPort || 80}`;
|
||||
|
||||
4
plugins/dummy-switch/package-lock.json
generated
4
plugins/dummy-switch/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/dummy-switch",
|
||||
"version": "0.0.23",
|
||||
"version": "0.0.24",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/dummy-switch",
|
||||
"version": "0.0.23",
|
||||
"version": "0.0.24",
|
||||
"dependencies": {
|
||||
"@types/node": "^16.6.1",
|
||||
"axios": "^1.3.6"
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
"name": "Dummy Switch Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
]
|
||||
@@ -38,5 +40,5 @@
|
||||
"@scrypted/common": "file:../../common",
|
||||
"@scrypted/sdk": "file:../../sdk"
|
||||
},
|
||||
"version": "0.0.23"
|
||||
"version": "0.0.24"
|
||||
}
|
||||
|
||||
@@ -84,6 +84,10 @@ class DummyDeviceProvider extends ScryptedDeviceBase implements DeviceProvider,
|
||||
constructor(nativeId?: string) {
|
||||
super(nativeId);
|
||||
|
||||
this.systemDevice = {
|
||||
deviceCreator: 'Dummy Switch',
|
||||
};
|
||||
|
||||
for (const camId of deviceManager.getNativeIds()) {
|
||||
if (camId)
|
||||
this.getDevice(camId);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SettingsMixinDeviceBase, SettingsMixinDeviceOptions } from "@scrypted/common/src/settings-mixin";
|
||||
import { BinarySensor, DeviceState, EventListenerRegister, MixinProvider, ScryptedDevice, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, Setting, SettingValue, Settings } from "@scrypted/sdk";
|
||||
import { BinarySensor, EventListenerRegister, MixinProvider, ScryptedDevice, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, Setting, SettingValue, Settings, WritableDeviceState } from "@scrypted/sdk";
|
||||
import { StorageSettings } from "@scrypted/sdk/storage-settings";
|
||||
|
||||
export const ReplaceBinarySensorNativeId = 'replaceBinarySensor';
|
||||
@@ -63,7 +63,7 @@ export class ReplaceBinarySensor extends ScryptedDeviceBase implements MixinProv
|
||||
];
|
||||
}
|
||||
|
||||
async getMixin(mixinDevice: any, mixinDeviceInterfaces: ScryptedInterface[], mixinDeviceState: DeviceState): Promise<any> {
|
||||
async getMixin(mixinDevice: any, mixinDeviceInterfaces: ScryptedInterface[], mixinDeviceState: WritableDeviceState): Promise<any> {
|
||||
return new ReplaceBinarySensorMixin({
|
||||
group: 'Custom Doorbell Button',
|
||||
groupKey: 'replaceBinarySensor',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SettingsMixinDeviceBase, SettingsMixinDeviceOptions } from "@scrypted/common/src/settings-mixin";
|
||||
import { DeviceState, EventListenerRegister, MixinProvider, MotionSensor, ScryptedDevice, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, Setting, SettingValue, Settings } from "@scrypted/sdk";
|
||||
import { EventListenerRegister, MixinProvider, MotionSensor, ScryptedDevice, ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, Setting, SettingValue, Settings, WritableDeviceState } from "@scrypted/sdk";
|
||||
import { StorageSettings } from "@scrypted/sdk/storage-settings";
|
||||
|
||||
export const ReplaceMotionSensorNativeId = 'replaceMotionSensor';
|
||||
@@ -63,7 +63,7 @@ export class ReplaceMotionSensor extends ScryptedDeviceBase implements MixinProv
|
||||
];
|
||||
}
|
||||
|
||||
async getMixin(mixinDevice: any, mixinDeviceInterfaces: ScryptedInterface[], mixinDeviceState: DeviceState): Promise<any> {
|
||||
async getMixin(mixinDevice: any, mixinDeviceInterfaces: ScryptedInterface[], mixinDeviceState: WritableDeviceState): Promise<any> {
|
||||
return new ReplaceMotionSensorMixin({
|
||||
group: 'Custom Motion Sensor',
|
||||
groupKey: 'replaceMotionSensor',
|
||||
|
||||
4
plugins/ffmpeg-camera/package-lock.json
generated
4
plugins/ffmpeg-camera/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/ffmpeg-camera",
|
||||
"version": "0.0.22",
|
||||
"version": "0.0.23",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/ffmpeg-camera",
|
||||
"version": "0.0.22",
|
||||
"version": "0.0.23",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/ffmpeg-camera",
|
||||
"version": "0.0.22",
|
||||
"version": "0.0.23",
|
||||
"description": "FFmpeg Camera Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "FFmpeg Camera Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
],
|
||||
|
||||
@@ -130,6 +130,10 @@ export abstract class CameraProviderBase<T extends ResponseMediaStreamOptions> e
|
||||
|
||||
constructor(nativeId?: string) {
|
||||
super(nativeId);
|
||||
|
||||
this.systemDevice = {
|
||||
deviceCreator: this.getScryptedDeviceCreator(),
|
||||
};
|
||||
}
|
||||
|
||||
async createDevice(settings: DeviceCreatorSettings, nativeId?: ScryptedNativeId): Promise<string> {
|
||||
@@ -173,6 +177,7 @@ export abstract class CameraProviderBase<T extends ResponseMediaStreamOptions> e
|
||||
}
|
||||
|
||||
abstract createCamera(nativeId: string): CameraBase<T>;
|
||||
abstract getScryptedDeviceCreator(): string;
|
||||
|
||||
getDevice(nativeId: string) {
|
||||
let ret = this.devices.get(nativeId);
|
||||
|
||||
@@ -130,6 +130,10 @@ class FFmpegProvider extends CameraProviderBase<UrlMediaStreamOptions> {
|
||||
createCamera(nativeId: string): FFmpegCamera {
|
||||
return new FFmpegCamera(nativeId, this);
|
||||
}
|
||||
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'FFmpeg Camera';
|
||||
}
|
||||
}
|
||||
|
||||
export default new FFmpegProvider();
|
||||
|
||||
4
plugins/hikvision/package-lock.json
generated
4
plugins/hikvision/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/hikvision",
|
||||
"version": "0.0.149",
|
||||
"version": "0.0.150",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/hikvision",
|
||||
"version": "0.0.149",
|
||||
"version": "0.0.150",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/hikvision",
|
||||
"version": "0.0.149",
|
||||
"version": "0.0.150",
|
||||
"description": "Hikvision Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "Hikvision Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
],
|
||||
|
||||
@@ -593,6 +593,10 @@ class HikvisionProvider extends RtspProvider {
|
||||
super();
|
||||
}
|
||||
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'Hikvision Camera';
|
||||
}
|
||||
|
||||
getAdditionalInterfaces() {
|
||||
return [
|
||||
ScryptedInterface.Reboot,
|
||||
|
||||
4
plugins/mqtt/package-lock.json
generated
4
plugins/mqtt/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/mqtt",
|
||||
"version": "0.0.81",
|
||||
"version": "0.0.82",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/mqtt",
|
||||
"version": "0.0.81",
|
||||
"version": "0.0.82",
|
||||
"dependencies": {
|
||||
"aedes": "^0.46.1",
|
||||
"axios": "^0.23.0",
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
"name": "MQTT",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"MixinProvider",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator",
|
||||
@@ -41,5 +43,5 @@
|
||||
"@types/node": "^18.4.2",
|
||||
"@types/nunjucks": "^3.2.0"
|
||||
},
|
||||
"version": "0.0.81"
|
||||
"version": "0.0.82"
|
||||
}
|
||||
|
||||
@@ -362,6 +362,10 @@ export class MqttProvider extends ScryptedDeviceBase implements DeviceProvider,
|
||||
constructor(nativeId?: string) {
|
||||
super(nativeId);
|
||||
|
||||
this.systemDevice = {
|
||||
deviceCreator: 'MQTT Device',
|
||||
};
|
||||
|
||||
this.maybeEnableBroker();
|
||||
|
||||
for (const deviceId of deviceManager.getNativeIds()) {
|
||||
|
||||
4
plugins/objectdetector/package-lock.json
generated
4
plugins/objectdetector/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/objectdetector",
|
||||
"version": "0.1.42",
|
||||
"version": "0.1.43",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/objectdetector",
|
||||
"version": "0.1.42",
|
||||
"version": "0.1.43",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/objectdetector",
|
||||
"version": "0.1.42",
|
||||
"version": "0.1.43",
|
||||
"description": "Scrypted Video Analysis Plugin. Installed alongside a detection service like OpenCV or TensorFlow.",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache-2.0",
|
||||
@@ -35,6 +35,8 @@
|
||||
"name": "Video Analysis Plugin",
|
||||
"type": "API",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceCreator",
|
||||
"DeviceProvider",
|
||||
"Settings",
|
||||
|
||||
@@ -1016,7 +1016,9 @@ export class ObjectDetectionPlugin extends AutoenableMixinProvider implements Se
|
||||
constructor(nativeId?: ScryptedNativeId) {
|
||||
super(nativeId, 'v5');
|
||||
|
||||
this.createdDevice = 'Smart Motion Sensor';
|
||||
this.systemDevice = {
|
||||
deviceCreator: 'Smart Motion Sensor',
|
||||
};
|
||||
|
||||
process.nextTick(() => {
|
||||
sdk.deviceManager.onDeviceDiscovered({
|
||||
|
||||
4
plugins/onvif/package-lock.json
generated
4
plugins/onvif/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/onvif",
|
||||
"version": "0.1.14",
|
||||
"version": "0.1.15",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/onvif",
|
||||
"version": "0.1.14",
|
||||
"version": "0.1.15",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/onvif",
|
||||
"version": "0.1.14",
|
||||
"version": "0.1.15",
|
||||
"description": "ONVIF Camera Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "ONVIF Camera Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator",
|
||||
"DeviceDiscovery"
|
||||
|
||||
@@ -466,6 +466,10 @@ class OnvifProvider extends RtspProvider implements DeviceDiscovery {
|
||||
})
|
||||
}
|
||||
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'ONVIF Camera';
|
||||
}
|
||||
|
||||
async getDevice(nativeId: string) {
|
||||
if (nativeId === 'ptz')
|
||||
return new OnvifPTZMixinProvider('ptz');
|
||||
|
||||
4
plugins/reolink/package-lock.json
generated
4
plugins/reolink/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/reolink",
|
||||
"version": "0.0.82",
|
||||
"version": "0.0.83",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/reolink",
|
||||
"version": "0.0.82",
|
||||
"version": "0.0.83",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/reolink",
|
||||
"version": "0.0.82",
|
||||
"version": "0.0.83",
|
||||
"description": "Reolink Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "Reolink Camera Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
],
|
||||
|
||||
@@ -667,6 +667,10 @@ class ReolinkCamera extends RtspSmartCamera implements Camera, DeviceProvider, R
|
||||
}
|
||||
|
||||
class ReolinkProvider extends RtspProvider {
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'Reolink Camera';
|
||||
}
|
||||
|
||||
getAdditionalInterfaces() {
|
||||
return [
|
||||
ScryptedInterface.Reboot,
|
||||
|
||||
4
plugins/rtsp/package-lock.json
generated
4
plugins/rtsp/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/rtsp",
|
||||
"version": "0.0.54",
|
||||
"version": "0.0.55",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/rtsp",
|
||||
"version": "0.0.54",
|
||||
"version": "0.0.55",
|
||||
"license": "Apache",
|
||||
"dependencies": {
|
||||
"@scrypted/common": "file:../../common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/rtsp",
|
||||
"version": "0.0.54",
|
||||
"version": "0.0.55",
|
||||
"description": "RTSP Cameras and Streams Plugin for Scrypted",
|
||||
"author": "Scrypted",
|
||||
"license": "Apache",
|
||||
@@ -27,6 +27,8 @@
|
||||
"name": "RTSP Camera Plugin",
|
||||
"type": "DeviceProvider",
|
||||
"interfaces": [
|
||||
"ScryptedSystemDevice",
|
||||
"ScryptedDeviceCreator",
|
||||
"DeviceProvider",
|
||||
"DeviceCreator"
|
||||
],
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
import { RtspProvider } from "./rtsp";
|
||||
|
||||
export default new RtspProvider();
|
||||
export default class RTSPCameraProvider extends RtspProvider {
|
||||
getScryptedDeviceCreator(): string {
|
||||
return 'RTSP Camera';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -375,7 +375,7 @@ export abstract class RtspSmartCamera extends RtspCamera {
|
||||
}
|
||||
}
|
||||
|
||||
export class RtspProvider extends CameraProviderBase<UrlMediaStreamOptions> {
|
||||
export abstract class RtspProvider extends CameraProviderBase<UrlMediaStreamOptions> {
|
||||
createCamera(nativeId: string): RtspCamera {
|
||||
return new RtspCamera(nativeId, this);
|
||||
}
|
||||
|
||||
4
sdk/package-lock.json
generated
4
sdk/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.3.32",
|
||||
"version": "0.3.35",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.3.32",
|
||||
"version": "0.3.35",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@babel/preset-typescript": "^7.18.6",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.3.32",
|
||||
"version": "0.3.35",
|
||||
"description": "",
|
||||
"main": "dist/src/index.js",
|
||||
"exports": {
|
||||
|
||||
4
sdk/types/package-lock.json
generated
4
sdk/types/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/types",
|
||||
"version": "0.3.31",
|
||||
"version": "0.3.33",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/types",
|
||||
"version": "0.3.31",
|
||||
"version": "0.3.33",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.19.15",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/types",
|
||||
"version": "0.3.31",
|
||||
"version": "0.3.33",
|
||||
"description": "",
|
||||
"main": "dist/index.js",
|
||||
"author": "",
|
||||
|
||||
@@ -172,8 +172,11 @@ class ScryptedInterface(str, Enum):
|
||||
Scene = "Scene"
|
||||
Scriptable = "Scriptable"
|
||||
ScryptedDevice = "ScryptedDevice"
|
||||
ScryptedDeviceCreator = "ScryptedDeviceCreator"
|
||||
ScryptedPlugin = "ScryptedPlugin"
|
||||
ScryptedPluginRuntime = "ScryptedPluginRuntime"
|
||||
ScryptedSettings = "ScryptedSettings"
|
||||
ScryptedSystemDevice = "ScryptedSystemDevice"
|
||||
ScryptedUser = "ScryptedUser"
|
||||
SecuritySystem = "SecuritySystem"
|
||||
Settings = "Settings"
|
||||
@@ -794,6 +797,11 @@ class ScryptedRuntimeArguments(TypedDict):
|
||||
arguments: list[str]
|
||||
executable: str
|
||||
|
||||
class ScryptedSystemDeviceInfo(TypedDict):
|
||||
|
||||
deviceCreator: str # The description of device that will be created by this DeviceCreator. For example: Example Corp Camera or ACME Light Switch.
|
||||
settings: str # The name of the device as seen in System Settings.
|
||||
|
||||
class ScryptedUserAccessControl(TypedDict):
|
||||
"""ScryptedUserAccessControl describes the list of devices that may be accessed by the user."""
|
||||
|
||||
@@ -982,7 +990,6 @@ class ColorSettingTemperature:
|
||||
class DeviceCreator:
|
||||
"""A DeviceProvider that allows the user to create a device."""
|
||||
|
||||
createdDevice: str # Type of device that will be created by this DeviceCreator. For example: Example Corp Camera or ACME Light Switch.
|
||||
async def createDevice(self, settings: DeviceCreatorSettings) -> str:
|
||||
pass
|
||||
|
||||
@@ -1389,6 +1396,11 @@ class ScryptedDevice:
|
||||
pass
|
||||
|
||||
|
||||
class ScryptedDeviceCreator:
|
||||
|
||||
|
||||
pass
|
||||
|
||||
class ScryptedPlugin:
|
||||
|
||||
async def getPluginJson(self) -> Any:
|
||||
@@ -1399,6 +1411,16 @@ class ScryptedPluginRuntime:
|
||||
|
||||
scryptedRuntimeArguments: ScryptedRuntimeArguments
|
||||
|
||||
class ScryptedSettings:
|
||||
|
||||
|
||||
pass
|
||||
|
||||
class ScryptedSystemDevice:
|
||||
"""SystemDevices are listed in the Scrypted UI."""
|
||||
|
||||
systemDevice: ScryptedSystemDeviceInfo # Type of device that will be created by this DeviceCreator. For example: Example Corp Camera or ACME Light Switch.
|
||||
|
||||
class ScryptedUser:
|
||||
"""ScryptedUser represents a user managed by Scrypted. This interface can not be implemented, only extended by Mixins."""
|
||||
|
||||
@@ -1757,7 +1779,6 @@ class ScryptedInterfaceProperty(str, Enum):
|
||||
ptzCapabilities = "ptzCapabilities"
|
||||
lockState = "lockState"
|
||||
entryOpen = "entryOpen"
|
||||
createdDevice = "createdDevice"
|
||||
batteryLevel = "batteryLevel"
|
||||
chargeState = "chargeState"
|
||||
online = "online"
|
||||
@@ -1788,6 +1809,7 @@ class ScryptedInterfaceProperty(str, Enum):
|
||||
humiditySetting = "humiditySetting"
|
||||
fan = "fan"
|
||||
applicationInfo = "applicationInfo"
|
||||
systemDevice = "systemDevice"
|
||||
|
||||
class ScryptedInterfaceMethods(str, Enum):
|
||||
listen = "listen"
|
||||
@@ -2153,14 +2175,6 @@ class DeviceState:
|
||||
def entryOpen(self, value: bool | Any):
|
||||
self.setScryptedProperty("entryOpen", value)
|
||||
|
||||
@property
|
||||
def createdDevice(self) -> str:
|
||||
return self.getScryptedProperty("createdDevice")
|
||||
|
||||
@createdDevice.setter
|
||||
def createdDevice(self, value: str):
|
||||
self.setScryptedProperty("createdDevice", value)
|
||||
|
||||
@property
|
||||
def batteryLevel(self) -> float:
|
||||
return self.getScryptedProperty("batteryLevel")
|
||||
@@ -2401,6 +2415,14 @@ class DeviceState:
|
||||
def applicationInfo(self, value: LauncherApplicationInfo):
|
||||
self.setScryptedProperty("applicationInfo", value)
|
||||
|
||||
@property
|
||||
def systemDevice(self) -> ScryptedSystemDeviceInfo:
|
||||
return self.getScryptedProperty("systemDevice")
|
||||
|
||||
@systemDevice.setter
|
||||
def systemDevice(self, value: ScryptedSystemDeviceInfo):
|
||||
self.setScryptedProperty("systemDevice", value)
|
||||
|
||||
ScryptedInterfaceDescriptors = {
|
||||
"ScryptedDevice": {
|
||||
"name": "ScryptedDevice",
|
||||
@@ -2727,9 +2749,7 @@ ScryptedInterfaceDescriptors = {
|
||||
"createDevice",
|
||||
"getCreateDeviceSettings"
|
||||
],
|
||||
"properties": [
|
||||
"createdDevice"
|
||||
]
|
||||
"properties": []
|
||||
},
|
||||
"Battery": {
|
||||
"name": "Battery",
|
||||
@@ -3105,6 +3125,23 @@ ScryptedInterfaceDescriptors = {
|
||||
"connectStream"
|
||||
],
|
||||
"properties": []
|
||||
},
|
||||
"ScryptedSystemDevice": {
|
||||
"name": "ScryptedSystemDevice",
|
||||
"methods": [],
|
||||
"properties": [
|
||||
"systemDevice"
|
||||
]
|
||||
},
|
||||
"ScryptedDeviceCreator": {
|
||||
"name": "ScryptedDeviceCreator",
|
||||
"methods": [],
|
||||
"properties": []
|
||||
},
|
||||
"ScryptedSettings": {
|
||||
"name": "ScryptedSettings",
|
||||
"methods": [],
|
||||
"properties": []
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1037,11 +1037,6 @@ export interface DeviceCreator {
|
||||
* Return the id of the created device.
|
||||
*/
|
||||
createDevice(settings: DeviceCreatorSettings): Promise<string>;
|
||||
/**
|
||||
* Type of device that will be created by this DeviceCreator.
|
||||
* For example: Example Corp Camera or ACME Light Switch.
|
||||
*/
|
||||
createdDevice?: string;
|
||||
}
|
||||
export interface DiscoveredDevice {
|
||||
name: string;
|
||||
@@ -1190,6 +1185,34 @@ export interface Settings {
|
||||
putSetting(key: string, value: SettingValue): Promise<void>;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* SystemDevices are listed in the Scrypted UI.
|
||||
*/
|
||||
export interface ScryptedSystemDevice {
|
||||
/**
|
||||
* Type of device that will be created by this DeviceCreator.
|
||||
* For example: Example Corp Camera or ACME Light Switch.
|
||||
*/
|
||||
systemDevice?: ScryptedSystemDeviceInfo;
|
||||
}
|
||||
|
||||
export interface ScryptedSystemDeviceInfo {
|
||||
/**
|
||||
* The name of the device as seen in System Settings.
|
||||
*/
|
||||
settings?: string;
|
||||
/**
|
||||
* The description of device that will be created by this DeviceCreator.
|
||||
* For example: Example Corp Camera or ACME Light Switch.
|
||||
*/
|
||||
deviceCreator?: string;
|
||||
}
|
||||
|
||||
export interface ScryptedSettings {
|
||||
}
|
||||
export interface ScryptedDeviceCreator {
|
||||
}
|
||||
export interface BinarySensor {
|
||||
binaryState?: boolean;
|
||||
}
|
||||
@@ -2106,6 +2129,10 @@ export enum ScryptedInterface {
|
||||
ScryptedUser = "ScryptedUser",
|
||||
VideoFrameGenerator = 'VideoFrameGenerator',
|
||||
StreamService = 'StreamService',
|
||||
|
||||
ScryptedSystemDevice = "ScryptedSystemDevice",
|
||||
ScryptedDeviceCreator = "ScryptedDeviceCreator",
|
||||
ScryptedSettings = "ScryptedSettings",
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
8
server/package-lock.json
generated
8
server/package-lock.json
generated
@@ -13,7 +13,7 @@
|
||||
"@mapbox/node-pre-gyp": "^1.0.11",
|
||||
"@scrypted/ffmpeg-static": "^6.1.0-build1",
|
||||
"@scrypted/node-pty": "^1.0.14",
|
||||
"@scrypted/types": "^0.3.31",
|
||||
"@scrypted/types": "^0.3.33",
|
||||
"adm-zip": "^0.5.14",
|
||||
"body-parser": "^1.20.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
@@ -711,9 +711,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@scrypted/types": {
|
||||
"version": "0.3.31",
|
||||
"resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.31.tgz",
|
||||
"integrity": "sha512-ZmpHMhCp5Aw6AaRKCTc6+y5u1gaNU6MxktWfeuFQ3djMdeI2XVWbpN9o/uTVeyqCHJzBnFTg1JM52sU9bJpolw=="
|
||||
"version": "0.3.33",
|
||||
"resolved": "https://registry.npmjs.org/@scrypted/types/-/types-0.3.33.tgz",
|
||||
"integrity": "sha512-te81NcMnzQsxv0z4efARDbqMBiGzOPD2H+mOzcYCr2Cm2wpvYMwVt576MoXX890Bxn8omh2aRsFK4xSFTlUWSQ=="
|
||||
},
|
||||
"node_modules/@types/adm-zip": {
|
||||
"version": "0.5.5",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"@mapbox/node-pre-gyp": "^1.0.11",
|
||||
"@scrypted/ffmpeg-static": "^6.1.0-build1",
|
||||
"@scrypted/node-pty": "^1.0.14",
|
||||
"@scrypted/types": "^0.3.31",
|
||||
"@scrypted/types": "^0.3.33",
|
||||
"adm-zip": "^0.5.14",
|
||||
"body-parser": "^1.20.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
|
||||
Reference in New Issue
Block a user