open source java script implementation of the enocean protocol

Usage no npm install needed!

<script type="module">
  import enoceanJs from 'https://cdn.skypack.dev/enocean-js';




Greenkeeper badge

Code Climate coverage

Code Climate maintainability Code Climate technical debt

Total alerts Language grade: JavaScript



Donate to this Bitcoin address: 1MKAPeq2gY57TwUR1bMSrCGZKYsfiVGKM4

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


if you want to support this project, consider donating something to this address:

Bitcoin: 1FLXyLHPn3N1KLznUp39uTfHqPBfoM63t4