hoffmation-base 2.8.3 → 2.8.5
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.
- package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.d.ts +14 -0
- package/lib/server/devices/baseDeviceInterfaces/iCameraDevice.js +2 -0
- package/lib/server/devices/baseDeviceInterfaces/index.d.ts +1 -0
- package/lib/server/devices/baseDeviceInterfaces/index.js +1 -0
- package/lib/server/devices/blueIris/blueIrisCoordinator.d.ts +2 -2
- package/lib/server/devices/blueIris/cameraDevice.d.ts +7 -2
- package/lib/server/devices/blueIris/cameraDevice.js +16 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="iobroker" />
|
|
2
|
+
import { iMotionSensor } from './iMotionSensor';
|
|
3
|
+
import { CameraSettings } from '../../../models';
|
|
4
|
+
export interface iCameraDevice extends iMotionSensor {
|
|
5
|
+
settings: CameraSettings;
|
|
6
|
+
readonly lastImage: string;
|
|
7
|
+
readonly mpegStreamLink: string;
|
|
8
|
+
readonly h264IosStreamLink: string;
|
|
9
|
+
readonly currentImageLink: string;
|
|
10
|
+
readonly alarmBlockedByGriff: boolean;
|
|
11
|
+
readonly alarmBlockedByGriffTimeStamp: number;
|
|
12
|
+
onGriffUpdate(open: boolean): void;
|
|
13
|
+
update(stateName: string, state: ioBroker.State): void;
|
|
14
|
+
}
|
|
@@ -3,6 +3,7 @@ export * from './iActuator';
|
|
|
3
3
|
export * from './iBaseDevice';
|
|
4
4
|
export * from './iBatteryDevice';
|
|
5
5
|
export * from './iButtonSwitch';
|
|
6
|
+
export * from './iCameraDevice';
|
|
6
7
|
export * from './iEnergyManager';
|
|
7
8
|
export * from './iExcessEnergyConsumer';
|
|
8
9
|
export * from './iHandleSensor';
|
|
@@ -19,6 +19,7 @@ __exportStar(require("./iActuator"), exports);
|
|
|
19
19
|
__exportStar(require("./iBaseDevice"), exports);
|
|
20
20
|
__exportStar(require("./iBatteryDevice"), exports);
|
|
21
21
|
__exportStar(require("./iButtonSwitch"), exports);
|
|
22
|
+
__exportStar(require("./iCameraDevice"), exports);
|
|
22
23
|
__exportStar(require("./iEnergyManager"), exports);
|
|
23
24
|
__exportStar(require("./iExcessEnergyConsumer"), exports);
|
|
24
25
|
__exportStar(require("./iHandleSensor"), exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="iobroker" />
|
|
2
|
-
import {
|
|
2
|
+
import { iCameraDevice } from '../baseDeviceInterfaces';
|
|
3
3
|
export declare class BlueIrisCoordinator {
|
|
4
4
|
private static cameraDeviceMap;
|
|
5
|
-
static addDevice(device:
|
|
5
|
+
static addDevice(device: iCameraDevice, devName: string): void;
|
|
6
6
|
static update(idSplit: string[], state: ioBroker.State): void;
|
|
7
7
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="iobroker" />
|
|
2
|
-
import {
|
|
2
|
+
import { iCameraDevice, iRoomDevice } from '../baseDeviceInterfaces';
|
|
3
3
|
import { CameraSettings, LogLevel, RoomBase } from '../../../models';
|
|
4
4
|
import { LogDebugType } from '../../services';
|
|
5
5
|
import { DeviceInfo } from '../DeviceInfo';
|
|
6
6
|
import { DeviceCapability } from '../DeviceCapability';
|
|
7
7
|
import { DeviceType } from '../deviceType';
|
|
8
|
-
export declare class CameraDevice implements
|
|
8
|
+
export declare class CameraDevice implements iCameraDevice {
|
|
9
9
|
readonly blueIrisName: string;
|
|
10
10
|
get lastImage(): string;
|
|
11
11
|
settings: CameraSettings;
|
|
@@ -17,9 +17,13 @@ export declare class CameraDevice implements iRoomDevice, iMotionSensor {
|
|
|
17
17
|
private _movementDetectedCallback;
|
|
18
18
|
private _lastImage;
|
|
19
19
|
private _personDetected;
|
|
20
|
+
private _alarmGriffBlockCount;
|
|
21
|
+
private _alarmBlockedByGriffTimeStamp;
|
|
20
22
|
readonly mpegStreamLink: string;
|
|
21
23
|
readonly h264IosStreamLink: string;
|
|
22
24
|
readonly currentImageLink: string;
|
|
25
|
+
get alarmBlockedByGriffTimeStamp(): number;
|
|
26
|
+
get alarmBlockedByGriff(): boolean;
|
|
23
27
|
constructor(mqttName: string, roomName: string, blueIrisName: string);
|
|
24
28
|
private _detectionsToday;
|
|
25
29
|
get detectionsToday(): number;
|
|
@@ -42,6 +46,7 @@ export declare class CameraDevice implements iRoomDevice, iMotionSensor {
|
|
|
42
46
|
* @param pCallback Function that accepts the new state as parameter
|
|
43
47
|
*/
|
|
44
48
|
addMovementCallback(pCallback: (newState: boolean) => void): void;
|
|
49
|
+
onGriffUpdate(open: boolean): void;
|
|
45
50
|
persistMotionSensor(): void;
|
|
46
51
|
update(stateName: string, state: ioBroker.State): void;
|
|
47
52
|
updateMovement(newState: boolean): void;
|
|
@@ -16,6 +16,12 @@ class CameraDevice {
|
|
|
16
16
|
get lastImage() {
|
|
17
17
|
return this._lastImage;
|
|
18
18
|
}
|
|
19
|
+
get alarmBlockedByGriffTimeStamp() {
|
|
20
|
+
return this._alarmBlockedByGriffTimeStamp;
|
|
21
|
+
}
|
|
22
|
+
get alarmBlockedByGriff() {
|
|
23
|
+
return this._alarmGriffBlockCount > 0;
|
|
24
|
+
}
|
|
19
25
|
constructor(mqttName, roomName, blueIrisName) {
|
|
20
26
|
var _a;
|
|
21
27
|
this.settings = new models_1.CameraSettings();
|
|
@@ -26,6 +32,8 @@ class CameraDevice {
|
|
|
26
32
|
this._movementDetectedCallback = [];
|
|
27
33
|
this._lastImage = '';
|
|
28
34
|
this._personDetected = false;
|
|
35
|
+
this._alarmGriffBlockCount = 0;
|
|
36
|
+
this._alarmBlockedByGriffTimeStamp = 0;
|
|
29
37
|
this.mpegStreamLink = '';
|
|
30
38
|
this.h264IosStreamLink = '';
|
|
31
39
|
this.currentImageLink = '';
|
|
@@ -102,6 +110,13 @@ class CameraDevice {
|
|
|
102
110
|
addMovementCallback(pCallback) {
|
|
103
111
|
this._movementDetectedCallback.push(pCallback);
|
|
104
112
|
}
|
|
113
|
+
onGriffUpdate(open) {
|
|
114
|
+
this._alarmGriffBlockCount += open ? 1 : -1;
|
|
115
|
+
if (this._alarmGriffBlockCount == 1) {
|
|
116
|
+
this._alarmBlockedByGriffTimeStamp = new Date().getTime();
|
|
117
|
+
}
|
|
118
|
+
this.log(models_1.LogLevel.Debug, `Handle change to open (${open}), new open amount: ${this._alarmGriffBlockCount}`);
|
|
119
|
+
}
|
|
105
120
|
persistMotionSensor() {
|
|
106
121
|
var _a;
|
|
107
122
|
(_a = services_1.Utils.dbo) === null || _a === void 0 ? void 0 : _a.persistMotionSensor(this);
|
|
@@ -129,7 +144,7 @@ class CameraDevice {
|
|
|
129
144
|
this._lastImage = state.val;
|
|
130
145
|
services_1.Utils.guardedTimeout(() => {
|
|
131
146
|
// Give Person Detected Update some time, as otherwise personDetected might still be false
|
|
132
|
-
if (this.settings.alertPersonOnTelegram && this._personDetected) {
|
|
147
|
+
if (this.settings.alertPersonOnTelegram && this._personDetected && !this.alarmBlockedByGriff) {
|
|
133
148
|
services_1.TelegramService.sendImage(`${this.name} detected Person`, new models_1.Base64Image(this._lastImage, 'person_alert'));
|
|
134
149
|
}
|
|
135
150
|
}, 1000);
|