A Node.js client for eib/knx daemon. Implements all functions of eibd client library needed for groupswrite/groupwrite, groupread and groupsocketlisten.
npm install eibd
npm test
- EIS 1 / DPT 1.xxx
- EIS 2 / DPT 3.xxx
- EIS 3 / DPT 10.xxx
- EIS 4 / DPT 11.xxx
- EIS 5 / DPT 9.xxx
- EIS 6 / DPT 5.xxx
- EIS 8 / DPT 2.xxx
- EIS 9 / DPT 14.xxx
- EIS 10.000 / DPT 7.xxx
- EIS 10.001 / DPT 8.xxx
- EIS 11 / DPT 12.xxx
- EIS 11.001 / DPT 3.xxx
- EIS 13 / DPT 4.xxx
- EIS 14 / DPT 6.xxx
- EIS 15 / DPT 16.xxx
./bin/groupwrite host port x/x/x 0..255
e.g. ./bin/groupwrite localhost 6270 1/2/3 100
./bin/groupwrite --socket path x/x/x 0..255
e.g. ./bin/groupwrite --socket /run/knx 1/2/3 100
./bin/groupswrite host port x/x/x 0..1
e.g. ./bin/groupswrite localhost 6270 1/2/4 1
./bin/groupswrite --socket path x/x/x 0..1
e.g. ./bin/grouspwrite --socket /run/knx 1/2/4 1
(issues a read request telegram to the bus, does not wait for an answer!)
./bin/groupread host port x/x/x
e.g. ./bin/groupread localhost 6270 1/2/4
./bin/groupread --socket path x/x/x
e.g. ./bin/groupread --socket /run/knx 1/2/4
./bin/groupsocketlisten host port ./bin/groupsocketlisten --socket path
Opens a connection eibd over TCP/IP.
var opts = {
host: 'localhost',
port: 6720
};
// alternatively use UNIX sockets with var opts = {path: '/pathto/socket'};
eibd.socketRemote(opts, function() {
// connected
});
Opens a Group communication interface
eibd.on('data', function(action, src, dest, val) {
// do something
});
eibd.openGroupSocket(0);
Opens a connection of type T_Group
var dest = eibd.str2addr('x/x/x');
eibd.openTGroup(dest, 1, function(err) {
});
Sends an APDU
Sends TCP/IP request to eib-daemon
Parse telegram and emits 'write', 'response' or 'read' events.
Try to parse values with assumptions about package len.
Parse value to EIS 5 / DPT 9.xxx from buffer
Encodes string to knx address
Decodes knx address to string
var eibd = require('eibd');
/**
* groupsocketlisten
*/
function groupsocketlisten(opts, callback) {
var conn = eibd.Connection();
conn.socketRemote(opts, function() {
conn.openGroupSocket(0, callback);
});
}
var host = 'localhost';
var port = 6720;
groupsocketlisten({ host: host, port: port }, function(parser) {
parser.on('write', function(src, dest, dpt, val){
console.log('Write from '+src+' to '+dest+': '+val);
});
parser.on('response', function(src, dest, val) {
console.log('Response from '+src+' to '+dest+': '+val);
});
parser.on('read', function(src, dest) {
console.log('Read from '+src+' to '+dest);
});
});