evolviot

n8n community nodes for EvolvIOT device control, status checks, and polling triggers

Package Information

Released: 5 mo ago
Downloads: 2 weekly / 61 monthly
Latest Version: 1.0.6

Documentation

n8n-nodes-evolviot

n8n community nodes for the EvolvIOT external API.

This package provides:

  • EvolvIOT action node for device control and one-time status checks
  • EvolvIOT Trigger polling node for workflow starts based on device or switch state

What It Does

The package supports four 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
  • Trigger Tap to Run scenes

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/3rdPartyService/n8n

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 end with /api/3rdPartyService/n8n.

They call these endpoints:

  • GET /api/3rdPartyService/n8n/devices
  • GET /api/3rdPartyService/n8n/devices/{deviceId}/{dataKeys}
  • GET /api/3rdPartyService/n8n/devices/{deviceIds}
  • POST /api/3rdPartyService/n8n/controlDevice
  • GET /api/3rdPartyService/n8n/tapToRunScenes
  • POST /api/3rdPartyService/n8n/{sceneId}/trigger

EvolvIOT Action Node

The EvolvIOT action node has three operations:

  • Device control action
  • Device control status
  • Tap to run scenes

It has two outputs:

  • Success
  • Error

1. Device Control Action

Use this mode to send a control value to a selected device switch.

Setup:

  1. Select an EvolvIOT API credential.
  2. Select a Device from the loaded device list.
  3. Select a Control Key for that device.
  4. Choose an Action Type based on the selected switch.
  5. 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 /api/3rdPartyService/n8n/controlDevice with this payload shape:

{
  "deviceId": {
    "keyId": "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:

  • deviceId
  • deviceName
  • status
  • matched switch value when applicable
  • raw device payload
  • matched: true

If the condition does not match, the item is sent to the Error output with an explanatory message.

3. Tap to Run Scenes

Use this mode to trigger a saved Tap to Run scene.

Setup:

  1. Select an EvolvIOT API credential.
  2. Set Operation to Tap to run scenes.
  3. Select a Scene from the dropdown (loaded from tapToRunScenes).
  4. Execute the node.

The node sends a POST request to /api/3rdPartyService/n8n/{sceneId}/trigger.

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 Online or Offline
  • 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:

  • deviceId
  • deviceName
  • status
  • matched switch value when applicable
  • raw device 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:

  1. Update version in package.json
  2. Run npm install
  3. Run npm run build
  4. Run npm publish

For a scoped package, use:

npm publish --access public

Discussion