[APP][Pro] Scrypted - Live video, snapshots and object detection from your cameras

This app connects Homey Pro to a Scrypted server and
brings its cameras into Homey.

Scrypted is an open-source video integration platform that talks to just about
any camera — ONVIF, RTSP, Reolink, Unifi, Ring, Tapo, HomeKit and more — and
runs the object detection. This app makes all of that available to Homey.

:test_tube: Test version: Scrypted | Homey

What it does

  • Live video on the device tile, in the mobile app, the web app, and from
    outside your home. Homey proxies the stream over WebRTC, so no port
    forwarding is needed.
  • Snapshots, refreshed on demand and available as a Flow token.
  • Object detection as separate alarms — person, vehicle, animal, package,
    face — and a Flow trigger carrying the frame that triggered it, so a
    notification arrives with the picture already attached.
  • Doorbell trigger, with its snapshot.
  • Motion, audio and battery, where the camera reports them.

Each camera only gets the alarms its own detector can actually produce. A
camera whose model knows person and animal will not show a vehicle tile that
could never become true.

Requirements

  • Homey Pro, firmware 12.7.0 or newer (that is when video support landed).
    Homey Cloud and Bridge cannot reach your local network, so they cannot reach
    Scrypted.
  • A Scrypted server on the same network.
  • The Rebroadcast plugin enabled in Scrypted for the cameras you want to
    stream.

Setup

Open the app’s settings, enter your server address, port and Scrypted account,
then add devices. A login token from npx scrypted login works instead of your
password and can be revoked separately.

What is not in this version

  • Cameras and doorbells only. Drivers for the other device families
    Scrypted exposes — lights, switches, sensors, locks, thermostats, alarm
    systems — are written but I had no such device to test them against, so I am
    not shipping them untested. If you have any of these in Scrypted and want to
    help test, say so here and I will put out a test build.
  • No two-way audio and no PTZ — Homey has no capability for either.

Feedback

Tested against Scrypted 0.143.0 with four cameras from different
manufacturers. Beyond that I am relying on you: tell me which camera and which
Scrypted plugin you are using when something misbehaves, it is the first thing
I will ask.

The app has a diagnostics endpoint that reports exactly what it sees on your
server, which usually settles a problem in one round trip. I will explain how
to use it if needed.


Support the app :heart:

This app is free, and built on my own time — evenings spent making cameras, snapshots and detections behave the same way whatever is behind them. If it puts a live picture on your Homey when it matters, you can support the work:

Telling me which camera and which Scrypted plugin you run helps just as much — every setup that lands here makes the next one work out of the box. Thank you for using it, and for every bit of support :pray:

Downloaded this App this morning, setting up was very easy and straightforward. All of my cameras were immediately recognized and added to Homey without problems. So far this looks great and I’ll be continuing to monitor the progress. All of my cameras were from Aqara so I can’t comment on other device brands just yet but I’ll be testing with other cameras in the future. Thanks for your work and producing a great App for the Homey community.

Scrypted 1.1.0 is up for testing — it is in certification now, so it will reach the store on its own in a week or two. Until then: https://homey.app/a/com.dataweavelabs.scrypted/test

A “Last detection” tile on every camera. The snapshot tile shows the present; this one shows what set the alarm off — the recorder’s own thumbnail, already cropped to the person or animal it recognised.

A Flow condition: “recorded [person] in the last [N] minutes”. Answered from the recorder’s index rather than the app’s own memory, so it stays right after a restart and covers time from before you added the camera. A recording counts while it is still running, so someone standing in front of the camera right now matches a one-minute window.

Live video can be negotiated directly with Scrypted. A new Video stream transport setting per camera, off by default — RTSP is what these cameras are known to play, so opt in rather than wake up on it. Needs a camera exposing RTCSignalingChannel, and applies after an app restart.

And a crash. Scrypted’s detector re-reports the same object on every analysed frame — bursts of 500 events a second here — and the app fetched a JPEG and fired a Flow trigger for each one. Triggers are now rate-limited per object type: the first fires immediately, and Trigger cooldown is yours to set (0 restores the old behaviour). Detection alarms still update on every frame, which is what keeps them true while something is actually there.

The tile shows a thumbnail, not the clip. On the NVR I tested against, getVideoClip fails for every recording — it indexes events without keeping their footage — so a clip tile would have been one that never opens. If yours does keep footage, say so and I will look at it.