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

node-red-contrib-device-simulator-energiam

v0.2.4

Published

Node-RED node to simulate IoT devices (e.g. zigbee2mqtt) injecting configurable JSON objects with variable fields and flexible trigger intervals

Readme

node-red-contrib-device-simulator-energiam

EnergIAM — IoT Device Simulator for Node-RED

Nodo custom para Node-RED que simula dispositivos IoT (zigbee2mqtt, sensores Modbus, medidores de energía, etc.) inyectando objetos JSON configurables con campos variables, intervalos flexibles y disparo condicional por cambio de valor.

Diseñado para desarrollo, testing y simulación de entornos productivos sin necesidad de hardware físico.


✨ Características

  • 📋 Template JSON libre — pegá cualquier objeto que quieras simular
  • 🎲 Campos variables — elegí qué campos numéricos varían y entre qué rangos
  • ⏱️ Intervalo fijo o aleatorio — fijo en ms, o random entre un mínimo y máximo
  • 🔔 Disparo condicional — configurá por campo si el mensaje se envía solo cuando ese valor cambia
  • 🏷️ Topic configurable — compatible con cualquier pipeline MQTT/Node-RED
  • 🟢 Status en tiempo real — el nodo muestra en el canvas si envió, si no hubo cambios, o si hay error

📦 Instalación

Desde repositorio git (recomendado)

Accedé al contenedor Docker de Node-RED:

docker exec -it <nombre-contenedor-nodered> bash

Instalá el nodo directamente desde el repositorio:

cd /data
npm install git+https://github.com/<tu-usuario>/node-red-contrib-device-simulator-energiam.git

Reiniciá Node-RED:

# Desde fuera del contenedor
docker restart <nombre-contenedor-nodered>

Actualizar a una nueva versión

docker exec -it <nombre-contenedor-nodered> bash
cd /data
npm install git+https://github.com/<tu-usuario>/node-red-contrib-device-simulator-energiam.git
docker restart <nombre-contenedor-nodered>

🚀 Uso rápido

  1. Buscá device simulator en la paleta (categoría simulation)
  2. Arrastrá el nodo al canvas
  3. Doble click → abrís el editor
  4. Pegá tu objeto JSON en Template JSON y presioná Actualizar campos desde JSON
  5. Configurá los campos variables, rangos e intervalo
  6. Deploy — el nodo empieza a inyectar

⚙️ Configuración del nodo

Template JSON

Pegá el objeto JSON que quieras simular. Ejemplo con un medidor zigbee2mqtt:

{
    "ac_frequency": 50.0,
    "voltage": 220.0,
    "current_a": 1.5,
    "power_a": 330.0,
    "energy_a": 12.4,
    "power_factor_a": 98,
    "linkquality": 105
}

Presioná Actualizar campos desde JSON — la tabla se llena automáticamente con todos los campos numéricos del objeto.


Tabla de campos variables

| Columna | Descripción | |---|---| | Campo | Nombre de la clave en el JSON | | Variable | Si está activado, el campo toma un valor random en cada ciclo | | Min / Max | Rango de valores posibles | | Dispara si cambia | Si está activado, el mensaje solo se envía cuando este campo cambia de valor |

Si ningún campo tiene Dispara si cambia activo, el nodo siempre envía en cada ciclo.
Si uno o más campos lo tienen activo, el nodo solo envía si al menos uno de ellos cambió respecto al envío anterior.


Intervalo

| Modo | Descripción | |---|---| | Fijo | Se envía cada N milisegundos | | Aleatorio | El intervalo se recalcula en cada ciclo entre Mín y Máx ms |


Topic

Topic del mensaje de salida. Compatible con cualquier nodo MQTT out, función, o switch de Node-RED.

Ejemplo: zigbee2mqtt/medidor_sala_a1


📡 Mensaje de salida

{
    "topic": "zigbee2mqtt/medidor_sala_a1",
    "payload": {
        "ac_frequency": 49.87,
        "voltage": 218.34,
        "current_a": 1.62,
        "power_a": 341.5,
        "energy_a": 12.4,
        "power_factor_a": 97,
        "linkquality": 105
    }
}

Los campos no marcados como Variable conservan siempre el valor del template original.


🗂️ Estructura del repositorio

node-red-contrib-device-simulator-energiam/
│
├── device-simulator.js     # Lógica del nodo (backend Node-RED)
├── device-simulator.html   # UI del editor y help (frontend)
├── package.json
├── icons/
│   └── energiam.png        # Ícono del nodo en la paleta
└── README.md

🛠️ Stack

  • Node-RED >= 3.0.0
  • Node.js >= 18.0.0
  • Sin dependencias externas

🔄 Compatibilidad

Probado con:

  • zigbee2mqtt — medidores de energía Tuya, Sonoff, etc.
  • Medidores Modbus normalizados
  • Cualquier dispositivo que publique JSON plano por MQTT

🔐 Licencia

MIT — libre uso, modificación y distribución.


👤 Autor

EnergIAM by Adrian Iskow
Plataforma de gestión inteligente de energía
Argentina, 2025