Turn a spare iPhone into an ONVIF camera for Home Assistant (no cloud, no account)

I built an iOS app called Vantage that makes an old iPhone behave like a normal IP camera, and I want to share it here because Home Assistant was the first thing I got it working with. Link at the bottom, and a disclosure up front: it’s my app. Free tier works fully with HA; some features are paid.

What it is

The phone runs an RTSP server and an ONVIF Profile S service, so anything that takes a third-party ONVIF camera treats it like one. Nothing leaves your network. No account, no cloud, no analytics. It’s just a camera on your LAN that happens to be a phone.

Home Assistant setup

It works with the built-in ONVIF integration, no HACS or custom component needed:

  1. Settings → Devices & services → Add integration → ONVIF
  2. Turn off “Search automatically” and enter the phone’s IP, port 8080, and the username/password you set in the app
  3. In the integration’s Options afterwards, set RTSP transport to tcp

You get a camera entity per stream, snapshots, and motion as a binary sensor via ONVIF events, so it drops straight into automations. The Generic Camera integration also works if you’d rather use raw URLs.

If the phone is capable with time of flight (Lidar) sensors, it uses those too for motion.

Happy to answer setup questions in the thread. Feedback on what HA users actually want from this is genuinely useful to me.

Vantage: RTSP ONVIF Camera on the App Store (‎Vantage: RTSP ONVIF Camera App - App Store)

Is it for iPad also? How far back in time the app would work on older-gen iOS devices that no longer getting updates for years??

Requires iOS 17.0 or later.

iPhones that support iOS 17 are:[114][115][116]

To be fair: The title says spare iPhone not old iPhone :warning:

I know. I was hoping the code could support as far back as possible…
Or (not sure if this is easier or not) even a different lite version with limited feature set for even older iDevices.

One could only hope…

It’s against apple philosophy. They don’t allow apps pushed to the app store to work on (very) old devices. It’s an pure artificial limitation - same is enforced on apps via Google play store by the way. As LG spoke out loud: They own the glass - not us :person_shrugging:

Planned obsolescence powered by apple & google…

Nothing new, 101 years ago GE, Philips, Osram and others build a cartel that light bulbs fail early (lower life expectancy by less then half). They did it all without software back then…

The cartel took over market territories and lowered the useful life of such bulbs, which is commonly cited as an example of planned obsolescence.[1]

cartel lowered operational costs and worked to standardize the life expectancy of light bulbs at 1,000 hours[4] (down from 2,500 hours),[4] while raising prices without fear of competition.

Today the planned obsolescence is simply forced via software - brave new world! :raising_hands:

BTW: Apple, Google, LG and others all gang up in csa-IoT having essential control over matter and pushing that towards total enshitification by the looks of :see_no_evil_monkey:

Looks like a useful app to recycle old iPhones, but I do have some questions:

  1. Does the screen need to stay on, or can the app stream while the phone is locked?
  2. How does the app and/or iPhone handle battery health when the charger is permanently plugged in?