Deployment Groups
Deployment Groups are a powerful feature for organizing and managing your Thingsee IoT devices. They enable bulk operations, targeted updates, and efficient data routing.
What Are Deployment Groups?
A DeploymentGroup (groupId) is a logical collection of devices. Every Thingsee device belongs to a single deployment group. When devices are manufactured, they start as “unassigned” and can be assigned to groups during installation.
Use Cases
| Use Case | Benefit |
|---|---|
| Location grouping | Organize by building, floor, or zone |
| Update management | Roll out firmware to specific groups |
| Data routing | Subscribe to MQTT topics by group |
| Maintenance windows | Schedule updates per group |
Group Naming Convention
Deployment groups follow this naming structure:
{Thingsee Deployment Prefix} + {Customer Deployment Id}
Thingsee Deployment Prefix
The prefix is always 6 lowercase alphanumeric characters:
{environment}{country code}{reserved}
Environment Codes
| Code | Description |
|---|---|
un | Unassigned (available for installation) |
pr | Production (only prefix supported by MQTT) |
dm | Demo |
rd | Development |
Country Code
Use ISO 3166-1 alpha-2 codes:
fi- Finlandgb- United Kingdomus- United Statesde- Germanyxx- No specific country
Reserved
Default: 00
Customer Deployment Id
This part is fully under your control. Use your own naming logic to create meaningful identifiers.
Examples
| Group ID | Description |
|---|---|
unxx00 | Unassigned devices, no country specified |
rdxx00 | Development devices, no country |
prfi00haltianhq | Production devices at Haltian HQ, Finland |
prgb00londonoffice | Production devices in London office, UK |
prus00siliconvalley | Production devices in Silicon Valley, US |
rdgb00testlab | Development devices in UK test lab |
Best Practices
Group Size Guidelines
Maximum size: Consider how many devices can be updated simultaneously without impacting service.
Even though a single large group might seem easier, more granular groups give you better control over bulk operations and maintenance scheduling.
Minimum size: Typically defined by installation location. A single location (e.g., “Haltian HQ”) can be one group.
Naming Rules
- Keep full group name (prefix + ID) to 64 characters or less
- Use lowercase letters and numbers only
- No special characters allowed
- Be concise - verbose names increase data overhead
Data Routing Considerations
Thingsee MQTT broker publishes data to topics constructed from deployment group information:
cloudext/json/{deploymentGroup}/{tuid}/#
This allows you to:
- Subscribe to all devices in a group
- Subscribe to specific devices within a group
- Build cloud services that process data by group
Don’t use deployment groups for dynamic user management or access control. Groups are for device organization, not user authentication.
Managing Deployment Groups
Creating Groups
Groups are created and managed through:
- Thingsee Open Services API - Programmatic management
- Thingsee Toolbox - Mobile app for field operations
- Customer applications - Using the API
API Operations
# Create a deployment group
POST /api/v1/groups
{
"groupId": "prfi00haltianhq",
"description": "Haltian Headquarters, Finland"
}
# List groups
GET /api/v1/groups
# Get group details
GET /api/v1/groups/prfi00haltianhq
# Assign device to group
PUT /api/v1/things/{tuid}/group
{
"groupId": "prfi00haltianhq"
}
Moving Devices Between Groups
- Devices can be reassigned using the API
- Device will appear in new group’s MQTT topic
- Historical data association is preserved
Data Flow by Group
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#73F9C1','primaryTextColor':'#143633','primaryBorderColor':'#143633','lineColor':'#143633','secondaryColor':'#C7FDE6','tertiaryColor':'#F6FAFA','clusterBkg':'#F6FAFA','clusterBorder':'#143633'}}}%%
flowchart TB
subgraph CustomerCloud["Your Cloud"]
YOUR[Your Cloud]
end
T1["Topic: cloudext/json/prfi00haltianhq/#"]
T2["Topic: cloudext/json/prfi00tampere/#"]
subgraph DeploymentGroups["Deployment Groups"]
subgraph Group1["prfi00haltianhq"]
S1[Sensor 1]
S2[Sensor 2]
S3[Sensor 3]
end
subgraph Group2["prfi00tampere"]
S4[Sensor 4]
S5[Sensor 5]
end
end
Group1 --> T1
Group2 --> T2
T1 & T2 --> YOURFirmware Updates by Group
Deployment groups enable controlled firmware rollouts:
- Canary group - Test on development devices first
- Pilot group - Small production subset
- Staged rollout - Group by group in production
- Monitoring - Validate each stage before proceeding
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#73F9C1','primaryTextColor':'#143633','primaryBorderColor':'#143633','lineColor':'#143633','secondaryColor':'#C7FDE6','tertiaryColor':'#F6FAFA','clusterBkg':'#F6FAFA','clusterBorder':'#143633'}}}%%
flowchart LR
FW[New Firmware] --> RD[rdfi00testlab]
RD -->|Verify| PILOT[prfi00pilot]
PILOT -->|Verify| PROD1[prfi00building1]
PROD1 -->|Verify| PROD2[prfi00building2]
PROD2 -->|Verify| PROD3[prfi00building3]Bulk Operations
Groups enable efficient bulk operations:
| Operation | Scope | API Endpoint |
|---|---|---|
| Firmware update | All devices in group | POST /api/v1/groups/{groupId}/firmware |
| Configuration change | All devices in group | POST /api/v1/groups/{groupId}/config |
| Status query | All devices in group | GET /api/v1/groups/{groupId}/status |