michaelarnauts / cec-mqtt-bridge Goto Github PK
View Code? Open in Web Editor NEWA HDMI-CEC to MQTT bridge for connecting HDMI-CEC-devices to your Home Automation system.
A HDMI-CEC to MQTT bridge for connecting HDMI-CEC-devices to your Home Automation system.
MQTT messages get passed and received from what I can see in the listener, the device accurately advertises its current state properly, but won't power on or off. Is there a configuration that is different for an rPi4 since it's got two HDMI ports?
Hi.
I'm trying to get this up and running on Openelec. The main issue here is I cannot install packages the normal way.
I've made a minor adjustment in the top lines of the code to allow paho.mqtt to be loaded in there just fine. I've included this at the top:
import sys sys.path.append("/storage/scripts/modules")
and in that folder I've placed the paho.mqtt module. I'm having a problem regarding the cec module though. I can issue commands using command line just fine (example: echo "tx 4F:82:12:00" | cec-client -s ). However, when I start the mqttbrigde it crashes at cec setup:
Initialising CEC... ('ERROR: Could not initialise CEC:', 'No module named _cec')
could you help me out? is it possible at all on openelec?
I had several issues with the config: when I entered a different port it told me it could not compare str and int. I then decided to just change the config in the bridge.py file, which worked, but only after I added "user":"" in the default dictionary, as it does not contain this.
It now works for me, but maybe have a look?
Is anyone else having this issue? I tried creating a symlink from the client to that and also paho, but no luck. I'm also a total noob at this, but trying to learn
Traceback (most recent call last):
File "bridge.py", line 4, in <module>
import paho.mqtt.client as mqtt
ImportError: No module named paho.mqtt.client
Currently the path to the config file is hardcoded as config.ini
. This is causing problems if you want to run bridge.py
using eg a systemd service. The config could for example be
/etc/cec-mqtt-bridge
or similar/opt/cec-mqtt-bridge/config.ini
This would be very helpful.
I'm trying to install the bridge on a raspberry pi 3 B+. I've tried it on Hassbian and Raspbian Buster with no luck. Currently trying to run it in a docker container (but have tried without docker) and I always get this message on startup:
Initialising CEC...
Initialising MQTT...
Traceback (most recent call last):
File "bridge.py", line 360, in <module>
mqtt_client.connect(config['mqtt']['broker'], int(config['mqtt']['port']), 60)
File "/usr/local/lib/python3.6/site-packages/paho/mqtt/client.py", line 760, in connect
return self.reconnect()
File "/usr/local/lib/python3.6/site-packages/paho/mqtt/client.py", line 887, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/usr/local/lib/python3.6/socket.py", line 722, in create_connection
raise err
File "/usr/local/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
The docker command is docker run -d --device=/dev/vcsm --device=/dev/vchiq --restart unless-stopped cec-mqtt-bridge
My config is:
; MQTT broker configuration
;
[mqtt]
; Hostname of mqtt broker (required)
broker=192.168.1.34
; Name of your device (default=cec-ir-mqtt)
devicename=cec-ir-mqtt
; Port to connect to (default=1883)
port=1883
; Use tls
;tls=0
; Username and password
user=*****
password=*****
; MQTT prefix to use
prefix=apartment/tv
;
; HDMI-CEC configuration
;
[cec]
; Enable CEC
enabled=1
; ID of CEC controller
id=1
; Port where the CEC-device is connected
port=RPI
; Devices to query (comma seperated, defaults to all devices)
;devices=0,2,3,4,5
;
; LIRC configuration
;
[ir]
; Enable LIRC
enabled=0
Other info: Running Mosquitto 1.5.7 successfully with various other clients connected
Very rarely I have received an error similar to "Cannot connect to CEC adapter", but 90% of the time it is the above traceback. Any help would be hugely appreciated, thanks.
There should be a config option or append a random # on end of MQTT client ID for those of us that want to run this on multiple devices and push to same MQTT server.
As noted here
Each client must have a unique client id, the broker will kick off the oldest client when a new one connects with the same client id. Other than that you can run as many clients as you want connecting from anywhere that can reach the broker
MQTT logs:
1547942724: New client connected from 10.0.0.216 as cec-ir-mqtt (c1, k60).
1547942725: New connection from 10.0.0.128 on port 1883.
1547942725: Client cec-ir-mqtt already connected, closing old connection.
1547942725: Socket error on client cec-ir-mqtt, disconnecting.
1547942725: New client connected from 10.0.0.128 as cec-ir-mqtt (c1, k60).
1547942726: New connection from 10.0.0.216 on port 1883.
1547942726: Client cec-ir-mqtt already connected, closing old connection.
1547942726: Socket error on client cec-ir-mqtt, disconnecting.
1547942726: New client connected from 10.0.0.216 as cec-ir-mqtt (c1, k60).
1547942727: New connection from 10.0.0.128 on port 1883.
1547942727: Client cec-ir-mqtt already connected, closing old connection.
1547942727: Socket error on client cec-ir-mqtt, disconnecting.
1547942727: New client connected from 10.0.0.128 as cec-ir-mqtt (c1, k60).
(repeating)
As the title suggests - I'm having issues activating the 'source' video using the cec-mqtt bridge...
When I run echo 'tx 5f:82:32:00' | /usr/bin/cec-client -s
- I can broadcast to change the source on my AVR to 3.2.0.0
(and it works)
However when I try and run the same command via MQTT (so in this case i'm running mosquitto_pub -h x.x.x.x -t homeassistant/cec/tx -m '5f:82:32:00'
the command is received fine, however nothing is executed...
To make matters more interesting, I can use the prefix/cec/cmd
arguments (such as mute/unmute
etc) -- So the issue appears only when running raw TX commands...
Anyone have any suggestions? I have a feeling this is a bug but I'm not sure what other information to provide...
Using latest build on github
Initialising CEC...
Initialising IR...
Initialising MQTT...
Traceback (most recent call last):
File "bridge.py", line 263, in
mqtt_client.connect(config['mqtt']['broker'], config['mqtt']['port'], 60)
File "/usr/local/lib/python3.4/dist-packages/paho/mqtt/client.py", line 685, in connect
self.connect_async(host, port, keepalive, bind_address)
File "/usr/local/lib/python3.4/dist-packages/paho/mqtt/client.py", line 741, in connect_async
if port <= 0:
TypeError: unorderable types: str() <= int()
I need to add back the cache so the broker doesn't get spammed every 10 seconds.
I’ve been using your great tool with Node-RED for a while, but after recently moving from Raspbian to Hassio (HassOS), I don’t know how to install it?
I still want to use with Node-RED, but installed on Hassio (HassOS) rather than Raspbian.
Ideally this could also be a self contained node in Node-RED. (I am aware of the node-red-contrib-cec, but that does not support sending raw commands in simple format.)
If this is not possible what is the best way of sending and receiving raw cec commands with Hassio?
It seems that on OSMC, the lirc daemon is not on the default /var/run/lircd socket.
You need to change the code like this:
diff --git a/bridge.py b/bridge.py
index 7be2d11..387f570 100755
--- a/bridge.py
+++ b/bridge.py
@@ -192,7 +192,7 @@ def ir_listen_thread():
def ir_send(remote, key):
- subprocess.call(["irsend", "SEND_ONCE", remote, key])
+ subprocess.call(["irsend", "--device=/run/lirc/lircd-lirc0", "SEND_ONCE", remote, key])
def cec_refresh():
This needs to be a configuration option.
There is no licence declared on project or files. See https://choosealicense.com/
Note: considering adding kodi but this is GPLv2. One problem with CECLib is you can't have multiple clients so you have to disable CEC inputs on kodi to use this service. Anyway if you choose GPLv2 or greater it makes including this simpler.
I get the following error message when trying to compile on a Raspberry Pi 4 running Raspberry Pi OS 64-bit Bookworm.
Base image jonaseck/rpi-raspbian-libcec-py was pulled with platform "linux/arm/v7", expected "linux/arm64" for current build (line 1)
Does this project currently only support 32-bit versions, or maybe just older versions of Debian?
I'm running on a RPi connected to my Sony TV. Power on/off commands and status reporting work fine, but mute commands/status and volume commands/status do not work (with TV internal speakers). Do these only work with an external amp connected?
I have this working well on a raspberry pi zero w.
When the pi is connected to the HDMI port before being powered up, everything works well.
However, if HDMI is plugged in afterward the Pi has booted, the cec never initalises.
If I scan the bus using:
echo scan | cec-client -s -d 1
The adapter opens, and all works as expected.
So I tried adding the scan line to my supervisord script. When it restarts (with no HDMI plugged in) the adapter opens, and initalises MQTT. But if you plug in HDMI cable, it nevers finds a new device on the bus unless rebooted or scanned again.
Is this an issue with cec-mqtt-bridge or raspberry pi?
Thank you
Hi there,
Great little tool and exactly what I was looking for however I cannot get the tool to send the status to MQTT on the terminal it says device status changed to on but subsrcbing on media/cec# gives me nothing at all?
Any ideas?
Initialising MQTT...
Initialising CEC...
Broadcast (F): osd name set to 'Broadcast'
InitHostCEC - vchiq_initialise succeeded
InitHostCEC - vchi_initialise succeeded
InitHostCEC - vchi_connect succeeded
logical address changed to Free use (e)
Open - vc_cec initialised
connection opened
<< Broadcast (F) -> TV (0): POLL
initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
<< e0
Starting main loop...
Refreshing....
processor thread started
initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
<< e0
POLL not sent
TV (0): device status changed into 'not present'
registering new CEC client - v3.0.1
detecting logical address for type 'recording device'
trying logical address 'Recorder 1'
<< Recorder 1 (1) -> Recorder 1 (1): POLL
<< 11
<< 11
POLL not sent
using logical address 'Recorder 1'
Recorder 1 (1): device status changed into 'handled by libCEC'
Recorder 1 (1): power status changed from 'unknown' to 'on'
Recorder 1 (1): vendor = Pulse Eight (001582)
Recorder 1 (1): CEC version 1.4
AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
logical address changed to Recorder 1 (1)
Recorder 1 (1): osd name set to 'cec-ir-mqtt'
Recorder 1 (1): menu language set to 'eng'
GetPhysicalAddress - physical address = 2400
AutodetectPhysicalAddress - autodetected physical address '2400'
Recorder 1 (1): physical address changed from ffff to 2400
<< Recorder 1 (1) -> broadcast (F): physical adddress 2400
<< 1f:84:24:00:01
CEC client registered: libCEC version = 3.0.1, client version = 3.0.1, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 2.4.0.0, compiled on Fri Jul 3 19:20:43 UTC 2015 by [email protected] on Linux 3.16.0-41-generic (armv7l), features: P8_USB, P8_detect, 'RPi'
<< Recorder 1 (1) -> TV (0): OSD name 'cec-ir-mqtt'
<< Recorder 1 (1) -> TV (0): POLL
<< 10
<< 10
POLL not sent
not sending command 'set osd name': destination device 'TV' marked as not present
<< requesting power status of 'TV' (0)
<< Recorder 1 (1) -> TV (0): POLL
<< 10
<< 10
POLL not sent
not sending command 'give device power status': destination device 'TV' marked as not present
<< 11:8f
not sending data to myself!
Config:
`;
; MQTT broker configuration
;
[mqtt]
; Hostname of mqtt broker (required)
broker=192.168.20.10
; Port to connect to (default=1883)
port=1883
; Username and password
user=REDACTED
password=REDACTED
; MQTT prefix to use
prefix=media
;
; HDMI-CEC configuration
;
[cec]
; Enable CEC
enabled=1
; ID of CEC controller
id=1
; Port where the CEC-device is connected
port=RPI
; Devices to query (comma seperated, defaults to all devices)
devices=1
;
; LIRC configuration
;
[ir]
; Enable LIRC
enabled=0
`
I have done something like this long time before (CEC<-> Telnet) and it is time to move to MQTT. What I miss in your bridge is the ability to execute commands. There should be a topic where PI will subscribe to commands like 'click' and then execute 'xdotool click 1'. So clicking OK on the remote will send it to the home automation system and it will reply back to simulate Click. I use it to navigate web page and click buttons without a mouse
I keep getting this error when trying to start the application. I've tried changing the port in the config but the error remains.
I've tried the default port=RPI
. Using cec-client -l
I got following output:
libCEC version: 6.0.2, compiled on Linux-5.10.63-v8+ ... , features: P8_USB, DRM, P8_detect, randr, RPi, Exynos, Linux, AOCEC
Found devices: 1
device: 1
com port: /dev/cec0
vendor id: 0000
product id: 0000
firmware version: 0
type: Linux
What to me looked like I should use port /dev/cec0
but with the same result.
I followed the setup as described here. Only things different is that is don't have the /dev/vcsm
and I had to change the dockerfile
as in AlecLetourneau#1.
Any idea how to resolve this issue?
Hi :)
Thanks again for making this great tool.
How do I change how the cec-mqtt-bridge advertises itself? e.g. Playback 3 (9) instead of Recorder 1 (1) or as Unregistered (F). Tried changing "id" in the default configuration in bridge.py from 1 to 9, but that did not seem to change anything?
I see that under "setup CEC" it says "cec_config.deviceTypes.Add(cec.CEC_DEVICE_TYPE_RECORDING_DEVICE)"
Is it possible to control other CEC devices without appearing as a device itself?
Any chance you can provide some basic instructions to install, setup, and run for an RPi running Raspbian?
Would be useful for everyone running their services in containers...
I run pip3 install -r requirements.txt
and get (also tried with sudo)
Collecting python-lirc==1.2.3 (from -r requirements.txt (line 1))
Using cached https://files.pythonhosted.org/packages/20/37/5614ed0459439a96430e1aac479b6608b51e69ca0bd7d91277517d5895e9/python-lirc-1.2.3.tar.gz
Collecting paho-mqtt==1.3 (from -r requirements.txt (line 2))
Using cached https://www.piwheels.org/simple/paho-mqtt/paho_mqtt-1.3.0-py3-none-any.whl
Building wheels for collected packages: python-lirc
Running setup.py bdist_wheel for python-lirc ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-48kj4bye/python-lirc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpmm8tstinpip-wheel- --python-tag cp35:
running bdist_wheel
running build
running build_ext
building 'lirc' extension
creating build
creating build/temp.linux-armv6l-3.5
creating build/temp.linux-armv6l-3.5/lirc
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/lirc/ -I/usr/include/python3.5m -c lirc/lirc.c -o build/temp.linux-armv6l-3.5/lirc/lirc.o
lirc/lirc.c:276:30: fatal error: lirc/lirc_client.h: No such file or directory
#include "lirc/lirc_client.h"
^
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
Failed building wheel for python-lirc
Running setup.py clean for python-lirc
Failed to build python-lirc
Installing collected packages: python-lirc, paho-mqtt
Found existing installation: python-lirc 1.2.1
Not uninstalling python-lirc at /usr/lib/python3/dist-packages, outside environment /usr
Running setup.py install for python-lirc ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-48kj4bye/python-lirc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-zwiaan5i-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_ext
building 'lirc' extension
creating build
creating build/temp.linux-armv6l-3.5
creating build/temp.linux-armv6l-3.5/lirc
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-6waWnr/python3.5-3.5.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/lirc/ -I/usr/include/python3.5m -c lirc/lirc.c -o build/temp.linux-armv6l-3.5/lirc/lirc.o
lirc/lirc.c:276:30: fatal error: lirc/lirc_client.h: No such file or directory
#include "lirc/lirc_client.h"
^
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
Can't rollback python-lirc, nothing uninstalled.
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-48kj4bye/python-lirc/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-zwiaan5i-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-48kj4bye/python-lirc/
Any idea what is wrong? Thanks for your help.
The new code doesn't strip off the prefix from the command topic, so as a result the commands don't get processed.
How do you install in raspberry pi and test it? A simple guide would be useful
Within bridge.py, it seems the decision was made to set power status to on
when a device broadcasts its vendor ID or physical address. This invalidates the actual Report power status
routine just above!
I can't see any reason for either of those two routines to exist at all so I'd propose removing them. I just have in my own install and it means the power status can actually be trusted again! Before, it was just constantly flapping to on
every time it broadcasted itself, and then back off once it broadcasted its power status.
There is an option to enable TLS, but there is no way to provide a certificate for it. I use a cert-based auth and a self-signed cert for my mqtt broker. The paho-mqtt documentation (https://pypi.org/project/paho-mqtt/#client) suggests to put these parameters to tls_set function:
tls_set(ca_certs=None, certfile=None, keyfile=None, cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLS, ciphers=None)
While the tls_version and ciphers might not be so important, the first 3 arguments are more common to be set.
My r-pi kernel is killing bridge.py after a few days due to it being out of memory. Has anyone else had this issue?
Python version 3.5.3
Kernel version Linux raspberrypi 4.9.59+
In kern.log about the kill:
May 9 07:20:57 raspberrypi kernel: [584030.004827] 151 pages in swap cache
May 9 07:20:57 raspberrypi kernel: [584030.004832] Swap cache stats: add 26489, delete 26338, find 2254/2535
May 9 07:20:57 raspberrypi kernel: [584030.004835] Free swap = 0kB
May 9 07:20:57 raspberrypi kernel: [584030.004838] Total swap = 102396kB
May 9 07:20:57 raspberrypi kernel: [584030.004842] 114688 pages RAM
May 9 07:20:57 raspberrypi kernel: [584030.004844] 0 pages HighMem/MovableOnly
May 9 07:20:57 raspberrypi kernel: [584030.004847] 3555 pages reserved
May 9 07:20:57 raspberrypi kernel: [584030.004849] 2048 pages cma reserved
May 9 07:20:57 raspberrypi kernel: [584030.004853] [ pid ] uid tgid total_vm rss nr_ptes nr_pmds swapents oom_score_adj name
May 9 07:20:57 raspberrypi kernel: [584030.004889] [ 91] 0 91 2404 702 8 0 59 0 systemd-journal
May 9 07:20:57 raspberrypi kernel: [584030.004899] [ 129] 0 129 3575 15 8 0 135 -1000 systemd-udevd
May 9 07:20:57 raspberrypi kernel: [584030.004910] [ 202] 100 202 4316 19 9 0 92 0 systemd-timesyn
May 9 07:20:57 raspberrypi kernel: [584030.004920] [ 231] 0 231 1321 13 5 0 41 0 cron
May 9 07:20:57 raspberrypi kernel: [584030.004929] [ 233] 105 233 1622 45 7 0 59 -900 dbus-daemon
May 9 07:20:57 raspberrypi kernel: [584030.004939] [ 236] 0 236 5712 94 11 0 80 0 rsyslogd
May 9 07:20:57 raspberrypi kernel: [584030.004948] [ 240] 0 240 1842 157 7 0 73 0 systemd-logind
May 9 07:20:57 raspberrypi kernel: [584030.004958] [ 247] 65534 247 1321 4 6 0 57 0 thd
May 9 07:20:57 raspberrypi kernel: [584030.004967] [ 256] 108 256 1596 215 7 0 61 0 avahi-daemon
May 9 07:20:57 raspberrypi kernel: [584030.004976] [ 266] 108 266 1596 5 7 0 72 0 avahi-daemon
May 9 07:20:57 raspberrypi kernel: [584030.005027] [ 340] 0 340 2530 79 8 0 113 0 wpa_supplicant
May 9 07:20:57 raspberrypi kernel: [584030.005040] [ 360] 0 360 520 0 5 0 33 0 hciattach
May 9 07:20:57 raspberrypi kernel: [584030.005051] [ 365] 0 365 1766 0 7 0 75 0 bluetoothd
May 9 07:20:57 raspberrypi kernel: [584030.005060] [ 421] 0 421 717 26 5 0 57 0 dhcpcd
May 9 07:20:57 raspberrypi kernel: [584030.005070] [ 422] 0 422 2546 0 8 0 137 -1000 sshd
May 9 07:20:57 raspberrypi kernel: [584030.005079] [ 430] 999 430 8979 245 9 0 124 0 snapclient
May 9 07:20:57 raspberrypi kernel: [584030.005089] [ 435] 0 435 1045 0 6 0 34 0 agetty
May 9 07:20:57 raspberrypi kernel: [584030.005098] [ 453] 1000 453 2413 51 9 0 119 0 systemd
May 9 07:20:57 raspberrypi kernel: [584030.005108] [ 456] 1000 456 2821 42 8 0 270 0 (sd-pam)
May 9 07:20:57 raspberrypi kernel: [584030.005118] [ 484] 1000 484 1364 35 7 0 63 0 tmux: server
May 9 07:20:57 raspberrypi kernel: [584030.005128] [ 485] 1000 485 1542 0 6 0 339 0 bash
May 9 07:20:57 raspberrypi kernel: [584030.005138] [ 510] 1000 510 142561 97832 257 0 23076 0 python3
May 9 07:20:57 raspberrypi kernel: [584030.005149] [ 4460] 0 4460 1694 79 6 0 8 0 cron
May 9 07:20:57 raspberrypi kernel: [584030.005159] [ 4466] 0 4466 1694 79 6 0 8 0 cron
May 9 07:20:57 raspberrypi kernel: [584030.005168] [ 4480] 0 4480 471 21 5 0 0 0 sh
May 9 07:20:57 raspberrypi kernel: [584030.005178] [ 4482] 0 4482 471 21 5 0 0 0 sh
May 9 07:20:57 raspberrypi kernel: [584030.005187] [ 4483] 0 4483 451 22 5 0 0 0 run-parts
May 9 07:20:57 raspberrypi kernel: [584030.005197] [ 4484] 0 4484 451 22 5 0 0 0 run-parts
May 9 07:20:57 raspberrypi kernel: [584030.005206] [ 4485] 0 4485 1433 170 6 0 13 0 cron
May 9 07:20:57 raspberrypi kernel: [584030.005216] [ 4486] 0 4486 471 20 4 0 0 0 fake-hwclock
May 9 07:20:57 raspberrypi kernel: [584030.005225] [ 4489] 0 4489 471 21 5 0 0 0 fake-hwclock
May 9 07:20:57 raspberrypi kernel: [584030.005235] [ 4491] 0 4491 438 145 4 0 0 0 bsdmainutils
May 9 07:20:57 raspberrypi kernel: [584030.005244] [ 4492] 0 4492 435 146 4 0 0 0 date
May 9 07:20:57 raspberrypi kernel: [584030.005250] Out of memory: Kill process 510 (python3) score 886 or sacrifice child
May 9 07:20:57 raspberrypi kernel: [584030.005299] Killed process 510 (python3) total-vm:570244kB, anon-rss:390332kB, file-rss:996kB, shmem-rss:0kB
May 9 07:20:58 raspberrypi kernel: [584030.679268] oom_reaper: reaped process 510 (python3), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
After following all the instructions related to CEC (including the "install libcec" step) on your guide, I am getting the following error when trying to run bridge.py:
osmc@osmc:/opt/cec-mqtt-bridge$ python3 bridge.py
Initialising CEC...
ERROR: Could not initialise CEC: No module named 'cec'
On this machine (Raspberry Pi) I can run cec-client commands just fine to turn on/off the connected devices (just a TV in my case). It also shows up on my Samsung as any Anynet+ device and can be controlled by my stock TV remote.
Any ideas? I love the project concept and would absolutely love to get this going!
I think this should may be have been LOGGER.debug?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.