How do detections appear in Home Assistant? As event entities on each camera. The smart detection event fires once for each object type and source pair, naming the object in its event type and the zone, line or loitering source beside it. Package arrives as its own event, sounds as another, and vehicles get a dedicated event with plate and color attributes.
The integration, per its documentation, creates two kinds of entity for detections. Binary sensors report a state: one detected object sensor per smart detection type the camera supports, plus a combined sensor for any object at all.
Events report that something happened. Each camera exposes a motion event, a smart detection event, a sound detection event where the camera has a microphone, and a package event where the camera supports it.
The smart detection event is the workhorse, and these are its attributes:
event_type names the object: person, vehicle, animal, package, license_plate, face, car or pet, with new types surfacing automatically as Protect adds them.
event_source names the raw Protect source: smartDetectZone, smartDetectLine or smartDetectLoiterZone.
smart_detect_types lists every object type seen during the event.
event_id identifies the event, and it is the key to the thumbnail and clip.
The documentation says the event fires once for each object and source pair across the lifecycle of a detection, so a type Protect only reports partway through still surfaces. That design has a consequence covered in the guardrails below.
Package is, however, the exception to the sensor rule. Protect reports a package as a single, already-ended detection, which a sustained binary sensor cannot represent, so it exists only as an event.
Sound detection follows the same pattern, in fact, with its own vocabulary. The documented types are smoke, co, siren, baby_cry, speaking, bark, car_alarm, car_horn and glass_break.
Be aware that the connection mode decides how much of this you get. In API-key-only mode, the documentation lists motion, smart detection, sound detection and package events, while the doorbell ring, NFC, fingerprint and vehicle events need full access.
Full access also unlocks the media source and the proxy views. A notification can carry a thumbnail from /api/unifiprotect/thumbnail/ followed by the config entry ID and the event_id, and Home Assistant signs those URLs automatically when they are used in an automation.