{"id":20576674,"url":"https://github.com/hobbyquaker/lirc-client","last_synced_at":"2025-04-14T18:22:46.272Z","repository":{"id":143886412,"uuid":"45354433","full_name":"hobbyquaker/lirc-client","owner":"hobbyquaker","description":"Node.js module to connect to a LIRC daemon.","archived":false,"fork":false,"pushed_at":"2018-12-29T20:27:33.000Z","size":29,"stargazers_count":10,"open_issues_count":1,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-26T08:03:10.522Z","etag":null,"topics":["hifi","infrared","lirc","node-module","remote-control","tv"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hobbyquaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-11-01T19:34:36.000Z","updated_at":"2023-12-25T13:16:58.000Z","dependencies_parsed_at":"2023-07-12T01:34:39.983Z","dependency_job_id":null,"html_url":"https://github.com/hobbyquaker/lirc-client","commit_stats":{"total_commits":24,"total_committers":6,"mean_commits":4.0,"dds":"0.41666666666666663","last_synced_commit":"dfc1bbadfb607b2c799247a5e3c062f84bb0952f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hobbyquaker%2Flirc-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hobbyquaker%2Flirc-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hobbyquaker%2Flirc-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hobbyquaker%2Flirc-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hobbyquaker","download_url":"https://codeload.github.com/hobbyquaker/lirc-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248933723,"owners_count":21185533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hifi","infrared","lirc","node-module","remote-control","tv"],"created_at":"2024-11-16T05:46:37.583Z","updated_at":"2025-04-14T18:22:46.196Z","avatar_url":"https://github.com/hobbyquaker.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lirc-client\n\n[![npm version](https://badge.fury.io/js/lirc-client.svg)](https://badge.fury.io/js/lirc-client) \n[![Dependency Status](https://img.shields.io/gemnasium/hobbyquaker/lirc-client.svg?maxAge=2592000)](https://gemnasium.com/github.com/hobbyquaker/lirc-client)\n[![Build Status](https://travis-ci.org/hobbyquaker/lirc-client.svg?branch=master)](https://travis-ci.org/hobbyquaker/lirc-client)\n[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\n[![License][mit-badge]][mit-url]\n\n\nNode.js module to connect to a [LIRC](http://www.lirc.org/) daemon.\n\n**BREAKING CHANGE in v2.0 - Promises instead of Callbacks**\n\nIf you prefer using callbacks or want to use Node \u003c 6.12 you can still install the \"old\" v1.0: \n`npm install lirc-client@1.0.0`. The \"old\" Readme is here: https://github.com/hobbyquaker/lirc-client/blob/8d6da5a57064b9a59cc170ecae6a86278e006eb6/README.md\n\n\n## Usage\n\n`$ npm install lirc-client`\n\n```Javascript\nconst lirc = require('lirc-client')({\n  host: '127.0.0.1',\n  port: 8765\n});\n\nlirc.on('connect', () =\u003e {\n    lirc.send('VERSION').then(res =\u003e {\n        console.log('LIRC Version', res);\n    });\n\n    lirc.sendOnce('Remote1', 'Key1').catch(error =\u003e {\n        if (error) console.log(error);\n    });\n});\n\nlirc.on('receive', function (remote, button, repeat) {\n    console.log('button ' + button + ' on remote ' + remote + ' was pressed!');\n});\n```\n\nyou can also connect to a unix domain socket via path option:\n```Javascript\nconst lirc = require('lirc-client')({\n  path: '/var/run/lirc/lircd'\n});\n```\n\n## API\n\n\u003ca name=\"Lirc\"\u003e\u003c/a\u003e\n\n## Lirc\n**Kind**: global class  \n\n* [Lirc](#Lirc)\n    * [new module.exports.Lirc([config])](#new_Lirc_new)\n    * [.send(command)](#Lirc+send) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.sendOnce(remote, button, [repeat])](#Lirc+sendOnce) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.sendStart(remote, button)](#Lirc+sendStart) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.sendStop(remote, button)](#Lirc+sendStop) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.list([remote])](#Lirc+list) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.version()](#Lirc+version) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\n    * [.connect()](#Lirc+connect) ⇒ \u003ccode\u003ePromise\u003c/code\u003e\n    * [.disconnect()](#Lirc+disconnect) ⇒ \u003ccode\u003ePromise\u003c/code\u003e\n\n\u003ca name=\"new_Lirc_new\"\u003e\u003c/a\u003e\n\n### new module.exports.Lirc([config])\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [config] | \u003ccode\u003eobject\u003c/code\u003e |  | Configuration object. |\n| [config.autoconnect] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003etrue\u003c/code\u003e | Automatically connect. |\n| [config.host] | \u003ccode\u003estring\u003c/code\u003e | \u003ccode\u003e\u0026quot;\u0026#x27;127.0.0.1\u0026#x27;\u0026quot;\u003c/code\u003e | Host running LIRC. |\n| [config.port] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e8765\u003c/code\u003e | Port of running LIRC daemon. |\n| [config.path] | \u003ccode\u003estring\u003c/code\u003e |  | Path to LIRC socket. |\n| [config.reconnect] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003etrue\u003c/code\u003e | Automatically reconnect. |\n| [config.reconnect_delay] | \u003ccode\u003enumber\u003c/code\u003e | \u003ccode\u003e5000\u003c/code\u003e | Delay when reconnecting. |\n\n\u003ca name=\"Lirc+send\"\u003e\u003c/a\u003e\n\n### lirc.send(command) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nSend a command.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Resulting response from LIRC daemon.  \n**See**: available commands http://www.lirc.org/html/lircd.html  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| command | \u003ccode\u003estring\u003c/code\u003e | Command to send. |\n| [...args] | \u003ccode\u003estring\u003c/code\u003e | optional parameters. |\n\n\u003ca name=\"Lirc+sendOnce\"\u003e\u003c/a\u003e\n\n### lirc.sendOnce(remote, button, [repeat]) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nTell LIRC to emit a button press.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Response from LIRC.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| remote | \u003ccode\u003estring\u003c/code\u003e | Remote name. |\n| button | \u003ccode\u003estring\u003c/code\u003e | Button name. |\n| [repeat] | \u003ccode\u003enumber\u003c/code\u003e | Number of times to repeat. |\n\n\u003ca name=\"Lirc+sendStart\"\u003e\u003c/a\u003e\n\n### lirc.sendStart(remote, button) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nTell LIRC to start emitting button presses.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Response from LIRC.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| remote | \u003ccode\u003estring\u003c/code\u003e | Remote name. |\n| button | \u003ccode\u003estring\u003c/code\u003e | Button name. |\n\n\u003ca name=\"Lirc+sendStop\"\u003e\u003c/a\u003e\n\n### lirc.sendStop(remote, button) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nTell LIRC to stop emitting a button press.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Response from LIRC.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| remote | \u003ccode\u003estring\u003c/code\u003e | Remote name. |\n| button | \u003ccode\u003estring\u003c/code\u003e | Button name. |\n\n\u003ca name=\"Lirc+list\"\u003e\u003c/a\u003e\n\n### lirc.list([remote]) ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nIf a remote is supplied, list available buttons for remote, otherwise\nreturn list of remotes.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Response from LIRC.  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| [remote] | \u003ccode\u003estring\u003c/code\u003e | Remote name. |\n\n\u003ca name=\"Lirc+version\"\u003e\u003c/a\u003e\n\n### lirc.version() ⇒ \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e\nGet LIRC version from server.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise.\u0026lt;array.\u0026lt;string\u0026gt;\u0026gt;\u003c/code\u003e - Response from LIRC.  \n\u003ca name=\"Lirc+connect\"\u003e\u003c/a\u003e\n\n### lirc.connect() ⇒ \u003ccode\u003ePromise\u003c/code\u003e\nConnect to a running LIRC daemon.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise\u003c/code\u003e - Resolves upon connection to server.  \n\u003ca name=\"Lirc+disconnect\"\u003e\u003c/a\u003e\n\n### lirc.disconnect() ⇒ \u003ccode\u003ePromise\u003c/code\u003e\nDisconnect from LIRC daemon and clean up socket.\n\n**Kind**: instance method of [\u003ccode\u003eLirc\u003c/code\u003e](#Lirc)  \n**Returns**: \u003ccode\u003ePromise\u003c/code\u003e - Resolves upon disconnect.  \n\n\n## License\n\nMIT © [Sebastian Raff](https://hobbyquaker.github.io)\n\n[mit-badge]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat\n[mit-url]: LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhobbyquaker%2Flirc-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhobbyquaker%2Flirc-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhobbyquaker%2Flirc-client/lists"}