DIY Apple AirPrint/Play & Homekit on Raspberry Pi
Our HomePi was originally cobbled together to integrate older/non-complaint devices into the world of Apple AirPlay/Print. The little gizmo has evolved over time as devices change in/out around the house and now supports Apple HomeKit to integrate non-compliant 'smart' devices.
The HomePi has worked like a champ for years. This recipe is basically a retrace of my steps for future rebuilds, but may be useful to others.
Migrated to new site spring 2021 - original site/recipe @
Background & Capabilities
Many of the techno problems around our home tend to revolve around integrating older equipment with modern devices or attempting to deal with the deluge of new 'smart' devices, each with its own App or interface. Our 'vintage' stereo and network printer were prime examples of the old world - simply not iPhone/iPad compatible in terms of streaming music or printing.
On the other end of the spectrum, we seemed to be constantly fumbling with a variety of apps provided with our newfangled smart home (lights, switches, appliances, etc) - Waaay too complicated!
The Raspberry Pi was originally dropped onto our network to fill the Air Gap by emulating Apple AirPlay and AirPrint services and ultimately added HomeKit services so Siri could begin helping out around the house.
HomePi V1 (2014): Raspberry Pi 1 Model B used to integrate an old network printer into the Apple AirPrint world (Cups).
HomePi V2 (2015): Added AirPlay services (Shairport-sync) services to allow iPads/iPhones to stream music to Bose Wave Radio.
HomePi V3 (2018): Homekit services (homebridge) added to pull together our 'smart' home. Integrates non-compliant smart devices into Apple Homekit world. V3 also involved simplified OS (DietPi) and RPi 3 Model B hardware.
Home Pi V4 (2020): V4 involved an OS (Buster) upgrade and more simplification. AirPrint services were dropped due to new network printer that no longer needed help.
HomePi V5 (2023): V5 rebuild/cleanup. Recipe updates here/there based on latest releases. No longer using Shairport or CUPS but left steps in recipe as options.
Level of Difficulty & Prep Time
A cheap, easy and fun little project - no programming required but Raspberry Pi/Linux knowledge will come in handy. 1-2 hours to get things installed and running.
MUCH easier than it used to be, thanks to DietPi ... original recipe to the right (pdf).
Just in case!
Our current HomePi hardware profile:
*Note: Affiliate Links, I may get kickback from Amazon if you click/buy!
Dietpi is now used for the HomePi foundation. It provides a lite version Raspbian and includes a library of optimized Pi software packages.
Step By Step
Notes to self on OS Prep (DietPi IS RaspOS) and some handy optimized packages ...
Our old printer finally passed away, so HomePi no longer provides AirPrint services, but here's the original recipe updated for DietPi. I ran a quick test, looks to be good-to-go. Install/setup takes ~30 Mins.
Double check that avahi & CUPS were installed during DietPi Install steps above
// I think "dietpi-software list | grep =2 " will highlight installed software //
HomeBridge is still not part of DietPi software library ... manual install required, but it is A LOT easier than it used to be!
This one will still take some time, count on an hour with minimal plugin playtime!
Homepage/info @ homebridge.io, github.com/homebridge/homebridge. Install Steps are dissected from *new* HomeBridge on Raspian Lite instructions.
Touch-ups & Tweaks
Spring 2023 Update Notes
Cleaned up the recipe but ended up not upgrading to fresh Bullsye rebuild but decided to hold off because of an issue with Backup/Restore @ https://github.com/homebridge/homebridge/issues/3346. Will revisit when I have time.
A couple of plugin updates
Updated Node.js by hand - v16.19.1 to v18.16.0. Pretty simple/painless via Homebridge ... should be automagically managed by Dietpi in new recipe(?!).
More info @ https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js.
Check version via: node -v
Update via: [sudo] hb-service update-node
Homebridge-Hue: v0.13.49 to v0.13.59
Homebridge-Wemo: v5.0.5 to v6.0.2
homebridge-smartthings-ik: v1.5.0 to v1.5.8
Winter 2022 Update Notes
Some cleanup/updates: A couple of new "Smart" things to incorporate into the home and some forced plugin updates. Also removed the soundcard and cable to Bose - Airplay services no longer needed or used - HomePod sits right on top of Bose radio and sounds just as good! ... notes/log
Failed attempted an update to Buster, ended up with some clumsy network issues during install, decided to simply update for now.
dietpi-update v8.13.2->v8.14.2 ...
also did a - apt upgrade Y
dietpi-software - couple of changes
Removed shairport-sync, no longer need to offer Airplay services.
Added DietPi-Dashboard (backend only) - HomePi is now monitored via ServerPi on our network
Removed RPi-Monitor - replaced by Dashboard
Disabled Audio - no longer needed
Update to v1.6.0 via UX
Enough for now ... will do a rebuild using Bullseye in the spring, I think that should simplify this gizmo even more
Spring 2022 Update Notes
Spring cleaning during the winter ... some leftover HomePi updates. Should be good for a long while!
DietPi update from 7.5.2 to 8.1.2 ... no issues. Just let dietpi-update do it's thing!
Homebridge update v1.3.6 to 1.4.0 ... no issues
HomebridgeUi update from v4.41.2 to 4.42
Homebridge Deebotecovacs update from v1.4.6 to 1.4.7 ... hmmm some odd chatter during update
Homebridge-hue update from v0.13.22 to v013.36
plugin recommends running on Node.js v16.13.2 or later ... Easy enough:
From Homebridge "How to Update Node.js" article, did one of these: hb-service update-node
Homebridge Nest update from v4.6.3 to 4.6.4
Homebridge Platform Wemo v3.3.1 - Replace with Homebridge-wemo v4.7.0
Platform Wemo was deprecated/replaced quite a while ago but w/out auto migration. Just hadn't taken time to deal w/ ramifications of automations and such - some old/original smart-stuff here
Step-by-step based on info @ https://www.npmjs.com/package/homebridge-platform-wemo
Backup Homebridge (... Backup/Restore)
Saved a copy of json from HB Config editor (not much there)
Disabled current Wemo-Platform Plugin and restarted HB
Uninstalled Wemo-Platform Plugin
Installed homebridge-wemo Plugin and accepted config as presented (json looked just like old)
Had to move Wemo stuff to correct room assignments and re-setup Automations ... not too bad
Homebridge Bravia Tvos - v5.0.1 to v5.0.8
Homebridge Nest - v4.5.4 to v4.6.4
Homebridge Smartthings - v2.3.8
Fall 2021 Update Notes
Loooong time since last update
DietPi update from 7.0.x to 7.5.2 ... with one little bump in the road ...
Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
To fix, did one of these:
apt-get update --allow-releaseinfo-change
... Then let dietpi-update do it's thing. All else seemed well
Homebridge now v1.3.4
Some of the Homebridge Plugins were complaining about needing Node.js v14.17.2 or later ...
From Homebridge "How to Update Node.js" article, did one of these:
HomebridgeUi - no issues going to v4.41.2
Homebridge-hue - no issues during update, now v0.13.22
Homebridge-platform-wemo - project apparently moved to homebridge-wemo, but will change some other time. No update issues, now v3.3.1
Homebridge Bravia Tvos (not used) - v5.0.1
Homebridge Nest - v4.5.4
Homebridge Smartthings - v2.3.8