This event supports updateable notifications. Existing app notifications created from this event can be updated using the content of an subsequent event with the same eventThreadId.
An object that indicates resources that might have similar updates to this event. The resource of the event itself (from the resourceUpdate object) will always be present in this object.
object
See Events for more information on the different
types of events and how they work.
Errors
The following error code(s) may be returned in relation to this trait:
Error Message
RPC
Troubleshooting
Camera image is no longer available for download.
DEADLINE_EXCEEDED
Event images expire 30 seconds after the event is published. Make sure to download the image prior to expiration.
Event id does not belong to the camera.
FAILED_PRECONDITION
Use the correct eventID returned by the camera event.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-25 UTC."],[[["\u003cp\u003eThe \u003ccode\u003esdm.devices.traits.CameraPerson\u003c/code\u003e trait applies to devices that have person detection capabilities and generate "Person" events when a person is detected.\u003c/p\u003e\n"],["\u003cp\u003e"Person" events provide details about the event, including timestamps, unique identifiers, and the state of the event thread, which can be used for notifications.\u003c/p\u003e\n"],["\u003cp\u003eThe event payload includes an \u003ccode\u003eeventSessionId\u003c/code\u003e (for doorbell devices) or \u003ccode\u003eeventId\u003c/code\u003e (for cameras and displays) that can be used for associating events or downloading images.\u003c/p\u003e\n"],["\u003cp\u003eEvents are updateable, allowing existing notifications to be updated with new information from subsequent events within the same thread.\u003c/p\u003e\n"],["\u003cp\u003ePotential errors include \u003ccode\u003eDEADLINE_EXCEEDED\u003c/code\u003e if an event image is expired and \u003ccode\u003eFAILED_PRECONDITION\u003c/code\u003e if an incorrect \u003ccode\u003eeventId\u003c/code\u003e is used.\u003c/p\u003e\n"]]],["The `CameraPerson` trait signals person detection events in devices like Nest Cams and Doorbells. Upon detecting a person, a \"Person\" event is triggered. This event contains a unique `eventId`, `eventSessionId`, `eventThreadId`, `timestamp`, `userId`, `resourceUpdate`, `eventThreadState`, and a `resourceGroup`, with the `eventThreadId` used to update existing notifications. There are no fields or commands; however, potential errors like `DEADLINE_EXCEEDED` and `FAILED_PRECONDITION` can occur when retrieving event-related images.\n"],null,["\u003cbr /\u003e\n\nCameraPerson Schema\n===================\n\n[Nest Cam (legacy)](/nest/device-access/api/camera) [Nest Cam (outdoor or indoor, battery)](/nest/device-access/api/camera-battery) [Nest Cam with floodlight](/nest/device-access/api/camera-floodlight) [Nest Cam (indoor, wired)](/nest/device-access/api/camera-wired) [Nest Hub Max](/nest/device-access/api/display) [Nest Doorbell (legacy)](/nest/device-access/api/doorbell) [Nest Doorbell (battery)](/nest/device-access/api/doorbell-battery) [Nest Doorbell (wired)](/nest/device-access/api/doorbell-wired)\n\n`sdm.devices.traits.CameraPerson`\n\nThis trait belongs to any device that supports person detection events.\n\n\u003cbr /\u003e\n\nFields\n------\n\n\nThere are no fields available for this trait.\n\n\u003cbr /\u003e\n\nCommands\n--------\n\nThere are no commands available for this trait.\n\nEvents\n------\n\n\u003cbr /\u003e\n\n### Person\n\n[Updateable](/nest/device-access/api/events#updateable_notifications)\n\nA person has been detected by the camera.\n\nThis event supports updateable notifications. Existing app notifications created from this event can be updated using the content of an subsequent event with the same `eventThreadId`.\n\n#### Person event\n\n### Payload\n\n {\n \"eventId\" : \"d8ed858f-aeb5-412c-8235-9713c444b281\",\n \"timestamp\" : \"2019-01-01T00:00:01Z\",\n \"resourceUpdate\" : {\n \"name\" : \"enterprises/project-id/devices/device-id\",\n \"events\" : {\n \"sdm.devices.events.CameraPerson.Person\" : {\n \"eventSessionId\" : \"CjY5Y3VKaTZwR3o4Y19YbTVfMF...\",\n \"eventId\" : \"V347SeIs9TLN2LcFYfY5fj433V...\",\n }\n }\n }\n \"userId\" : \"AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi\",\n \"eventThreadId\" : \"d67cd3f7-86a7-425e-8bb3-462f92ec9f59\",\n \"eventThreadState\" : \"STARTED\",\n \"resourceGroup\" : [\n \"enterprises/project-id/devices/device-id\"\n ]\n }\n\n#### Person event fields\n\n| Field | Description | Data Type |\n|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|\n| `eventSessionId` | [Nest Doorbell (battery)](/nest/device-access/api/doorbell-battery) [Nest Doorbell (wired)](/nest/device-access/api/doorbell-wired) An ID given to events occurring as part of a single session of related events. May be used for consolidating events. Use it to associate this event with the related [ClipPreview](/nest/device-access/traits/device/camera-clip-preview#clippreview) event of the CameraClipPreview trait. | `string` Example: \"CjY5Y3VKaTZwR3o4Y19YbTVfMF...\" |\n| `eventId` | [Nest Cam (legacy)](/nest/device-access/api/camera) [Nest Hub Max](/nest/device-access/api/display) [Nest Doorbell (legacy)](/nest/device-access/api/doorbell) An ID associated with the event. Use it with the [GenerateImage command](/nest/device-access/traits/device/camera-event-image#generateimage) to download the camera image related to this event. | `string` Example: \"V347SeIs9TLN2LcFYfY5fj433V...\" |\n\n#### Event payload fields\n\n| Field | Description | Data Type |\n|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|\n| `eventId` | The unique identifier for the event. | `string` Example: \"d8ed858f-aeb5-412c-8235-9713c444b281\" |\n| `timestamp` | The time when the event occurred. | `string` Example: \"2019-01-01T00:00:01Z\" |\n| `resourceUpdate` | An object that details information about the resource update. | `object` |\n| `userId` | A unique, obfuscated identifier that represents the user. | `string` Example: \"AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi\" |\n| `eventThreadId` | [Updateable](/nest/device-access/api/events#updateable_notifications) The unique identifier for the event thread. | `string` Example: \"d67cd3f7-86a7-425e-8bb3-462f92ec9f59\" |\n| `eventThreadState` | [Updateable](/nest/device-access/api/events#updateable_notifications) The state of the event thread. | `string` Values: \"STARTED\", \"UPDATED\", \"ENDED\" |\n| `resourceGroup` | An object that indicates resources that might have similar updates to this event. The resource of the event itself (from the `resourceUpdate` object) will always be present in this object. | `object` |\n\nSee [Events](/nest/device-access/api/events) for more information on the different\ntypes of events and how they work.\n\n\u003cbr /\u003e\n\n\nErrors\n------\n\nThe following error code(s) may be returned in relation to this trait:\n\n| Error Message | RPC | Troubleshooting |\n|---------------------------------------------------|-----------------------|-------------------------------------------------------------------------------------------------------------------|\n| Camera image is no longer available for download. | `DEADLINE_EXCEEDED` | Event images expire 30 seconds after the event is published. Make sure to download the image prior to expiration. |\n| Event id does not belong to the camera. | `FAILED_PRECONDITION` | Use the correct `eventID` returned by the camera event. |\n\nSee the [API Error Code Reference](/nest/device-access/reference/errors/api) for\nthe full list of API error codes.\n\n\u003cbr /\u003e"]]