Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #45

Merged
merged 42 commits into from Nov 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
1e850ad
BREAK: new Eufy Library
martijnpoppen Oct 16, 2022
7f4b7b6
FIX: pairing and initial device init
martijnpoppen Oct 17, 2022
55be3d7
Bump version to v3.0.11
martijnpoppen Oct 17, 2022
6e03fa2
FIX: error in notitifcations
martijnpoppen Oct 17, 2022
e1de1db
Bump version to v3.0.12
martijnpoppen Oct 17, 2022
0d242b8
NEW: add trigger chime to Homebase
martijnpoppen Oct 17, 2022
9ed8037
FIX: Alarm_arm_mode & homebase persistent notifications
martijnpoppen Oct 20, 2022
49243e3
FIX: alarm_arm_mode
martijnpoppen Oct 20, 2022
478be85
Bump version to v3.0.13
martijnpoppen Oct 20, 2022
bf4f0e7
FIX: notification error
martijnpoppen Oct 20, 2022
b6a2383
FIX: memory load | FIX: blank screen on mobile | FIX: image not parse…
martijnpoppen Oct 26, 2022
de42860
Bump version to v3.0.14
martijnpoppen Oct 26, 2022
357caed
FIX: mobile app empty screen
martijnpoppen Oct 27, 2022
2e68d5e
Bump version to v3.0.15
martijnpoppen Oct 27, 2022
8cbdcfc
FIX: actions buttons + FIX: device settings
martijnpoppen Oct 28, 2022
7dad994
FIX: images not updating properly
martijnpoppen Oct 28, 2022
24cd614
Bump version to v3.0.16
martijnpoppen Oct 28, 2022
ca37135
Bump version to v3.0.17
martijnpoppen Oct 29, 2022
fc12df4
FIX: outdated motion image
martijnpoppen Oct 29, 2022
c6d70af
FIX: outdated motion image
martijnpoppen Oct 29, 2022
7a488a1
Bump version to v3.0.18
martijnpoppen Oct 29, 2022
3654d20
FIX: alarm event | FIX: image update | NEW: trigger Doorbell sound on…
martijnpoppen Oct 31, 2022
349f6f2
Bump version to v3.1.0
martijnpoppen Oct 31, 2022
0be4a5d
Bump version to v3.1.1
martijnpoppen Oct 31, 2022
843b737
Bump version to v3.1.2
martijnpoppen Oct 31, 2022
5f38f0c
Bump version to v3.1.3
Nov 1, 2022
648f62a
Bump version to v3.1.4
Nov 1, 2022
ab2abd7
Bump version to v3.1.5
Nov 1, 2022
ef7974e
FIX: pairing flow
martijnpoppen Nov 1, 2022
e70caeb
FIX: pairing
martijnpoppen Nov 1, 2022
ff01c77
FIX: error handling
martijnpoppen Nov 1, 2022
f9c7361
NEW: add captcha to login | NEW: add repair option | FIX: remove sett…
martijnpoppen Nov 2, 2022
01b331a
FIX: pairing
martijnpoppen Nov 2, 2022
571662b
NEW: show repair message
martijnpoppen Nov 2, 2022
784eeb2
FIX: image update
martijnpoppen Nov 2, 2022
a714cbe
Bump version to v3.2.0
martijnpoppen Nov 2, 2022
4f28f60
Bump version to v3.2.1
martijnpoppen Nov 2, 2022
473f9dc
FIX: repair | FIX: issue with event helper
martijnpoppen Nov 3, 2022
f65df62
FIX: settings page error
martijnpoppen Nov 3, 2022
2775ffb
Bump version to v3.2.2
martijnpoppen Nov 3, 2022
ce6963c
Bump version to v3.2.3
martijnpoppen Nov 3, 2022
0a610b5
Merge branch 'main' into develop
martijnpoppen Nov 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 6 additions & 4 deletions .gitignore
@@ -1,4 +1,10 @@
# Logs
env.json
node_modules/
assets/.DS_Store

.DS_Store

logs
*.log
npm-debug.log*
Expand Down Expand Up @@ -87,10 +93,6 @@ typings/
# DynamoDB Local files
.dynamodb/

.DS_Store

package-lock.json
eufy-homey-client
build/


Expand Down
48 changes: 48 additions & 0 deletions .homeychangelog.json
Expand Up @@ -970,5 +970,53 @@
},
"2.36.9": {
"en": "FIX: light for outdoorcam pro | NEW: add status led flowcards"
},
"3.0.12": {
"en": "BREAK: Update Eufy Library | BREAK: Update to Homey SDK 3 | Check on community page for full changelog"
},
"3.0.13": {
"en": "FIX: several fixes for new library - see community topic for more info"
},
"3.0.14": {
"en": "FIX: several fixes for new library - see community topic for more info"
},
"3.0.15": {
"en": "FIX: mobile app empty screen"
},
"3.0.16": {
"en": "FIX: motion image not fetched properly"
},
"3.0.17": {
"en": "FIX: outdate motion image "
},
"3.0.18": {
"en": "FIX: outdated motion image"
},
"3.1.0": {
"en": "FIX: alarm event | FIX: image update | NEW: trigger Doorbell sound on Homebase"
},
"3.1.1": {
"en": "FIX: crash in ntfy"
},
"3.1.2": {
"en": "FIX: force notification settings for cameras"
},
"3.1.3": {
"en": "FIX: issue in NotificationType"
},
"3.1.4": {
"en": "FIX: issue in NotificationType"
},
"3.1.5": {
"en": "FIX: issue in NotificationType"
},
"3.2.0": {
"en": "NEW: add captcha to login | NEW: add repair option | FIX: remove settings page"
},
"3.2.1": {
"en": "FIX: pair and repair process"
},
"3.2.2": {
"en": "FIX: repair | FIX: issue with event helper"
}
}
35 changes: 4 additions & 31 deletions README.md
@@ -1,8 +1,6 @@
# Eufy Security

Add support for Eufy Cam in Homey.
Based on: https://github.com/martijnpoppen/eufy-node-client

Link: https://homey.app/nl-nl/app/com.eufylife.security/Eufy-Security/

# Account Information
Expand All @@ -13,34 +11,9 @@ use the mobile app to create a secondary "guest" account with a separate email a
and use it with this library.

# Usage

- Install this app on your Homey.
- Go to the app settings and provide your Username and Password. Click Save Changes
- Other keys will be fetched and filled in to the settings page.
- Connect a device to Eufy Security
- Create a flow with Eufy Security devices

## Current features:

- Turn on/off camera (EufyCam pan&tilt will turn its lens)
- Set Security mode (Home, Away, Disarmed, Schedule)
- Trigger events based on changed Security modes. Possible combination with keypad.
- Get notifications based on detection modes for specific devices. (Motion, Face, Sound and Doorbell Press)
- Get images when motion is detected
- See last motion events
- Generic alarm for each camera -> Heimdall (goes off for all events except doorbell press)
- Start Stream and retrieve RTSP url

---

 

## Donation

If this project help you reduce time to develop, you can give me a cup of coffee :)

[![paypal](https://www.paypalobjects.com/en_US/NL/i/btn/btn_donateCC_LG.gif)](https://paypal.me/martijnpoppen)

 
- Go to `add devices`
- Provide your Username and Password. Click Next
- Available devices show up

---
---
21 changes: 1 addition & 20 deletions README.txt
Expand Up @@ -11,23 +11,4 @@ Usage
- Install this app on your Homey.
- Go to `add devices`
- Provide your Username and Password. Click Next
- Available devices show up

Current features:
- Turn on/off camera (EufyCam pan&tilt will turn its lens)
- Set Security mode (Home, Away, Disarmed, Schedule)
- Trigger events based on changed Security modes. Possible combination with keypad.
- Get notifications based on detection modes for specific devices. (Motion, Face, Sound and Doorbell Press)
- Get images when motion is detected
- See last motion events
- Generic alarm for each camera -> Heimdall (goes off for all events except doorbell press)
- Start Stream and retrieve RTSP url
- Toggle ALARM for Homebase - This also enables the generic alarm for the Homebase (Heimdall)
- Trigger flows when alarms turns on
- Trigger quickResponses for doorbells
- Trigger HDR
- Trigger WDR
- Trigger night vision
- Reboot Hub or stand-alone cameras
- Force Eufy Homebase notifications to prevent wrong data
- Battery status for Battery devices
- Available devices show up
41 changes: 5 additions & 36 deletions api.js
@@ -1,36 +1,5 @@
'use strict';

const Homey = require('homey');

module.exports = [
{
method: 'PUT',
path: '/login',
fn: async function (args, callback) {
const result = await Homey.app.eufyLogin(args.body);
if (result instanceof Error) return callback(result);
return callback(null, result);
}
},
{
method: 'PUT',
path: '/settings',
fn: async function (args, callback) {
const result = Homey.app.updateSettings(args.body);
if (result instanceof Error) return callback(result);
return callback(null, result);
}
},
{
method: 'GET',
path: '/streamurl',
public: true,
fn: async function (args, callback) {
const device_sn = args.query.device_sn;

const result = await Homey.app.getStreamUrl(device_sn);
if (result instanceof Error) return callback(result);
return callback(null, result);
}
},
];
module.exports = {
async streamUrl({homey, query}) {
return await homey.app.getStreamUrl(query.device_sn);
}
};