Skip to content

Commit 07ede91

Browse files
authored
Merge pull request #30 from matijse/split-event-types
Split motion/person detected, add crying/sound/pet detected
2 parents 2b2396b + 4b920a8 commit 07ede91

File tree

5 files changed

+354
-395
lines changed

5 files changed

+354
-395
lines changed

enums/device_type.js

+95-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,105 @@
1-
exports.DeviceType = {
2-
OTHER: 'UNKNOWN',
3-
EUFYCAM_E: 'T8112',
1+
const { NotificationType } = require('./notification_type')
2+
3+
const deviceType = {
4+
DOOR_SENSOR: 'T8900',
45
EUFYCAM_2: 'T8114',
5-
EUFYCAM_2_PRO: 'T8140',
66
EUFYCAM_2C: 'T8113',
77
EUFYCAM_2C_PRO: 'T8142',
8+
EUFYCAM_2_PRO: 'T8140',
9+
EUFYCAM_E: 'T8112',
810
FLOODLIGHT_CAMERA: 'T8420',
911
INDOOR_CAM: 'T8400',
1012
INDOOR_CAM_PAN_TILT: 'T8410',
1113
MOTION_SENSOR: 'T8910',
12-
VIDEO_DOORBELL_2K_POWERED: 'T8200',
14+
VIDEO_DOORBELL_1080P_BATTERY: 'T8220',
15+
VIDEO_DOORBELL_1080P_POWERED: 'T8221',
1316
VIDEO_DOORBELL_2K_BATTERY: 'T8210',
14-
DOOR_SENSOR: 'T8900',
17+
VIDEO_DOORBELL_2K_POWERED: 'T8200',
18+
VIDEO_DOORBELL_2K_POWERED2: 'T8202',
19+
}
20+
21+
const capabilities = {
22+
[deviceType.DOOR_SENSOR]: [
23+
NotificationType.DOOR_SENSOR_CHANGED,
24+
],
25+
[deviceType.EUFYCAM_2]: [
26+
NotificationType.EVENT_MOTION_DETECTED,
27+
NotificationType.EVENT_PERSON_DETECTED,
28+
NotificationType.THUMBNAIL,
29+
],
30+
[deviceType.EUFYCAM_2C]: [
31+
NotificationType.EVENT_MOTION_DETECTED,
32+
NotificationType.EVENT_PERSON_DETECTED,
33+
NotificationType.THUMBNAIL,
34+
],
35+
[deviceType.EUFYCAM_2C_PRO]: [
36+
NotificationType.EVENT_MOTION_DETECTED,
37+
NotificationType.EVENT_PERSON_DETECTED,
38+
NotificationType.THUMBNAIL,
39+
],
40+
[deviceType.EUFYCAM_2_PRO]: [
41+
NotificationType.EVENT_MOTION_DETECTED,
42+
NotificationType.EVENT_PERSON_DETECTED,
43+
NotificationType.THUMBNAIL,
44+
],
45+
[deviceType.EUFYCAM_E]: [
46+
NotificationType.EVENT_MOTION_DETECTED,
47+
NotificationType.THUMBNAIL,
48+
],
49+
[deviceType.FLOODLIGHT_CAMERA]: [
50+
NotificationType.EVENT_MOTION_DETECTED,
51+
NotificationType.THUMBNAIL,
52+
],
53+
[deviceType.INDOOR_CAM]: [
54+
NotificationType.EVENT_MOTION_DETECTED,
55+
NotificationType.EVENT_PERSON_DETECTED,
56+
NotificationType.EVENT_CRYING_DETECTED,
57+
NotificationType.EVENT_SOUND_DETECTED,
58+
NotificationType.EVENT_PET_DETECTED,
59+
NotificationType.THUMBNAIL,
60+
],
61+
[deviceType.INDOOR_CAM_PAN_TILT]: [
62+
NotificationType.EVENT_MOTION_DETECTED,
63+
NotificationType.EVENT_PERSON_DETECTED,
64+
NotificationType.EVENT_CRYING_DETECTED,
65+
NotificationType.EVENT_SOUND_DETECTED,
66+
NotificationType.EVENT_PET_DETECTED,
67+
NotificationType.THUMBNAIL,
68+
],
69+
[deviceType.MOTION_SENSOR]: [
70+
NotificationType.EVENT_MOTION_DETECTED,
71+
],
72+
[deviceType.VIDEO_DOORBELL_1080P_BATTERY]: [
73+
NotificationType.EVENT_MOTION_DETECTED,
74+
NotificationType.EVENT_PERSON_DETECTED,
75+
NotificationType.THUMBNAIL,
76+
],
77+
[deviceType.VIDEO_DOORBELL_1080P_POWERED]: [
78+
NotificationType.EVENT_MOTION_DETECTED,
79+
NotificationType.EVENT_PERSON_DETECTED,
80+
NotificationType.EVENT_DOORBELL_PRESSED,
81+
NotificationType.THUMBNAIL,
82+
],
83+
[deviceType.VIDEO_DOORBELL_2K_BATTERY]: [
84+
NotificationType.EVENT_MOTION_DETECTED,
85+
NotificationType.EVENT_PERSON_DETECTED,
86+
NotificationType.EVENT_DOORBELL_PRESSED,
87+
NotificationType.THUMBNAIL,
88+
],
89+
[deviceType.VIDEO_DOORBELL_2K_POWERED]: [
90+
NotificationType.EVENT_MOTION_DETECTED,
91+
NotificationType.EVENT_PERSON_DETECTED,
92+
NotificationType.EVENT_DOORBELL_PRESSED,
93+
NotificationType.THUMBNAIL,
94+
],
95+
[deviceType.VIDEO_DOORBELL_2K_POWERED2]: [
96+
NotificationType.EVENT_MOTION_DETECTED,
97+
NotificationType.EVENT_PERSON_DETECTED,
98+
NotificationType.EVENT_DOORBELL_PRESSED,
99+
NotificationType.THUMBNAIL,
100+
],
15101
}
16102

17-
exports.supportedDevices = ['T8112', 'T8114', 'T8113', 'T8140', 'T8142', 'T8420', 'T8400', 'T8410', 'T8910', 'T8200', 'T8210', 'T8900']
103+
exports.DeviceType = deviceType
104+
exports.DeviceCapabilities = capabilities
105+
exports.supportedDevices = Object.values(deviceType)

enums/notification_type.js

+25-15
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
1-
module.exports = {
2-
EVENT_MOTION_DETECTED: 3101, // payload.payload.event_type
3-
EVENT_SOMEONE_SPOTTED: 3102, // payload.payload.event_type OR payload.doorbell.event_type
4-
EVENT_DOORBELL_PRESSED: 3103, // payload.payload.event_type OR payload.doorbell.event_type
5-
EVENT_CRYING_DETECTED: 3104, // payload.payload.event_type OR payload.doorbell.event_type
6-
EVENT_SOUND_DETECTED: 3105, // payload.payload.event_type
7-
EVENT_PET_DETECTED: 3106, // payload.payload.event_type
8-
CAM_SOMEONE_SPOTTED: 14, // payload.type
9-
FLOODLIGHT_MOTION_DETECTED: 3, // payload.type
10-
MOTION_SENSOR_TRIGGERED: 10, // payload.type
11-
CAM_2C_SOMEONE_SPOTTED: 8, // payload.type
12-
CAM_2_SOMEONE_SPOTTED: 9, // payload.type
13-
CAM_2C_PRO_MOTION_DETECTED: 15, // payload.type
14-
DOOR_SENSOR_CHANGED: 2, // payload.type
15-
CAM_E_MOTION_DETECTED: 1, // payload.type
1+
const notificationType = {
2+
// Based on notification event_type
3+
EVENT_MOTION_DETECTED: 3101,
4+
EVENT_PERSON_DETECTED: 3102,
5+
EVENT_DOORBELL_PRESSED: 3103,
6+
EVENT_CRYING_DETECTED: 3104,
7+
EVENT_SOUND_DETECTED: 3105,
8+
EVENT_PET_DETECTED: 3106,
9+
10+
// Custom notifications
11+
DOOR_SENSOR_CHANGED: 100001,
12+
THUMBNAIL: 100002,
1613
}
14+
15+
const notificationTypeByString = {
16+
'Motion is detected': 3101,
17+
'Someone has been spotted': 3102,
18+
'Trigger is open': 100001,
19+
'Trigger is close': 100001,
20+
}
21+
22+
exports.NotificationType = notificationType
23+
exports.supportedNotificationTypes = Object.values(notificationType)
24+
25+
exports.NotificationTypeByString = notificationTypeByString
26+
exports.supportedNotificationStrings = Object.keys(notificationTypeByString)

0 commit comments

Comments
 (0)