All Projects → michaelarnauts → Cec Mqtt Bridge

michaelarnauts / Cec Mqtt Bridge

A HDMI-CEC to MQTT bridge for connecting HDMI-CEC-devices to your Home Automation system.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cec Mqtt Bridge

Homeautomation.codesys3
Home Automation system build in CoDeSys 3 with MQTT communication to any third party Home Automation software
Stars: ✭ 55 (-50%)
Mutual labels:  home-automation, mqtt
Rpieasy
Easy MultiSensor device based on Raspberry PI
Stars: ✭ 85 (-22.73%)
Mutual labels:  home-automation, mqtt
Mqtt Camera Streamer
Stream images from a connected camera over MQTT & view using Streamlit
Stars: ✭ 71 (-35.45%)
Mutual labels:  home-automation, mqtt
Home Assistant Main
My Main Instance
Stars: ✭ 104 (-5.45%)
Mutual labels:  home-automation, mqtt
Loadcelloccupany
Home automation occupancy sensor using load cells
Stars: ✭ 103 (-6.36%)
Mutual labels:  home-automation, mqtt
Hass Yaap
Yet another alarm (control) panel for Home Assistant.
Stars: ✭ 44 (-60%)
Mutual labels:  home-automation, mqtt
Homie Esp8266
💡 ESP8266 framework for Homie, a lightweight MQTT convention for the IoT
Stars: ✭ 1,241 (+1028.18%)
Mutual labels:  home-automation, mqtt
Modbridge
Bridge between modbus and MQTT
Stars: ✭ 20 (-81.82%)
Mutual labels:  home-automation, mqtt
Psmqtt
Utility reporting system health and status via MQTT
Stars: ✭ 95 (-13.64%)
Mutual labels:  home-automation, mqtt
Smarthome
Device integration platform for your smart home
Stars: ✭ 92 (-16.36%)
Mutual labels:  home-automation, mqtt
Core
🏡 Open source home automation that puts local control and privacy first.
Stars: ✭ 48,265 (+43777.27%)
Mutual labels:  home-automation, mqtt
Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (-7.27%)
Mutual labels:  home-automation, mqtt
Open Home
Projeto de automação residencial usando softwares e hardwares open source.
Stars: ✭ 41 (-62.73%)
Mutual labels:  home-automation, mqtt
Wavin Ahc 9000 Mqtt
Esp8266 mqtt interface for Wavin AHC-9000/Jablotron AC-116
Stars: ✭ 47 (-57.27%)
Mutual labels:  home-automation, mqtt
Hodd
Homie Device Discovery
Stars: ✭ 21 (-80.91%)
Mutual labels:  home-automation, mqtt
Hugo Esp8266
Hugo is a 4-button ESP8266 Wi-Fi Remote, Arduino compatible and simple to use.
Stars: ✭ 77 (-30%)
Mutual labels:  home-automation, mqtt
Open Home Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 820 (+645.45%)
Mutual labels:  home-automation, mqtt
Rf24node msgproto
An application that runs on a Raspberry Pi that interfaces RF24Network packets to a Message Bus. Currently MQTT & AMQP (alpha); Topics are RF24SensorNet compatible.
Stars: ✭ 11 (-90%)
Mutual labels:  home-automation, mqtt
Teslamate
A self-hosted data logger for your Tesla 🚘
Stars: ✭ 1,255 (+1040.91%)
Mutual labels:  home-automation, mqtt
Frigate
NVR with realtime local object detection for IP cameras
Stars: ✭ 1,329 (+1108.18%)
Mutual labels:  home-automation, mqtt

cec-mqtt-bridge

A HDMI-CEC / IR to MQTT bridge written in Python 3 for connecting your AV-devices to your Home Automation system. You can control and monitor power status and volume.

Features

  • CEC
    • Power control
    • Volume control
    • Power feedback
    • Relay CEC messages from HDMI to broker (RX)
    • Relay CEC messages from broker to HDMI (TX)
  • IR
    • Relay IR keypresses from IR to broker (RX)
    • Relay IR keypresses from broker to IR (TX)

Dependencies

MQTT (required)

HDMI-CEC (optional)

IR (optional)

Configuration

You can either copy config.default.ini to config.ini and adjust its properties, or alternatively declare any of those as environment variables using the format SECTION_KEY (e.g., MQTT_USER).

Lirc

You need a lircrc config file. This can be generated from the lircd.conf of your lirc daemon using the script create_lircrc.py. Simply call this script with the lircd.conf path as first argument. It will print the lircrc contents to stdout and can be easily written to a file:

$ ./create_lircrc.py /etc/lirc/lircd.conf > lircrc

If you write your own lircrc file, notice that the config parameter for each configuration is what is given to the bridge. It is assumed that it is in the format <remote>,<key>. If only one value is given, the remote is expected to be omitted.

The lircrc format (that would be generated by the create_lircrc.py script) should look like:

begin
  remote = <remote-name>
  button = <key-name>
  prog = cec-ir-mqtt
  config = <remote-name>,<key-name>
end

To only get the key (without the remote name in the MQTT topic) use the format without the remote in the config:

begin
  remote = <remote-name>
  button = <key-name>
  prog = cec-ir-mqtt
  config = <key-name>
end

MQTT Topics

The bridge subscribes to the following topics:

topic body remark
prefix/cec/id/cmd on / off Turn on/off device with id id.
prefix/cec/cmd mute / unmute / voldown / volup Sends the specified command to the audio system.
prefix/cec/volume/set integer (0-100) Sets the volume level of the audio system to a specific level.
prefix/cec/tx commands Send the specified commands to the CEC bus. You can specify multiple commands by separating them with a space. Example: cec/tx 15:44:41,15:45.
prefix/ir/remote/tx key Send the specified key of remote to the IR transmitter.

The bridge publishes to the following topics:

topic body remark
prefix/bridge/status online / offline Report availability status of the bridge.
prefix/cec/id on / off Report power status of device with id id.
prefix/cec/volume integer (0-100) Report volume level of the audio system.
prefix/cec/mute on / off Report mute status of the audio system.
prefix/cec/rx command Notify that command was received.
prefix/ir/remote/rx key Notify that key of remote was received. You have to configure key AND remote as config in the lircrc file.
prefix/ir/rx key Notify that key was received. You have to configure key in the lircrc file. This format is used if the remote is not given in the config file.

id is the address (0-15) of the device on the CEC-bus.

Examples

  • mosquitto_pub -t media/cec/volup -m ''
  • mosquitto_pub -t media/cec/tx -m '15:44:42,15:45'

Interesting links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].