npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-evolviot

v1.0.5

Published

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

Readme

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 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 /devices
  • GET /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:

  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 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:

  • 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.

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