"Event-based" Generic Camera (Intermittent RTSP Streams)

I have a Eufy Floodlight Cam 2 Pro. It technically supports local “NAS storage” via RTSP, but it’s also an event (motion) based camera that does not support continuous recording, even on the local RTSP stream.

From what I can tell, this is how they envisioned this feature to work:

  1. The camera can be set up to provide a RTSP stream URL.
  2. During the setup process the camera would be put in test mode which keeps the RTSP stream alive for 5 minutes or so.
  3. You are expected to configure your NAS to capture this RTSP stream within this time window. The NAS should be happy to accept it as it just looks like a normal RTSP stream.
  4. Eventually, the RTSP stream will be shutdown form the camera side when the time window expires. From here on, hitting the RTSP stream URL returns an error of some sort. The NAS is expected to ignore this error but keeps on retrying.
  5. When the camera is trigged by motion, the camera wakes up and the RTSP stream is available again. Since the NAS was expected to keep retrying, it will notice this and capture a clip. It’s not entirely clear whether the stream is realtime and the NAS is expected to poll very frequently as to not miss part of the event, or if the camera buffers the event internally and allow it to be retrieved over RTSP within some time window while it’s still “awake”.
  6. When the event is over, the stream ends. Rinse and repeat.

While this doesn’t seem like a very elegant design, it seemed plausible enough and manufacture enough to support to an extent. At its core, it’s just an intermittently available RTSP stream and may be useful for something else other than security cameras?

This somewhat works today, but here are a lot of issues that make this use case not really usable. For example, the snapshot seems very out-of-date and tapping on it brings up a blank screen (because HA believes the camera supports streaming, but when the stream component tries to load the stream it fails).

In general, the assumption/expectation that a stream is always available seems pretty baked in. There are logic for error handling and retries, but they are more written to deal with temporary disconnects. When a stream becomes unavailable, a lot of errors are written to the logs, and after extended period, it seems like it eventually slows down or stops trying altogether.

I am wondering if there are appetite in making changes to accommodate this use case? To be clear, I am not talking about an Eufy-specify integration. I am thinking either beefing up the existing generic camera integration to support an intermittent RTSP stream (e.g. options for ignoring errors, fixed polling intervals), or adding a new type of camera integration that specifically targets this use case (while still not coupled to Eufy specifically).

Great explanations, much more detailed that most people only asking for continuous RTSP. =)

Have you tested how long it takes for the NAS to recognise the available stream and record the event? I wonder too if a typical Synology NAS refreshes that frequent. A longer delay would be an issue if an intruder were to smash the camera or jam the wifi signal only to loose the entire clip being recorded unto the NAS and thus no way to sync to the cloud / have a backup in place.

Btw. I assume 24/7 RTSP isn’t supported due to a hardware limitation, like it’s not available at all for the regular floodlight for same reason and indoor cams have RTSP reduced to 1080p stream, probably CPU cant handle it or risk overheating, right?