Skip to content

Commit 7e27669

Browse files
authored
Merge pull request #646 from bropat/develop
Develop > Master
2 parents 14cf11e + 989a7f2 commit 7e27669

File tree

7 files changed

+114
-2
lines changed

7 files changed

+114
-2
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
[![NPM](https://nodei.co/npm/eufy-security-client.png?downloads=true)](https://nodei.co/npm/eufy-security-client/)
1313

14+
Join us on Discord:
15+
16+
<a target="_blank" href="https://discord.gg/5wjQ2asb64"><img src="https://dcbadge.limes.pink/api/server/5wjQ2asb64" alt="" /></a>
17+
1418
The development of this shared library was inspired by the work of the following people:
1519

1620
* FuzzyMistborn (<https://github.com/FuzzyMistborn/python-eufy-security>)
@@ -95,6 +99,10 @@ If more devices work (or also not) please report them by opening a GitHub issue.
9599

96100
Please use GitHub issues for this.
97101

102+
## Deployment
103+
104+
Instructions aimed at maintainers for deploying a new version: [Deployment](docs/deployment.md)
105+
98106
## Changelog
99107

100108
### 3.2.0 (2025-04-02)

docs/_media/indoorcamE30_large.jpeg

27.2 KB
Loading

docs/_media/indoorcamE30_small.jpeg

2.23 KB
Loading

docs/deployment.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Deployment instructions
2+
3+
## Dependency tree
4+
5+
There are two integrations that depend on eufy-security-ckient, one for Home Assistant and another one for Homey.
6+
7+
The dependency tree between all the involved repos looks like this:
8+
9+
- Base library (this repo): [bropat/eufy-security-client](https://github.com/bropat/eufy-security-client)
10+
- WebSocket server wrapper: [bropat/eufy-security-ws](https://github.com/bropat/eufy-security-ws)
11+
- Homey integration: [martinjpoppen/com.eufylife.security](https://github.com/martijnpoppen/com.eufylife.security)
12+
- Home Assistant Add-on: [bropat/hassio-eufy-security-ws](https://github.com/bropat/hassio-eufy-security-ws)
13+
- Home Assistant integration [fuatakgun/eufy_security](https://github.com/fuatakgun/eufy_security)
14+
15+
The instructions below apply only to the bropat repos.
16+
17+
## eufy-security-client
18+
19+
How to deploy a new version of eufy-security-client:
20+
21+
1. Update all the npm dependencies.
22+
2. Review and merge into the [develop](https://github.com/bropat/eufy-security-client/tree/develop) branch the PRs that should be included in the next release.
23+
3. Merge everything from `develop` into [master](https://github.com/bropat/eufy-security-client/tree/master).
24+
4. Publish a new [release and tag](https://github.com/bropat/eufy-security-client/releases/new) out of the latest changes merged into `master`.
25+
5. Copy the autogenerated release notes and paste them in the [Changelog](https://github.com/bropat/eufy-security-client?tab=readme-ov-file#changelog) section of the README.md. Submit a PR with those changes and merge them.
26+
6. Using that new release from `master`, publish a new [eufy-security-client npm package version](https://www.npmjs.com/package/eufy-security-client).
27+
28+
## eufy-security-ws
29+
30+
[Instructions](https://github.com/bropat/eufy-security-ws/tree/develop/docs/deployment.md).
31+
32+
## hassio-eufy-security-ws
33+
34+
[Instructions](https://github.com/bropat/hassio-eufy-security-ws/tree/develop/eufy-security-ws/deployment.md).

docs/supported_devices.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
| ![T8401 image](_media/soloindoorcamc24_small.jpg) | Indoor Cam 1080p (T8401) | :heavy_check_mark: | |
5454
| ![T8414 image](_media/indoorcammini_small.jpg) | Indoor Cam Mini (T8414) | :heavy_check_mark: | Firmware: 3.1.1.7 (20220427) |
5555
| ![T8416 image](_media/indoorcams350_small.jpg) | Indoor Cam S350 (T8416) | :heavy_check_mark: | Firmware: 1.5.1.0 (20240715) |
56-
| ![T8416 image](_media/indoorcamC210_small.png) | Indoor Cam C210 (T8416) | :heavy_check_mark: | |
56+
| ![T8416 image](_media/indoorcamE30_small.jpeg) | Indoor Cam E30 (T8417) | :heavy_check_mark: | |
57+
| ![T8416 image](_media/indoorcamC210_small.png) | Indoor Cam C210 (T8419) | :heavy_check_mark: | |
5758
| ![T8416 image](_media/indoorcamC220_small.png) | Indoor Cam C220 (T8W11C) | :heavy_check_mark: | |
5859
| ![T8150 image](_media/4g_lte_starlight_small.jpg) | 4G LTE Starlight (T8150) | :heavy_check_mark: | |
5960
| ![T8150 image](_media/4g_lte_starlight_small.jpg) | 4G Camera S230 (T8151; 4G LTE Starlight) | :heavy_check_mark: | Firmware: 1.1.3.7 (20230730) |

src/http/device.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1029,6 +1029,7 @@ export class Device extends TypedEmitter<DeviceEvents> {
10291029
type == DeviceType.CAMERA_GARAGE_T8452 ||
10301030
type == DeviceType.CAMERA_FG ||
10311031
type == DeviceType.INDOOR_PT_CAMERA_S350 ||
1032+
type == DeviceType.INDOOR_PT_CAMERA_E30 ||
10321033
type == DeviceType.INDOOR_PT_CAMERA_C210 ||
10331034
type == DeviceType.INDOOR_PT_CAMERA_C220 ||
10341035
type == DeviceType.SMART_DROP)
@@ -1149,6 +1150,7 @@ export class Device extends TypedEmitter<DeviceEvents> {
11491150
type == DeviceType.INDOOR_OUTDOOR_CAMERA_2K ||
11501151
type == DeviceType.INDOOR_COST_DOWN_CAMERA ||
11511152
type == DeviceType.INDOOR_PT_CAMERA_S350 ||
1153+
type == DeviceType.INDOOR_PT_CAMERA_E30 ||
11521154
type == DeviceType.INDOOR_PT_CAMERA_C210 ||
11531155
type == DeviceType.INDOOR_PT_CAMERA_C220)
11541156
return true;
@@ -1163,6 +1165,7 @@ export class Device extends TypedEmitter<DeviceEvents> {
11631165
type == DeviceType.INDOOR_COST_DOWN_CAMERA ||
11641166
type == DeviceType.OUTDOOR_PT_CAMERA ||
11651167
type == DeviceType.INDOOR_PT_CAMERA_S350 ||
1168+
type == DeviceType.INDOOR_PT_CAMERA_E30 ||
11661169
type == DeviceType.INDOOR_PT_CAMERA_C210 ||
11671170
type == DeviceType.INDOOR_PT_CAMERA_C220)
11681171
return true;
@@ -1177,7 +1180,8 @@ export class Device extends TypedEmitter<DeviceEvents> {
11771180
}
11781181

11791182
static isIndoorPanAndTiltCameraS350(type: number): boolean {
1180-
if (type == DeviceType.INDOOR_PT_CAMERA_S350 ||
1183+
if (type == DeviceType.INDOOR_PT_CAMERA_S350 ||
1184+
type == DeviceType.INDOOR_PT_CAMERA_E30 ||
11811185
type == DeviceType.INDOOR_PT_CAMERA_C210 ||
11821186
type == DeviceType.INDOOR_PT_CAMERA_C220)
11831187
return true;

src/http/types.ts

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export enum DeviceType {
6666
CAMERA_GUN = 101,
6767
CAMERA_SNAIL = 102,
6868
INDOOR_PT_CAMERA_S350 = 104,
69+
INDOOR_PT_CAMERA_E30 = 105,
6970
CAMERA_FG = 110, //T8150
7071
CAMERA_GARAGE_T8453_COMMON = 131,
7172
CAMERA_GARAGE_T8452 = 132,
@@ -6903,6 +6904,59 @@ export const DeviceProperties: Properties = {
69036904
[PropertyName.DeviceRTSPStreamUrl]: DeviceRTSPStreamUrlProperty,
69046905
[PropertyName.DeviceVideoTypeStoreToNAS]: DeviceVideoTypeStoreToNASProperty,
69056906
},
6907+
[DeviceType.INDOOR_PT_CAMERA_E30]: {
6908+
...GenericDeviceProperties,
6909+
[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty,
6910+
[PropertyName.DeviceWifiSignalLevel]: DeviceWifiSignalLevelProperty,
6911+
[PropertyName.DeviceEnabled]: DeviceEnabledIndoorS350Property,
6912+
[PropertyName.DeviceAutoNightvision]: DeviceAutoNightvisionProperty,
6913+
[PropertyName.DeviceMotionDetection]: DeviceMotionDetectionIndoorSoloFloodProperty,
6914+
[PropertyName.DeviceSoundDetection]: DeviceSoundDetectionProperty,
6915+
[PropertyName.DeviceWatermark]: DeviceWatermarkProperty,
6916+
[PropertyName.DeviceMotionDetected]: DeviceMotionDetectedProperty,
6917+
[PropertyName.DevicePersonDetected]: DevicePersonDetectedProperty,
6918+
[PropertyName.DevicePetDetected]: DevicePetDetectedProperty,
6919+
[PropertyName.DeviceSoundDetected]: DeviceSoundDetectedProperty,
6920+
[PropertyName.DeviceSoundDetectionType]: DeviceSoundDetectionTypeS350Property,
6921+
[PropertyName.DeviceSoundDetectionSensitivity]: DeviceSoundDetectionSensitivityProperty,
6922+
[PropertyName.DeviceCryingDetected]: DeviceCryingDetectedProperty,
6923+
[PropertyName.DeviceStatusLed]: DeviceStatusLedIndoorFloodProperty,
6924+
[PropertyName.DevicePicture]: DevicePictureProperty,
6925+
[PropertyName.DevicePictureUrl]: DevicePictureUrlProperty,
6926+
[PropertyName.DeviceMotionDetectionSensitivity]: DeviceMotionDetectionSensitivityIndoorProperty,
6927+
[PropertyName.DeviceMicrophone]: DeviceMicrophoneProperty,
6928+
[PropertyName.DeviceSpeaker]: DeviceSpeakerProperty,
6929+
[PropertyName.DeviceSpeakerVolume]: DeviceSpeakerVolumeIndoorFloodDoorbellProperty,
6930+
[PropertyName.DeviceAudioRecording]: DeviceAudioRecordingIndoorSoloFloodlightProperty,
6931+
[PropertyName.DeviceMotionDetectionTypeHuman]: DeviceMotionHB3DetectionTypeHumanProperty,
6932+
[PropertyName.DeviceMotionDetectionTypePet]: DeviceMotionHB3DetectionTypePetProperty,
6933+
[PropertyName.DeviceMotionDetectionTypeAllOtherMotions]: DeviceMotionHB3DetectionTypeAllOtherMotionsProperty,
6934+
[PropertyName.DeviceVideoStreamingQuality]: DeviceVideoStreamingQualityS350Property,
6935+
[PropertyName.DeviceVideoRecordingQuality]: DeviceVideoRecordingQualityS350Property,
6936+
[PropertyName.DeviceNotificationType]: DeviceNotificationTypeIndoorFloodlightProperty,
6937+
[PropertyName.DeviceNotificationPerson]: DeviceNotificationPersonS350Property,
6938+
[PropertyName.DeviceNotificationPet]: DeviceNotificationPetS350Property,
6939+
[PropertyName.DeviceNotificationAllOtherMotion]: DeviceNotificationAllOtherMotionS350Property,
6940+
[PropertyName.DeviceNotificationAllSound]: DeviceNotificationAllSoundS350Property,
6941+
[PropertyName.DeviceNotificationCrying]: DeviceNotificationCryingS350Property,
6942+
[PropertyName.DeviceSnooze]: DeviceSnoozeProperty,
6943+
[PropertyName.DeviceSnoozeTime]: DeviceSnoozeTimeProperty,
6944+
[PropertyName.DeviceSnoozeStartTime]: DeviceSnoozeStartTimeProperty,
6945+
[PropertyName.DevicePersonName]: DevicePersonNameProperty,
6946+
[PropertyName.DeviceMotionTracking]: DeviceMotionTrackingProperty,
6947+
[PropertyName.DeviceSoundDetectionRoundLook]: DeviceSoundDetectionRoundLookS350Property,
6948+
[PropertyName.DeviceRotationSpeed]: DeviceRotationSpeedProperty,
6949+
[PropertyName.DeviceMotionAutoCruise]: DeviceMotionAutoCruiseProperty,
6950+
[PropertyName.DeviceAutoCalibration]: DeviceAutoCalibrationProperty,
6951+
[PropertyName.DeviceDualCamWatchViewMode]: DeviceDualCamWatchViewModeS340Property,
6952+
[PropertyName.DeviceImageMirrored]: DeviceImageMirroredProperty,
6953+
[PropertyName.DeviceNotificationIntervalTime]: DeviceNotificationIntervalTimeProperty,
6954+
[PropertyName.DeviceContinuousRecording]: DeviceContinuousRecordingProperty,
6955+
[PropertyName.DeviceContinuousRecordingType]: DeviceContinuousRecordingTypeProperty,
6956+
[PropertyName.DeviceRTSPStream]: DeviceRTSPStreamProperty,
6957+
[PropertyName.DeviceRTSPStreamUrl]: DeviceRTSPStreamUrlProperty,
6958+
[PropertyName.DeviceVideoTypeStoreToNAS]: DeviceVideoTypeStoreToNASProperty,
6959+
},
69066960
[DeviceType.INDOOR_PT_CAMERA_C210]: {
69076961
...GenericDeviceProperties,
69086962
[PropertyName.DeviceWifiRSSI]: DeviceWifiRSSIProperty,
@@ -8713,6 +8767,17 @@ export const StationProperties: Properties = {
87138767
[PropertyName.StationSdCapacity]: StationSdCapacityProperty,
87148768
[PropertyName.StationSdCapacityAvailable]: StationSdAvailableCapacityProperty,
87158769
},
8770+
[DeviceType.INDOOR_PT_CAMERA_E30]: {
8771+
...BaseStationProperties,
8772+
[PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty,
8773+
[PropertyName.StationMacAddress]: StationMacAddressProperty,
8774+
[PropertyName.StationGuardMode]: StationGuardModeProperty,
8775+
[PropertyName.StationCurrentMode]: StationCurrentModeProperty,
8776+
[PropertyName.StationTimeFormat]: StationTimeFormatProperty,
8777+
[PropertyName.StationTimeZone]: StationTimeZoneProperty,
8778+
[PropertyName.StationAlarm]: StationAlarmProperty,
8779+
[PropertyName.StationAlarmType]: StationAlarmTypeProperty,
8780+
},
87168781
[DeviceType.INDOOR_PT_CAMERA_C210]: {
87178782
...BaseStationProperties,
87188783
[PropertyName.StationLANIpAddress]: StationLanIpAddressStandaloneProperty,

0 commit comments

Comments
 (0)