Skip to main content

Interact with the daemon in the Linux Infrared Remote Control package

Project description

Python Version Project Version Documentation Status Build Status Code Coverage Maintainability Code Formatter Contributing License Platform Support

This is a python package that allows you to interact with the daemon in the Linux Infrared Remote Control package. By interacting with this daemon, it allows you to programmatically send IR signals from a computer.

This package is for emitting IR signals, but it does not support listening to IR codes. If you’d like to monitor the IR signals you recieve on Linux, which has built-in support in the kernel for recieving IR signals, you can try using python-evdev. They have a tutorial on reading the events.

More information on the lircd daemon, socket interface, reply packet format, etc. can be found at https://www.lirc.org/html/lircd.html

Maintainance Status

This project is maintained, but it is not actively developed. It is feature complete for my purposes.

Installation

This package is hosted on PyPI and can be installed through pip.

$ pip install lirc

However since this is a wrapper around the LIRC daemon, it is expected that LIRC is installed and setup on the given system as well.

More information on that can be found in the installation portion of the full documentation.

Quick Start

Using the Client

import lirc

client = lirc.Client()

print(client.version())
>>> '0.10.1'

To use this package, we instantiate a Client. By initializing it with no arguments, the Client will attempt to connect to the lirc daemon with the default connection parameters for your operating system.

These defaults depend on your operating system and can be looked up in the full documentation if you need different parameters.

However, if you’ve instantiated the Client without any arguments, you don’t get any errors, and you recieve a response from the version() command, you are connected to the daemon. Most people should not need to change the default parameters.

Customizing the Client

As previously stated, we can customize these defaults if needed.

import socket
import lirc

client = lirc.Client(
  connection=lirc.LircdConnection(
    address="/var/run/lirc/lircd",
    socket=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM),
    timeout = 5.0
  )
)

For the client in the example above, we set it up using the defaults for a Linux machine. While this example illustrates what is customizable, it is not a practical example since you could call Client() with no arguments if you’re on Linux and achieve the same outcome.

See Overriding LIRC Defaults on Initialization for more information.

Sending IR

import lirc

client = lirc.Client()
client.send_once("my-remote-name", "KEY_POWER")

# Go to channel "33"
client.send_once("my-remote-name", "KEY_3", repeat_count=1)

With sending IR, we can use the send_once method and optionally, send multiple by using the repeat_count keyword argument.

Handling Errors

import lirc

client = lirc.Client()

try:
    client.send_once('some-remote', 'key_power')
except lirc.exceptions.LircdCommandFailureError as error:
    print('Unable to send the power key!')
    print(error)  # Error has more info on what lircd sent back.

If the command was not successful, a LircdCommandFailureError exception will be thrown.

Further Documentation

More information on how to setup the system installed LIRC, how to use this python library, and a full API specification can be found at https://lirc.readthedocs.io/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lirc-3.0.0.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

lirc-3.0.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file lirc-3.0.0.tar.gz.

File metadata

  • Download URL: lirc-3.0.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/6.5.0-1025-azure

File hashes

Hashes for lirc-3.0.0.tar.gz
Algorithm Hash digest
SHA256 67d993610d1e13fa0ca488845add6877f1a7f6e97c13976e531898231afc35d7
MD5 2580779aa094a71dad4bc259f36b6f8f
BLAKE2b-256 c2ef32c24039d117ef888a01f10fda981a386092a3c867f4edde3411510a41c5

See more details on using hashes here.

File details

Details for the file lirc-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: lirc-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/6.5.0-1025-azure

File hashes

Hashes for lirc-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0725e8cf41739dbd58e348787bb49cce783181ce2469c640e2cfea2afc58cb67
MD5 8cfa53ee67097e7303e8c7d67be4c08d
BLAKE2b-256 7d812e7e81f6e789f586c95ab2fa3e2a72e489b420d67354fc5295a4916d0e29

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page