Resurrecting a Raspberry Pi for HomeKit Webcam
Tags: raspberrypi, homekit, iot, homeautomation
Published: 2019-11-24 01:36:35

---
title: Resurrecting a Raspberry Pi for HomeKit Webcam
published: true
tags: raspberrypi, homekit, iot, homeautomation
canonical_url: https://www.samjarman.co.nz/blog/rpi-hombridge-webcam
---

Hi There,

 

Recently I attended the quite excellent [Wellington Home Automation Hackers](https://www.meetup.com/Wellington-Home-Automation-Hackers/) meetup here in Wellington, New Zealand. Inspired by the talks, I decided I'd dig back out my raspberry Pi and get into something!  
  
So, ignoring my other side projects, I got into it. I plugged in my Pi for the first time since 2014, fearing the worst. To my plesant surprise, it booted just fine and even connected to the wifi with relative ease. I ran `apt-get update` and `apt-get upgrade` (one fetches the latest versions of things, the other actually installs them). I [tweeted about it](https://twitter.com/samjarman/status/1035081742200188928), and then took off for a chore. 

I came back to twitter with a reply saying I should probably just reflash it. After a day or so of thinking about it, I thought yeah, might as well.

So, off to the raspberry pi website I went to fetch the latest raspbian. I thought, oh, I need the GUI (mainly just wanted to see the progress in 4 years - spoilers - excellent). However, once downloaded and attempted to be flashed with Etcher as [per these instructions.](https://www.raspberrypi.org/documentation/installation/installing-images/README.md) However, since my SD card was only 4GB, I had to opt for the Lite version of the OS, so I went with that.  
  
From there, I could upgrade from Raspbian Lite (fresh install) to Raspbian with PIXEL GUI with a 4GB card by running these commands in order:  
 

```
sudo apt-get updatesudo apt-get install --no-install-recommends xserver-xorgsudo apt-get install --no-install-recommends xinitsudo apt-get install raspberrypi-ui-mods #PIXEL GUIsudo apt-get install lightdm
```

That took some time, and once a reboot was done, we had a GUI. From there, it was time to get Homebridge set up.

There was a couple of gotchas here, to say the least, so I followed [this guide](https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi). I ended up running these commands for _my_ PI. 10.9.0 was the latest at the time.

```
wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-armv6l.tar.xztar xJvf node-v10.9.0-linux-armv6l.tar.xzsudo mkdir -p /opt/nodesudo mv node-v10.9.0-linux-armv6l/\* /opt/node/sudo update-alternatives --install "/usr/bin/node" "node" "/opt/node/bin/node" 1sudo update-alternatives --install "/usr/bin/npm" "npm" "/opt/node/bin/npm" 1
```

I then installed Avahi and other dependencies, which is required by the mdns package in HAP-NodeJS library. (Apparently, I dunno, just reading that guide...\*)

```
sudo apt-get install libavahi-compat-libdnssd-dev
```

From there, I could install [HomeBridge](https://github.com/nfarina/homebridge). I ran

```
sudo npm install -g --unsafe-perm homebridge
```

From here, I found text editing on the PI tricky (hands up if you don't know Vi...). So I created the config.json file for it on my Mac, [turned on SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) (changed the default password first), and copied it over with SCP, the easiest of linux commands. (Sarcasm). 

I then followed [these instructions](https://github.crookster.org/Adding-A-Webcam-To-HomeKit/) to add the webcam via ffmpeg.   
  
It took a reboot again and a few attempts to pair with Home.app on my phone, but eventually, it just worked. I could see a 720p feed of myself. That was worth the 2 days. The mirror in here is lame anyway.  
  
Next steps for this tinkering is to add Homebridge to system services so it starts automatically after a boot, and I'm looking into homebridge compatible wall sockets too, as I have a Lava lamp here that I think would be better controlled from my phone. 

Until next time...

Sam

 

_\*Yeah, I'm just blindly following install instructions from the internet with minimal. I'm being quite cavalier and I do not recommend this approach for your daily driver computer. But this is a Pi, I can flash and start again if I break something._