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.
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)
Run the following command in the root directory of your Node-RED install
npm install node-red-contrib-eufy-security
- 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