node-red-contrib-eufy-security
Description
Node-RED contribution package for Eufy security devices, based on eufy-security-client
Node RED plugin wrapper around eufy-security-client library to access and control by connecting to the Eufy cloud servers and local/remote stations over P2P.
Note
Not all events and commands have been added/tested, check list below. Full list can be found here.
Tested events:
- connect
- captcha request
- close
- push connect
- push close
- push message
- device added
- station added
- station command result
- station guard mode
- station current mode
- station property changed
- station raw property changed
- device property changed
- device raw property changed
Tested commands:
- connect
- close
- get config
- get version
- is push connected
- is connected
- refresh cloud data
- get stations
- get devices
- get camera max livestream duration
Tested commands with props:
- is station connected (stationSN)
- get station (stationSN)
- get device (deviceSN)
- connect to station (stationSN)
- set camera max livestream duration (seconds)
Not tested commands:
- get station device (stationSN, channel)
Install
Run the following command in the root directory of your Node-RED install
npm install node-red-contrib-eufy-security
How to use
- Find
eufy-security
node innetwork
group and add it to the flow, connect with inject node as input and debug node as output; - Configure
eufy-config
by providing your cloud credentials; - (optional) Select events to track;
- Deploy flow;
- If all configured correctly you should see
Connected
under the node; - This node will send events as objects to output:
{
pyload: {
event,
station,
device,
result,
currentMode,
command,
error,
}
}
Suported events:
- connect
- close
- push connect
- push close
- push message
- station added
- station removed
- device added
- device removed
- device connect
- device close
- tfa request
- captcha request
- connection error
- cloud livestream start
- cloud livestream stop
- station livestream start
- station livestream stop
- station download start
- station download finish
- station command result
- station rtsp url
- station guard mode
- station current mode
- station property changed
- station raw property changed
- station alarm event
- device property changed
- device raw property changed
- device crying detected
- device sound detected
- device pet detected
- device motion detected
- device person detected
- device rings
- device locked
- device open
Also you can send commands to this node in this form:
{
pyload: {
command,
stationSN,
deviceSN,
name,
value,
verifyCode,
seconds,
p2pConnectionType,
channel,
}
}
Supported commands with arguments (? means optional):
-
set station property
(stationSN, name, value) -
set device property
(deviceSN, name, value) get config
get version
is push connected
is connected
-
connect
(?loginOptions) close
-
set camera max livestream duration
(seconds) get camera max livestream duration
refresh cloud data
-
is station connected
(stationSN) -
connect to station
(stationSN, p2pConnectionType) -
get station
(stationSN) get stations
-
get station device
(stationSN, channel) -
get device
(deviceSN) get devices