Skip to main content

Device Types

Device types classify each device by what kind of equipment it is — a TV, a thermostat, a camera, an amplifier, a controller, and so on. Every device carries exactly one device type, and optionally a finer subtype. The type is mostly an organizational classification, but it also feeds a couple of concrete behaviors, so it is worth setting correctly when you commission a device.

Overview

GEM creates a standard set of device types automatically the first time it boots, so on most jobs you pick from the existing list rather than creating your own. When you add a device, GEM will often pre-select the type for you from the driver you chose — a driver advertises the type(s) it usually pairs with, and the device editor fills the Type field in automatically. You can always override it.

What the device type actually drives:

  • Controller identification — a device classified as a controller is treated as a parent controller / gateway. Other devices can then be attached to it through the Controller field in the device editor, which is how you model a hub (or processor) with child devices behind it.
  • Commissioning shortcuts — when GEM adds devices from a network scan or a bulk import, it resolves the type from the driver's advertised hint and falls back to the catch-all none type when nothing matches.

Beyond that, the type (and subtype) is a classification you can organize and query by. It is not shown as a column in the main device grid, and it is not used for UI icon selection.

Open it from the Device Types button at the top of the Devices page: Open Device Types. There is no separate menu entry — Device Types lives off the Devices page.

The default device types

On a fresh install GEM creates a none type (the catch-all used when no type matches) plus the following standard types. You can add your own and delete the ones you don't use.

NameTypical equipment
noneUnclassified / fallback
audio_matrixMulti-zone audio matrix switchers
audio_receiverAV receivers, integrated amps
cable_receiverCable set-top boxes
cameraIP cameras
controllerHubs, gateways, processors that own child devices
dvrDVRs / NVRs
intercomDoor stations, intercoms
lightLighting controllers / loads
lockDoor locks
media_playerStreamers, media players
plcPLCs / logic controllers
power_controllerPDUs, power / energy control
projectorProjectors
pumpPumps
satellite_receiverSatellite set-top boxes
security_systemAlarm panels
thermostatThermostats / HVAC
transceiverRF / IR transceivers
tvTVs, displays
video_matrixVideo matrix switchers
note

Names are stored in lowercase with underscores. If the driver you're adding doesn't match any of these, the device editor leaves the type at the catch-all none — pick a closer type from the list (or create one) so the device is classified.

Viewing device types

The first tab, Device Types, lists the configured types:

  • ID — unique identifier
  • Name — system name
  • Description — optional description

Toolbar actions are Add and Delete. Existing rows are click-to-edit — click a Name or Description cell to change it in place.

warning

A device type can't be deleted while any device (or subtype) still references it. Reassign or remove those devices first.

Creating a device type

  1. On the Device Types tab, click Add.
  2. Fill in the New Device Type form:
    • Name — system name, normalized to lowercase_with_underscores. Examples: av_receiver, lighting_controller, thermostat.
    • Description — optional, human-readable (e.g. "Lutron Caséta dimmer").
  3. Click Save.

You can also create a type on the fly while editing a device — the + next to the Type field in the device editor adds one without leaving the form.

Subtypes

The second tab, Subtypes, manages device subtypes — refinements of a device type (for example, type thermostat with subtypes heat_pump and radiant). Each subtype belongs to exactly one parent device type.

The subtype grid columns are ID, Device Type (the parent), Name, and Description, with Add, Reload, and Delete actions. The parent Device Type is fixed once a subtype is created; Name and Description are click-to-edit.

To create one:

  1. On the Subtypes tab, click Add.
  2. In the New Device Subtype form:
    • Device Type — pick the parent type (required).
    • Name — normalized to lowercase_with_underscores.
    • Description — optional.
  3. Click Save.

Once a type has subtypes, they appear in the Sub Type dropdown of the device editor whenever that type is selected.

Assigning a type to a device

Device type (and subtype) is set in the device editor, not on this page:

  1. Go to System → Devices and add or edit a device: Open Devices.
  2. Set Type (required). If you picked a driver, GEM may have already filled this in — adjust if needed.
  3. Optionally set Sub Type (only types that have subtypes will offer options here).
  4. Save.

The + icons beside the Type and Sub Type fields let you add a new type or subtype inline.

Database reference

FieldTypeNotes
idintegerPrimary key (none is id 0)
namestringRequired, lowercase_with_underscores
descriptionstringOptional

A subtype adds a device_type_id that links it to its parent type. The parent type can't be deleted while subtypes (or devices) still reference it.

  • Devices — device management and type/subtype assignment
  • Subsystems — the other way GEM organizes devices and zones