eufy-security-client 2.6.2 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +762 -745
  3. package/build/error.d.ts +126 -56
  4. package/build/error.js +80 -58
  5. package/build/error.js.map +1 -1
  6. package/build/eufysecurity.d.ts +4 -2
  7. package/build/eufysecurity.js +372 -184
  8. package/build/eufysecurity.js.map +1 -1
  9. package/build/http/api.js +164 -113
  10. package/build/http/api.js.map +1 -1
  11. package/build/http/cache.js +2 -2
  12. package/build/http/cache.js.map +1 -1
  13. package/build/http/device.d.ts +26 -1
  14. package/build/http/device.js +544 -167
  15. package/build/http/device.js.map +1 -1
  16. package/build/http/error.d.ts +64 -19
  17. package/build/http/error.js +53 -29
  18. package/build/http/error.js.map +1 -1
  19. package/build/http/interfaces.d.ts +3 -0
  20. package/build/http/models.d.ts +25 -0
  21. package/build/http/parameter.d.ts +1 -1
  22. package/build/http/parameter.js +19 -17
  23. package/build/http/parameter.js.map +1 -1
  24. package/build/http/station.d.ts +30 -6
  25. package/build/http/station.js +1599 -530
  26. package/build/http/station.js.map +1 -1
  27. package/build/http/types.d.ts +125 -2
  28. package/build/http/types.js +932 -53
  29. package/build/http/types.js.map +1 -1
  30. package/build/http/utils.js +11 -9
  31. package/build/http/utils.js.map +1 -1
  32. package/build/mqtt/service.js +19 -16
  33. package/build/mqtt/service.js.map +1 -1
  34. package/build/p2p/ble.js +14 -6
  35. package/build/p2p/ble.js.map +1 -1
  36. package/build/p2p/error.d.ts +48 -23
  37. package/build/p2p/error.js +25 -24
  38. package/build/p2p/error.js.map +1 -1
  39. package/build/p2p/interfaces.d.ts +23 -0
  40. package/build/p2p/models.d.ts +11 -1
  41. package/build/p2p/session.d.ts +5 -0
  42. package/build/p2p/session.js +210 -142
  43. package/build/p2p/session.js.map +1 -1
  44. package/build/p2p/talkback.js +1 -1
  45. package/build/p2p/talkback.js.map +1 -1
  46. package/build/p2p/types.d.ts +36 -1
  47. package/build/p2p/types.js +72 -31
  48. package/build/p2p/types.js.map +1 -1
  49. package/build/p2p/utils.d.ts +3 -1
  50. package/build/p2p/utils.js +13 -1
  51. package/build/p2p/utils.js.map +1 -1
  52. package/build/push/client.js +24 -15
  53. package/build/push/client.js.map +1 -1
  54. package/build/push/error.d.ts +73 -0
  55. package/build/push/error.js +101 -0
  56. package/build/push/error.js.map +1 -0
  57. package/build/push/index.d.ts +1 -0
  58. package/build/push/index.js +1 -0
  59. package/build/push/index.js.map +1 -1
  60. package/build/push/models.d.ts +17 -1
  61. package/build/push/models.js +9 -2
  62. package/build/push/models.js.map +1 -1
  63. package/build/push/parser.js +17 -13
  64. package/build/push/parser.js.map +1 -1
  65. package/build/push/service.js +160 -62
  66. package/build/push/service.js.map +1 -1
  67. package/build/push/types.d.ts +10 -0
  68. package/build/push/types.js +25 -14
  69. package/build/push/types.js.map +1 -1
  70. package/build/push/utils.js +2 -1
  71. package/build/push/utils.js.map +1 -1
  72. package/build/utils.d.ts +2 -1
  73. package/build/utils.js +56 -26
  74. package/build/utils.js.map +1 -1
  75. package/package.json +77 -77
@@ -1,28 +1,73 @@
1
- export declare class InvalidPropertyError extends Error {
2
- constructor(message?: string);
1
+ import { BaseError, Jsonable } from "../error";
2
+ export declare class InvalidPropertyError extends BaseError {
3
+ constructor(message: string, options?: {
4
+ cause?: Error;
5
+ context?: Jsonable;
6
+ });
3
7
  }
4
- export declare class LivestreamAlreadyRunningError extends Error {
5
- constructor(message?: string);
8
+ export declare class LivestreamAlreadyRunningError extends BaseError {
9
+ constructor(message: string, options?: {
10
+ cause?: Error;
11
+ context?: Jsonable;
12
+ });
6
13
  }
7
- export declare class LivestreamNotRunningError extends Error {
8
- constructor(message?: string);
14
+ export declare class LivestreamNotRunningError extends BaseError {
15
+ constructor(message: string, options?: {
16
+ cause?: Error;
17
+ context?: Jsonable;
18
+ });
9
19
  }
10
- export declare class PropertyNotSupportedError extends Error {
11
- constructor(message?: string);
20
+ export declare class PropertyNotSupportedError extends BaseError {
21
+ constructor(message: string, options?: {
22
+ cause?: Error;
23
+ context?: Jsonable;
24
+ });
12
25
  }
13
- export declare class ApiResponseCodeError extends Error {
14
- constructor(message?: string);
26
+ export declare class ApiResponseCodeError extends BaseError {
27
+ constructor(message: string, options?: {
28
+ cause?: Error;
29
+ context?: Jsonable;
30
+ });
15
31
  }
16
- export declare class ApiInvalidResponseError extends Error {
17
- constructor(message?: string);
32
+ export declare class ApiInvalidResponseError extends BaseError {
33
+ constructor(message: string, options?: {
34
+ cause?: Error;
35
+ context?: Jsonable;
36
+ });
18
37
  }
19
- export declare class ApiHTTPResponseCodeError extends Error {
20
- constructor(message?: string);
38
+ export declare class ApiHTTPResponseCodeError extends BaseError {
39
+ constructor(message: string, options?: {
40
+ cause?: Error;
41
+ context?: Jsonable;
42
+ });
21
43
  }
22
- export declare class ApiGenericError extends Error {
23
- constructor(message?: string);
44
+ export declare class ApiGenericError extends BaseError {
45
+ constructor(message: string, options?: {
46
+ cause?: Error;
47
+ context?: Jsonable;
48
+ });
24
49
  }
25
- export declare class ApiBaseLoadError extends Error {
26
- code: number;
27
- constructor(code: number, message?: string);
50
+ export declare class ApiBaseLoadError extends BaseError {
51
+ constructor(message: string, options?: {
52
+ cause?: Error;
53
+ context?: Jsonable;
54
+ });
55
+ }
56
+ export declare class ApiRequestError extends BaseError {
57
+ constructor(message: string, options?: {
58
+ cause?: Error;
59
+ context?: Jsonable;
60
+ });
61
+ }
62
+ export declare class ImageBaseCodeError extends BaseError {
63
+ constructor(message: string, options?: {
64
+ cause?: Error;
65
+ context?: Jsonable;
66
+ });
67
+ }
68
+ export declare class ImageSeedError extends BaseError {
69
+ constructor(message: string, options?: {
70
+ cause?: Error;
71
+ context?: Jsonable;
72
+ });
28
73
  }
@@ -1,77 +1,101 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiBaseLoadError = exports.ApiGenericError = exports.ApiHTTPResponseCodeError = exports.ApiInvalidResponseError = exports.ApiResponseCodeError = exports.PropertyNotSupportedError = exports.LivestreamNotRunningError = exports.LivestreamAlreadyRunningError = exports.InvalidPropertyError = void 0;
4
- class InvalidPropertyError extends Error {
5
- constructor(message) {
6
- super(message);
3
+ exports.ImageSeedError = exports.ImageBaseCodeError = exports.ApiRequestError = exports.ApiBaseLoadError = exports.ApiGenericError = exports.ApiHTTPResponseCodeError = exports.ApiInvalidResponseError = exports.ApiResponseCodeError = exports.PropertyNotSupportedError = exports.LivestreamNotRunningError = exports.LivestreamAlreadyRunningError = exports.InvalidPropertyError = void 0;
4
+ const error_1 = require("../error");
5
+ class InvalidPropertyError extends error_1.BaseError {
6
+ constructor(message, options = {}) {
7
+ super(message, options);
7
8
  Object.setPrototypeOf(this, new.target.prototype);
8
9
  this.name = InvalidPropertyError.name;
9
10
  }
10
11
  }
11
12
  exports.InvalidPropertyError = InvalidPropertyError;
12
- class LivestreamAlreadyRunningError extends Error {
13
- constructor(message) {
14
- super(message);
13
+ class LivestreamAlreadyRunningError extends error_1.BaseError {
14
+ constructor(message, options = {}) {
15
+ super(message, options);
15
16
  Object.setPrototypeOf(this, new.target.prototype);
16
17
  this.name = LivestreamAlreadyRunningError.name;
17
18
  }
18
19
  }
19
20
  exports.LivestreamAlreadyRunningError = LivestreamAlreadyRunningError;
20
- class LivestreamNotRunningError extends Error {
21
- constructor(message) {
22
- super(message);
21
+ class LivestreamNotRunningError extends error_1.BaseError {
22
+ constructor(message, options = {}) {
23
+ super(message, options);
23
24
  Object.setPrototypeOf(this, new.target.prototype);
24
25
  this.name = LivestreamNotRunningError.name;
25
26
  }
26
27
  }
27
28
  exports.LivestreamNotRunningError = LivestreamNotRunningError;
28
- class PropertyNotSupportedError extends Error {
29
- constructor(message) {
30
- super(message);
29
+ class PropertyNotSupportedError extends error_1.BaseError {
30
+ constructor(message, options = {}) {
31
+ super(message, options);
31
32
  Object.setPrototypeOf(this, new.target.prototype);
32
33
  this.name = PropertyNotSupportedError.name;
33
34
  }
34
35
  }
35
36
  exports.PropertyNotSupportedError = PropertyNotSupportedError;
36
- class ApiResponseCodeError extends Error {
37
- constructor(message) {
38
- super(message);
37
+ class ApiResponseCodeError extends error_1.BaseError {
38
+ constructor(message, options = {}) {
39
+ super(message, options);
39
40
  Object.setPrototypeOf(this, new.target.prototype);
40
41
  this.name = ApiResponseCodeError.name;
41
42
  }
42
43
  }
43
44
  exports.ApiResponseCodeError = ApiResponseCodeError;
44
- class ApiInvalidResponseError extends Error {
45
- constructor(message) {
46
- super(message);
45
+ class ApiInvalidResponseError extends error_1.BaseError {
46
+ constructor(message, options = {}) {
47
+ super(message, options);
47
48
  Object.setPrototypeOf(this, new.target.prototype);
48
49
  this.name = ApiInvalidResponseError.name;
49
50
  }
50
51
  }
51
52
  exports.ApiInvalidResponseError = ApiInvalidResponseError;
52
- class ApiHTTPResponseCodeError extends Error {
53
- constructor(message) {
54
- super(message);
53
+ class ApiHTTPResponseCodeError extends error_1.BaseError {
54
+ constructor(message, options = {}) {
55
+ super(message, options);
55
56
  Object.setPrototypeOf(this, new.target.prototype);
56
57
  this.name = ApiHTTPResponseCodeError.name;
57
58
  }
58
59
  }
59
60
  exports.ApiHTTPResponseCodeError = ApiHTTPResponseCodeError;
60
- class ApiGenericError extends Error {
61
- constructor(message) {
62
- super(message);
61
+ class ApiGenericError extends error_1.BaseError {
62
+ constructor(message, options = {}) {
63
+ super(message, options);
63
64
  Object.setPrototypeOf(this, new.target.prototype);
64
65
  this.name = ApiGenericError.name;
65
66
  }
66
67
  }
67
68
  exports.ApiGenericError = ApiGenericError;
68
- class ApiBaseLoadError extends Error {
69
- constructor(code, message) {
70
- super(message);
71
- this.code = code;
69
+ class ApiBaseLoadError extends error_1.BaseError {
70
+ constructor(message, options = {}) {
71
+ super(message, options);
72
72
  Object.setPrototypeOf(this, new.target.prototype);
73
73
  this.name = ApiBaseLoadError.name;
74
74
  }
75
75
  }
76
76
  exports.ApiBaseLoadError = ApiBaseLoadError;
77
+ class ApiRequestError extends error_1.BaseError {
78
+ constructor(message, options = {}) {
79
+ super(message, options);
80
+ Object.setPrototypeOf(this, new.target.prototype);
81
+ this.name = ApiRequestError.name;
82
+ }
83
+ }
84
+ exports.ApiRequestError = ApiRequestError;
85
+ class ImageBaseCodeError extends error_1.BaseError {
86
+ constructor(message, options = {}) {
87
+ super(message, options);
88
+ Object.setPrototypeOf(this, new.target.prototype);
89
+ this.name = ImageBaseCodeError.name;
90
+ }
91
+ }
92
+ exports.ImageBaseCodeError = ImageBaseCodeError;
93
+ class ImageSeedError extends error_1.BaseError {
94
+ constructor(message, options = {}) {
95
+ super(message, options);
96
+ Object.setPrototypeOf(this, new.target.prototype);
97
+ this.name = ImageSeedError.name;
98
+ }
99
+ }
100
+ exports.ImageSeedError = ImageSeedError;
77
101
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/http/error.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,7 @@ export interface PropertyMetadataString extends PropertyMetadataAny {
85
85
  }
86
86
  export interface PropertyMetadataObject extends PropertyMetadataAny {
87
87
  type: "object";
88
+ isValidObject?: (obj: any) => boolean;
88
89
  default?: any;
89
90
  }
90
91
  export interface IndexedProperty {
@@ -190,6 +191,8 @@ export interface StationEvents {
190
191
  "database query local": (station: Station, returnCode: DatabaseReturnCode, data: Array<DatabaseQueryLocal>) => void;
191
192
  "database count by date": (station: Station, returnCode: DatabaseReturnCode, data: Array<DatabaseCountByDate>) => void;
192
193
  "database delete": (station: Station, returnCode: DatabaseReturnCode, failedIds: Array<unknown>) => void;
194
+ "sensor status": (station: Station, channel: number, status: number) => void;
195
+ "garage door status": (station: Station, channel: number, doorId: number, status: number) => void;
193
196
  }
194
197
  export interface DeviceEvents {
195
198
  "property changed": (device: Device, name: string, value: PropertyValue, ready: boolean) => void;
@@ -559,3 +559,28 @@ export interface AddUserResponse {
559
559
  user_id: string;
560
560
  short_user_id: string;
561
561
  }
562
+ export interface GarageDoorSensorsProperty {
563
+ cmd: number;
564
+ data: {
565
+ door_1: {
566
+ power: number;
567
+ mac_address: string;
568
+ version: string;
569
+ name: string;
570
+ sn: string;
571
+ playalarm: number;
572
+ ota: number;
573
+ needota: number;
574
+ };
575
+ door_2: {
576
+ power: number;
577
+ mac_address: string;
578
+ version: string;
579
+ name: string;
580
+ sn: string;
581
+ playalarm: number;
582
+ ota: number;
583
+ needota: number;
584
+ };
585
+ };
586
+ }
@@ -1,5 +1,5 @@
1
1
  import { Logger } from "ts-log";
2
2
  export declare class ParameterHelper {
3
- static readValue(type: number, value: string, log: Logger): string;
3
+ static readValue(type: number, value: string, log: Logger): string | undefined;
4
4
  static writeValue(type: number, value: string): string;
5
5
  }
@@ -18,19 +18,22 @@ class ParameterHelper {
18
18
  type === types_1.CommandType.ARM_DELAY_CUS2 ||
19
19
  type === types_1.CommandType.ARM_DELAY_CUS3 ||
20
20
  type === types_1.CommandType.ARM_DELAY_OFF ||
21
- type === types_1.CommandType.CELLULAR_INFO) {
22
- try {
23
- if (typeof value === "string") {
24
- return (0, utils_2.parseJSON)((0, utils_1.decodeBase64)(value).toString("utf8"), log);
25
- }
26
- else {
27
- return value; //return object
21
+ type === types_1.CommandType.CELLULAR_INFO ||
22
+ type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING ||
23
+ type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_SCHEDULE_COLORED_LIGHTING ||
24
+ type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_MANUAL_COLORED_LIGHTING ||
25
+ type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_COLORED_LIGHTING_COLORS ||
26
+ type === types_1.CommandType.CMD_WALL_LIGHT_SETTINGS_DYNAMIC_LIGHTING_THEMES) {
27
+ if (typeof value === "string") {
28
+ const parsedValue = (0, utils_2.parseJSON)((0, utils_1.decodeBase64)(value).toString("utf8"), log);
29
+ if (parsedValue === undefined) {
30
+ log.warn("Non-parsable parameter value received from eufy cloud. Will be ignored.", { type: type, value: value });
28
31
  }
32
+ return parsedValue;
29
33
  }
30
- catch (error) {
31
- log.error(`Error readValue param ${type} `, error, type, value);
34
+ else {
35
+ return value; //return object
32
36
  }
33
- return "";
34
37
  }
35
38
  else if (type === types_1.CommandType.CMD_BAT_DOORBELL_SET_NOTIFICATION_MODE ||
36
39
  type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DETECTION_SENSITIVITY ||
@@ -41,15 +44,14 @@ class ParameterHelper {
41
44
  type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_DISTANCE ||
42
45
  type === types_1.CommandType.CMD_DOORBELL_DUAL_RADAR_WD_TIME ||
43
46
  type === types_1.CommandType.CMD_DOORBELL_DUAL_DELIVERY_GUARD_SWITCH ||
44
- type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE) {
47
+ type === types_1.CommandType.CMD_DOORBELL_DUAL_PACKAGE_GUARD_VOICE ||
48
+ type === types_1.CommandType.CMD_CAMERA_GARAGE_DOOR_SENSORS) {
45
49
  if (typeof value === "string") {
46
- try {
47
- return (0, utils_2.parseJSON)(value, log); //return object
48
- }
49
- catch (error) {
50
- log.error(`Error readValue param ${type} `, error, type, value);
50
+ const parsedValue = (0, utils_2.parseJSON)(value, log);
51
+ if (parsedValue === undefined) {
52
+ log.warn("Non-parsable parameter value received from eufy cloud. Will be ignored.", { type: type, value: value });
51
53
  }
52
- return "";
54
+ return parsedValue;
53
55
  }
54
56
  else {
55
57
  return value; //return object
@@ -1 +1 @@
1
- {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/http/parameter.ts"],"names":[],"mappings":";;;AAEA,wCAA2C;AAC3C,wCAA4C;AAC5C,oCAAqC;AACrC,mCAAoC;AAEpC,MAAa,eAAe;IAEjB,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;QAC5D,IAAI,KAAK,EAAE;YACP,IAAI,IAAI,KAAK,iBAAS,CAAC,WAAW;gBAC9B,IAAI,KAAK,iBAAS,CAAC,mBAAmB;gBACtC,IAAI,KAAK,mBAAW,CAAC,oCAAoC;gBACzD,IAAI,KAAK,mBAAW,CAAC,8BAA8B;gBACnD,IAAI,KAAK,mBAAW,CAAC,cAAc;gBACnC,IAAI,KAAK,mBAAW,CAAC,cAAc;gBACnC,IAAI,KAAK,mBAAW,CAAC,cAAc;gBACnC,IAAI,KAAK,mBAAW,CAAC,cAAc;gBACnC,IAAI,KAAK,mBAAW,CAAC,cAAc;gBACnC,IAAI,KAAK,mBAAW,CAAC,aAAa;gBAClC,IAAI,KAAK,mBAAW,CAAC,aAAa,EAAE;gBACpC,IAAI;oBACA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC3B,OAAO,IAAA,iBAAS,EAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;qBAC/D;yBAAM;wBACH,OAAO,KAAK,CAAC,CAAC,eAAe;qBAChC;iBACJ;gBAAC,OAAM,KAAK,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBACnE;gBACD,OAAO,EAAE,CAAC;aACb;iBAAM,IAAI,IAAI,KAAK,mBAAW,CAAC,sCAAsC;gBAClE,IAAI,KAAK,mBAAW,CAAC,gDAAgD;gBACrE,IAAI,KAAK,mBAAW,CAAC,wCAAwC;gBAC7D,IAAI,KAAK,mBAAW,CAAC,qCAAqC;gBAC1D,IAAI,KAAK,mBAAW,CAAC,oCAAoC;gBACzD,IAAI,KAAK,mBAAW,CAAC,oCAAoC;gBACzD,IAAI,KAAK,mBAAW,CAAC,mCAAmC;gBACxD,IAAI,KAAK,mBAAW,CAAC,+BAA+B;gBACpD,IAAI,KAAK,mBAAW,CAAC,uCAAuC;gBAC5D,IAAI,KAAK,mBAAW,CAAC,qCAAqC,EAAE;gBAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC3B,IAAI;wBACA,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe;qBAChD;oBAAC,OAAM,KAAK,EAAE;wBACX,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;qBACnE;oBACD,OAAO,EAAE,CAAC;iBACb;qBAAM;oBACH,OAAO,KAAK,CAAC,CAAC,eAAe;iBAChC;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,KAAa;QAChD,IAAI,KAAK,EAAE;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,IAAI,KAAK,iBAAS,CAAC,WAAW;gBAC9B,IAAI,KAAK,iBAAS,CAAC,mBAAmB;gBACtC,IAAI,KAAK,mBAAW,CAAC,oCAAoC;gBACzD,IAAI,KAAK,mBAAW,CAAC,8BAA8B,EAAE;gBACrD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACjD;YACD,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CAEJ;AAhED,0CAgEC"}
1
+ {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/http/parameter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { TypedEmitter } from "tiny-typed-emitter";
2
2
  import { HTTPApi } from "./api";
3
- import { AlarmTone, NotificationSwitchMode, DeviceType, FloodlightMotionTriggeredDistance, GuardMode, NotificationType, PowerSource, PropertyName, TimeFormat, CommandName, VideoTypeStoreToNAS, HB3DetectionTypes } from "./types";
3
+ import { AlarmTone, NotificationSwitchMode, DeviceType, FloodlightMotionTriggeredDistance, GuardMode, NotificationType, PowerSource, PropertyName, TimeFormat, CommandName, VideoTypeStoreToNAS, HB3DetectionTypes, WalllightNotificationType, DailyLightingType, MotionActivationMode, LightingActiveMode } from "./types";
4
4
  import { SnoozeDetail, StationListResponse } from "./models";
5
5
  import { IndexedProperty, PropertyMetadataAny, PropertyValue, PropertyValues, RawValues, StationEvents, Schedule } from "./interfaces";
6
- import { FilterDetectType, FilterEventType, FilterStorageType, P2PConnectionType, PanTiltDirection, VideoCodec, WatermarkSetting1, WatermarkSetting2, WatermarkSetting3, WatermarkSetting4 } from "../p2p/types";
6
+ import { DynamicLighting, RGBColor } from "../p2p/interfaces";
7
+ import { CalibrateGarageType, FilterDetectType, FilterEventType, FilterStorageType, P2PConnectionType, PanTiltDirection, VideoCodec, WatermarkSetting1, WatermarkSetting2, WatermarkSetting3, WatermarkSetting4, WatermarkSetting5 } from "../p2p/types";
7
8
  import { Device } from "./device";
8
9
  import { PushMessage } from "../push/models";
9
10
  export declare class Station extends TypedEmitter<StationEvents> {
@@ -30,7 +31,7 @@ export declare class Station extends TypedEmitter<StationEvents> {
30
31
  getStateChannel(): string;
31
32
  getRawStation(): StationListResponse;
32
33
  update(station: StationListResponse, cloudOnlyProperties?: boolean): void;
33
- updateProperty(name: string, value: PropertyValue): boolean;
34
+ updateProperty(name: string, value: PropertyValue, force?: boolean): boolean;
34
35
  updateRawProperties(values: RawValues): void;
35
36
  protected handlePropertyChange(metadata: PropertyMetadataAny, oldValue: PropertyValue, newValue: PropertyValue): void;
36
37
  updateRawProperty(type: number, value: string): boolean;
@@ -49,6 +50,7 @@ export declare class Station extends TypedEmitter<StationEvents> {
49
50
  static isStation(type: number): boolean;
50
51
  isStation(): boolean;
51
52
  isIntegratedDevice(): boolean;
53
+ isP2PConnectableDevice(): boolean;
52
54
  getDeviceType(): number;
53
55
  getHardwareVersion(): string;
54
56
  getMACAddress(): string;
@@ -119,7 +121,7 @@ export declare class Station extends TypedEmitter<StationEvents> {
119
121
  enableHomebaseChime(device: Device, value: boolean): Promise<void>;
120
122
  setHomebaseChimeRingtoneVolume(device: Device, value: number): Promise<void>;
121
123
  setHomebaseChimeRingtoneType(device: Device, value: number): Promise<void>;
122
- setNotificationType(device: Device, value: NotificationType): Promise<void>;
124
+ setNotificationType(device: Device, value: NotificationType | WalllightNotificationType): Promise<void>;
123
125
  setNotificationPerson(device: Device, value: boolean): Promise<void>;
124
126
  setNotificationPet(device: Device, value: boolean): Promise<void>;
125
127
  setNotificationAllOtherMotion(device: Device, value: boolean): Promise<void>;
@@ -154,7 +156,7 @@ export declare class Station extends TypedEmitter<StationEvents> {
154
156
  setStationTimeFormat(value: TimeFormat): Promise<void>;
155
157
  setRTSPStream(device: Device, value: boolean): Promise<void>;
156
158
  setAntiTheftDetection(device: Device, value: boolean): Promise<void>;
157
- setWatermark(device: Device, value: WatermarkSetting1 | WatermarkSetting2 | WatermarkSetting3 | WatermarkSetting4): Promise<void>;
159
+ setWatermark(device: Device, value: WatermarkSetting1 | WatermarkSetting2 | WatermarkSetting3 | WatermarkSetting4 | WatermarkSetting5): Promise<void>;
158
160
  enableDevice(device: Device, value: boolean): Promise<void>;
159
161
  startDownload(device: Device, path: string, cipher_id?: number): Promise<void>;
160
162
  cancelDownload(device: Device): Promise<void>;
@@ -186,7 +188,7 @@ export declare class Station extends TypedEmitter<StationEvents> {
186
188
  setLightSettingsColorTemperatureManual(device: Device, value: number): Promise<void>;
187
189
  setLightSettingsColorTemperatureMotion(device: Device, value: number): Promise<void>;
188
190
  setLightSettingsColorTemperatureSchedule(device: Device, value: number): Promise<void>;
189
- setLightSettingsMotionActivationMode(device: Device, value: number): Promise<void>;
191
+ setLightSettingsMotionActivationMode(device: Device, value: MotionActivationMode): Promise<void>;
190
192
  setVideoNightvisionImageAdjustment(device: Device, enabled: boolean): Promise<void>;
191
193
  setVideoColorNightvision(device: Device, enabled: boolean): Promise<void>;
192
194
  setAutoCalibration(device: Device, enabled: boolean): Promise<void>;
@@ -302,4 +304,26 @@ export declare class Station extends TypedEmitter<StationEvents> {
302
304
  private onDatabaseQueryLocal;
303
305
  private onDatabaseCountByDate;
304
306
  private onDatabaseDelete;
307
+ private onSensorStatus;
308
+ setMotionDetectionTypeHuman(device: Device, value: boolean): Promise<void>;
309
+ setMotionDetectionTypeAllOtherMotions(device: Device, value: boolean): Promise<void>;
310
+ private _setLightSettingsLightingActiveMode;
311
+ setLightSettingsManualLightingActiveMode(device: Device, value: LightingActiveMode): Promise<void>;
312
+ setLightSettingsManualDailyLighting(device: Device, value: DailyLightingType): Promise<void>;
313
+ setLightSettingsManualColoredLighting(device: Device, value: RGBColor): Promise<void>;
314
+ setLightSettingsManualDynamicLighting(device: Device, value: number): Promise<void>;
315
+ setLightSettingsMotionLightingActiveMode(device: Device, value: LightingActiveMode): Promise<void>;
316
+ setLightSettingsMotionDailyLighting(device: Device, value: DailyLightingType): Promise<void>;
317
+ setLightSettingsMotionColoredLighting(device: Device, value: RGBColor): Promise<void>;
318
+ setLightSettingsMotionDynamicLighting(device: Device, value: number): Promise<void>;
319
+ setLightSettingsScheduleLightingActiveMode(device: Device, value: LightingActiveMode): Promise<void>;
320
+ setLightSettingsScheduleDailyLighting(device: Device, value: DailyLightingType): Promise<void>;
321
+ setLightSettingsScheduleColoredLighting(device: Device, value: RGBColor): Promise<void>;
322
+ setLightSettingsScheduleDynamicLighting(device: Device, value: number): Promise<void>;
323
+ setLightSettingsColoredLightingColors(device: Device, value: Array<RGBColor>): Promise<void>;
324
+ setLightSettingsDynamicLightingThemes(device: Device, value: Array<DynamicLighting>): Promise<void>;
325
+ setDoorControlWarning(device: Device, value: boolean): Promise<void>;
326
+ openDoor(device: Device, value: boolean, doorId?: number): Promise<void>;
327
+ private onGarageDoorStatus;
328
+ calibrateGarageDoor(device: Device, doorId: number, type: CalibrateGarageType): Promise<void>;
305
329
  }