Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including enocean-js with all npm packages installed. Try it out:

var enoceanJs = require("enocean-js")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

enocean-js v0.0.9

open source java script implementation of the enocean protocol



Greenkeeper badge

Code Climate coverage

Code Climate maintainability Code Climate technical debt

Total alerts Language grade: JavaScript



This is the monorepo for all things enocean in javascript. It is home to a library of tools to work with enocean telegrams in javascript. some of the features are:

  • a general encoder/decoder for all EEPs that runs in node.js and the browser allowing you to go from binary representation to JSON back and forth. i call it the transcoder.
  • a serialport ESP3Parser
  • a common command interface for managing your USB device
  • a transformer to turn ESP3 packets into concrete types with all their interfaces.

you can install and use these tools separately or in a complete package. so either npm install enocean-js or npm install @enocean-js/some-tool. You can find all the installable modules at the enocean-js npm organisation

You will also find some full blown apps here:

Some work has started on creating an EEP Description Language (EEPDL) based on JSON. I started creating a json-schema for it. It will be used for documentation as well as beeing an integral part of the transcoder. I will also publish the json descritions of all the EEPs for other implementers. For this to be useful, the describing language must be well defined.


join the conversation

join the conversation on slack


npm i -S enocean-js

simple examle

nmp i -S enocean-js serialport

and then...

const SerialPort = require('serialport')
const Enocean = require('enocean-js')
const pretty = Enocean.pretty
const ESP3Parser = Enocean.ESP3Parser

const port = new SerialPort('/dev/ttyUSB0', { baudRate: 57600 })
const parser = new ESP3Parser()

parser.on('data', pretty.logESP3)


the documentation is still lacking, sorry... the only thing i can offer for now is the description of the content of enocean telegrams (EEP specification). It's not yet fully functional :-(

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free