Package Information
Documentation
n8n-nodes-evolviot
n8n community nodes for the EvolvIOT external API.
This package provides:
EvolvIOTaction node for device control and one-time status checksEvolvIOT Triggerpolling node for workflow starts based on device or switch state
What It Does
The package supports three main workflows:
- Send device control commands to EvolvIOT devices
- Check device status or switch/sensor values inside a normal workflow
- Poll EvolvIOT devices and trigger workflows when a condition matches
Installation
Install the package in your n8n environment:
npm install n8n-nodes-evolviot
For local development:
npm install
npm run build
If you install from a local folder or tarball, restart n8n after installation so the nodes and credential are registered.
Credential
Create an EvolvIOT API credential in n8n:
- API Key: your EvolvIOT bearer token
- Base URL: optional override, defaults to
https://api.evolviot.com/api/external
The node-level Base URL field overrides the credential value when it is filled in.
API Endpoints Used
The nodes expect the configured base URL to be the EvolvIOT external API root.
They call these endpoints:
GET /devicesGET /devices/{deviceId}GET /devices/{deviceId}/{switchKey}POST /controlDevice
EvolvIOT Action Node
The EvolvIOT action node has two operations:
- Device control action
- Device control status
It has two outputs:
- Success
- Error
1. Device Control Action
Use this mode to send a control value to a selected device switch.
Setup:
- Select an EvolvIOT API credential.
- Select a Device from the loaded device list.
- Select a Control Key for that device.
- Choose an Action Type based on the selected switch.
- Send the node execution.
Supported action types depend on the selected control key:
- On/Off for binary outputs
- Custom for PWM outputs
- Sensor-specific values for digital sensors
- Numeric values for analog sensors
The node sends a POST request to controlDevice with this payload shape:
{
"deviceId": {
"switchKey": "value"
}
}
The success output returns the API response plus a sent object that contains the normalized request metadata.
If a request fails, the node sends the item to the Error output instead of stopping the whole run.
2. Device Control Status
Use this mode to check a device condition once inside a workflow, without polling.
You can check:
- Device online/offline status
- Input switch values
- Sensor values
Watch modes:
- Device status
- Device control/output status
Supported comparisons depend on the selected switch:
- On/Off
- Custom numeric comparison
- Sensor analog numeric comparison
- Sensor digital exact value match
If the selected condition matches, the item goes to Success with:
deviceIddeviceNamestatus- matched switch value when applicable
rawdevice payloadmatched: true
If the condition does not match, the item is sent to the Error output with an explanatory message.
EvolvIOT Trigger Node
The EvolvIOT Trigger node polls the API and starts the workflow when the current device state matches the selected condition.
Available watch modes:
- Device status
- Device control/output status
You can trigger on:
- Device
OnlineorOffline - Switch
On/Off - PWM value comparisons
- Analog sensor value comparisons
- Digital sensor exact value matches
On each poll, the node fetches device data, evaluates the selected condition, and emits one item per matching device.
Trigger output includes:
deviceIddeviceNamestatus- matched switch value when applicable
rawdevice payload
Device Loading and Dynamic Options
The node UI loads devices directly from the EvolvIOT API.
- Device dropdown values contain the full device object as JSON
- Control key dropdowns are generated from the selected device's
controlKeys - Trigger/action option lists adapt to the selected key type and working mode
This means the UI can automatically switch between binary, PWM, and sensor-specific controls.
Error Handling
The nodes validate:
- missing API key
- missing base URL
- invalid or empty device selection
- invalid switch selection
- invalid numeric values
- HTTP and connection failures
The action node is designed for batch use and routes failed items to the Error output instead of failing the entire execution.
Development
Build locally:
npm install
npm run build
Create a local installable package:
npm pack
Publishing
To publish a new npm release:
- Update
versioninpackage.json - Run
npm install - Run
npm run build - Run
npm publish
For a scoped package, use:
npm publish --access public