Skip to content

hobbyquaker/lirc-client

Repository files navigation

lirc-client

npm version Dependency Status Build Status XO code style License

Node.js module to connect to a LIRC daemon.

BREAKING CHANGE in v2.0 - Promises instead of Callbacks

If you prefer using callbacks or want to use Node < 6.12 you can still install the "old" v1.0: npm install [email protected]. The "old" Readme is here: https://github.com/hobbyquaker/lirc-client/blob/8d6da5a57064b9a59cc170ecae6a86278e006eb6/README.md

Usage

$ npm install lirc-client

const lirc = require('lirc-client')({
  host: '127.0.0.1',
  port: 8765
});

lirc.on('connect', () => {
    lirc.send('VERSION').then(res => {
        console.log('LIRC Version', res);
    });

    lirc.sendOnce('Remote1', 'Key1').catch(error => {
        if (error) console.log(error);
    });
});

lirc.on('receive', function (remote, button, repeat) {
    console.log('button ' + button + ' on remote ' + remote + ' was pressed!');
});

you can also connect to a unix domain socket via path option:

const lirc = require('lirc-client')({
  path: '/var/run/lirc/lircd'
});

API

Lirc

Kind: global class

new module.exports.Lirc([config])

Param Type Default Description
[config] object Configuration object.
[config.autoconnect] boolean true Automatically connect.
[config.host] string "'127.0.0.1'" Host running LIRC.
[config.port] number 8765 Port of running LIRC daemon.
[config.path] string Path to LIRC socket.
[config.reconnect] boolean true Automatically reconnect.
[config.reconnect_delay] number 5000 Delay when reconnecting.

lirc.send(command) ⇒ Promise.<array.<string>>

Send a command.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Resulting response from LIRC daemon.
See: available commands http://www.lirc.org/html/lircd.html

Param Type Description
command string Command to send.
[...args] string optional parameters.

lirc.sendOnce(remote, button, [repeat]) ⇒ Promise.<array.<string>>

Tell LIRC to emit a button press.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Response from LIRC.

Param Type Description
remote string Remote name.
button string Button name.
[repeat] number Number of times to repeat.

lirc.sendStart(remote, button) ⇒ Promise.<array.<string>>

Tell LIRC to start emitting button presses.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Response from LIRC.

Param Type Description
remote string Remote name.
button string Button name.

lirc.sendStop(remote, button) ⇒ Promise.<array.<string>>

Tell LIRC to stop emitting a button press.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Response from LIRC.

Param Type Description
remote string Remote name.
button string Button name.

lirc.list([remote]) ⇒ Promise.<array.<string>>

If a remote is supplied, list available buttons for remote, otherwise return list of remotes.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Response from LIRC.

Param Type Description
[remote] string Remote name.

lirc.version() ⇒ Promise.<array.<string>>

Get LIRC version from server.

Kind: instance method of Lirc
Returns: Promise.<array.<string>> - Response from LIRC.

lirc.connect() ⇒ Promise

Connect to a running LIRC daemon.

Kind: instance method of Lirc
Returns: Promise - Resolves upon connection to server.

lirc.disconnect() ⇒ Promise

Disconnect from LIRC daemon and clean up socket.

Kind: instance method of Lirc
Returns: Promise - Resolves upon disconnect.

License

MIT © Sebastian Raff

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •