Revisiting Homekit USB Webcam on Raspberry Pi 3
On home HomeKit setup, some homebridge plugins (Nest, WeMo) needed updating. And flaky webcam performance needed addressing. It was also time to update the node.js install. Got it all completed.
Previously:
- HomeKit connecting to Nest thermostat and Belkin WeMo devices
- Adding a Webcam to Homekit Using a Raspberry Pi 3
node.js and homebridge+plugins re-install
Before troubleshooting the camera, update all the things. As nvm was already installed, used it to update node + npm.
nvm install node
# upgrade to latest npm on current node version
nvm install-latest-npm
nvm alias default node
# system-wide node links
file `nvm which node`
NODE_BIN_DIR=$(dirname `nvm which node`)
sudo ln -sf ${NODE_BIN_DIR}/node /usr/local/bin/node
sudo ln -sf ${NODE_BIN_DIR}/npm /usr/local/bin/npm
# Now install the homebridge modules
sudo apt-get install -y libavahi-compat-libdnssd-dev
sudo npm install -g --unsafe-perm homebridge
# plugins
sudo npm install -g homebridge-platform-wemo
sudo npm install -g homebridge-nest
sudo npm install -g homebridge-camera-ffmpeg
# system-wide link that systemd service uses
sudo ln -sf $(which homebridge) /usr/local/bin/homebridge
Webcam improvements
I am still using the Logitech C615 USB webcam plugged into a Pi 3 B. Previous HomeKit post covers installation of required software and system components in Raspbian.
Updated Settings in config.json
Notable changes:
- there is now an explicit “
stillImageSource” that turns someffmpegknobs to improve reliability of snapshots. - the
reswitch is for “real-time” style streaming that is useful if the source stream is a file, in this case/dev/video0 - “
videoProcessor” is a local built-from-sourceffmpegbinary. This is not necessary as theffmpegbinary available in Raspbian stretch has all the required runtime configs.
Using systemd to Start homebridge on Bootup
Using instructions at Running Homebridge on a Raspberry Pi for Running Homebridge on Bootup (systemd) there is a homebridge.service file that was already installed.
Test changes to config.json for homebridge running under systemd
sudo systemctl restart homebridge
sudo journalctl -f -u homebridge | less -F
Press Ctrl-C to stop live log file streaming and q to quit less
See previous posts for more debugging ideas if problems are encountered.
What it looks like?
In Home.app “[Home]” tab, if you have the camera designated as a “Favorite”

References
- GitHub project hosting the
homebridge-camera-ffmpeghomebridge plugin - GitHub project of
homebridge - Previous blog posts
Must affirm third-party consent for Disqus comments to appear.