Presence

A time period (session) that a user was detected in a space or location.

A presence object may be associated with a user resource directly, or with a device. If presence is associated to a device, that typically indicates that a person is sensed but cannot be identified. This is common when detecting presence using devices such as IR sensors.

Upon creation, the arrived_at attribute is initialized to the current time and the expired_at value is set to the TTL (time to live) added to the current time.

Each time presence is posted for a user or device that already has an active presence session (a session in the same space that hasn't expired) than the active session will be lengthened by the provided TTL. Otherwise a new presence session is created.

📘

Keep your presence TTL short

The maximum allowed TTL is 20 minutes, however for the best results we recommend using a value less than 5 minutes. In the future we may reduce the maximum allowed TTL.

Properties

Property

Type

Description

location_id

Integer

The ID of the location where the presence was detected.

space_id

Integer

The ID of the space where the presence was detected or null if the presence exists at the location (not space) level.

user_id

Integer

The ID of the user, or null if the presence is associated only to a device.

device_id

Integer

The ID of the device, or null if the presence is associated only to a user.

last_seen_at

String

The date and time when the presence was last seen, represented as an ISO-8601 date.

arrived_at

String

The date and time when the presence was first detected, represented as an ISO-8601 date.

expired_at

String

The date and time when the presence will expire, represented as an ISO-8601 date. (This should always be equal to the TTL added to the last_seen_at attribute)

session_active

Boolean

Indicates whether the session is currently active.

user

Object

The user resource, if the presence is associated to a user.

device

Object

The Device resource, if the presence is associated to a device.

Example

{
  "location_id": 1,
  "space_id": 1,
  "user_id": 4,
  "device_id": 2,
  "last_seen_at": "2014-05-22T14:49:48+0000",
  "arrived_at": "2014-05-22T14:49:48+0000",
  "expired_at": "2014-05-22T14:50:18+0000",
  "session_ttl": 30,
  "session_active": true,
  "user": {
    "id": 1,
    "name": "Brian",
    "slug": "brian",
    "avatar": "",
    "created_at": "2014-05-05T16:06:58+0000",
    "updated_at": "2014-05-05T16:06:58+0000",
    "primary_email": {
      "email": "[email protected]",
      "is_verified": false
    }
  }
}