enocean-js
v0.1.0
Published
open source java script implementation of the enocean protocol
Downloads
410
Maintainers
Readme
enocean-js
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:
- node-red-contrib-enocean
- enocean-ip-gateway (very early alpha)
- dolphin view like tool based on electron (not started yet)
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.
slack
join the conversation
install
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()
port.pipe(parser)
parser.on('data', pretty.logESP3)
documentation
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 :-(
donate
if you want to support this project, consider donating something to this address:
Bitcoin: 1FLXyLHPn3N1KLznUp39uTfHqPBfoM63t4