Just had some fun trying to get a remote pycec container running on a pi zero 2 , so I thought I would share my experiences
Background, I already have pycec running locally, as an addon, using GitHub - samueltardieu/homeassistant-addon-pi-cec: HomeAssistant add-on to expose Raspberry Pi HDMI CEC - I’ve forked that at GitHub - barneyman/homeassistant-addon-pi-cec: HomeAssistant add-on to expose Raspberry Pi HDMI CEC which is what this based on
I then wanted to control another TV & Amp that was in another room, using a Zero2 i had gathering dust, as a docker container so i could rinse and repeat (using my Docker registry)
- Burn a lite version of Buster, using the Raspberry Imager
- Give it a sensible name, wifi creds & enable SSH
- SSH to it
- update it
sudo apt update && sudo apt upgrade && sudo apt install git
- install docker
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
- add yourself to the docker group
sudo usermod -aG docker $USER
- Log out, log in (for the OS to re-eval your new group membership)
- Clone my fork (specifically for my ‘helper’ shell scripts)
git clone https://github.com/barneyman/homeassistant-addon-pi-cec.git && cd homeassistant-addon-pi-cec
- build the docker image - this will take a ‘a cup of tea’
sh ./build.sh
- disable DRM VC4 V3D driver in
/boot/config.txt
(pycec needstvservice
which this driver disables)-
sudo nano /boot/config.txt
- findEnable DRM VC4 V3D driver
and comment out that section
-
- while in that file, turn off the ‘rpi switches TV input when it reboots’ by adding
hdmi_ignore_cec_init=1
- reboot
- log back in,
cd homeassistant-addon-pi-cec
- run the test - you may see a few deprecation warnings but no assertions or strange behaviour
sh ./runtest.sh
- edit your
configuration.yaml
- add an
hdmi_cec
section with ahost
entry (details in my repoReadme.md
, the host is your rpi hostname)
- add an
- restart your HA
- you should now have a bunch of
switch.hdmi_?
entities - when you’re happy that’s worked, kill the
runtest.sh
above executerun.sh
which will make it persistent across boots- beware! HA will vomit errors when pycec disappears, another reboot of HA won’t hurt
I hope this saves someone the 3 hours it took me to get it going