Which properties are special in DevicePilot

Helping DevicePilot understand your data

DevicePilot is schemaless, so you can stream-in your device properties and metadata without changing their name. This means that when you use DevicePilot to analyse your device estate, all properties have the names that you're used to.

However there are just a few property names which DevicePilot treats specially to make your life easier:

  • $id - this is the only mandatory property name when data is posted into DevicePilot
    • Every device must have a unique value of $id so that DevicePilot can distinguish one device from another.
    • $id can be a number or a string.
    • If it's a string, it must only consist of ASCII characters:
      • A-Z
      • a-z
      • 0-9
      • "_" (underscore)
      • ":" (colon)
      • "-" (dash)
    • If you subscribe to a broker such as MQTT, DevicePilot will automatically translate its device id property into $id.
  • $ts - if you're posting old data, supply this property to timestamp it (and have a think about timezones).
  • icon - if supplied as a string this will define which icon to use for this device in maps and lists
  • latitude and longitude - if you supply the device location as decimal degrees in these two properties then Maps will automagically work (otherwise you'll have to adjust the settings to tell Maps which property names you're using)
  • timezone - if your devices exist in multiple timezones, set this property to their IANA timezone so that operations such as group-by-time-of-day work correctly

Properties First seen and Last seen are set automatically to the earliest and latest timestamps for each device.