Duress Home DV (duresshome.json)
This is the home screen shown on the CC2 badge of the person wearing the device. It displays their own name and role, a hidden duress flag that appears when an alert is active, and buttons to open the system functions or the duress alert list.
File: /dvs/duresshome.json
Full JSON
Section titled “Full JSON”Click to expand
{ "displayName": "Home", "displayIcon": "ic_airplanemode_on_black_48dp", "target_size": { "w": 176, "h": 264 }, "infopages": [ { "id": "1", "infowidgets": [ { "name": "user_name", "region": { "x": 5, "y": 5, "w": 160, "h": 70 }, "type": "dynamic", "value": "Johnathon Doemachine", "format": "text", "formatter": { "name": "basic", "valign": "c", "halign": "c", "autobreak": true, "outline": "solid_rounded", "outline_sz": 1, "font": { "sz": 34 } } }, { "name": "user_role", "region": { "x": 5, "y": 75, "w": 160, "h": 20 }, "type": "dynamic", "value": "CTO", "format": "text", "formatter": { "name": "basic", "valign": "c", "halign": "c", "autobreak": false, "font": { "sz": 14, "weight": "bold" } } }, { "name": "duress_flag", "region": { "x": 40, "y": 100, "w": 90, "h": 90 }, "type": "dynamic", "value": "alert_bell", "show": false, "format": "graphic", "formatter": { "name": "basic", "valign": "scale", "halign": "scale", "outline": "solid_square", "outline_sz": 1 } }, { "name": "config", "region": { "x": 5, "y": 190, "w": 50, "h": 50 }, "type": "button", "actions": [{ "a": "g", "p": "sysfns.1" }], "value": "gear1", "format": "graphic", "formatter": { "name": "basic", "valign": "c", "halign": "c", "autobreak": false, "outline": "solid_rounded", "outline_sz": 1, "font": { "sz": 22 } } }, { "name": "duress", "region": { "x": 110, "y": 190, "w": 50, "h": 50 }, "type": "button", "actions": [{ "a": "g", "p": "duress.1" }], "value": "ic_bug_report_black_24dp", "format": "graphic", "formatter": { "name": "basic", "valign": "c", "halign": "c", "autobreak": false, "outline": "solid_rounded", "outline_sz": 1 } } ] } ]}Page 1: Home (id: "1")
Section titled “Page 1: Home (id: "1")”| Widget | Type | Interaction | Purpose |
|---|---|---|---|
user_name | text | dynamic | The wearer’s name (e.g., “Johnathon Doemachine”). Set by the device’s own user data (usually via vname in the duress DV configuration or the allocation data block). |
user_role | text | dynamic | The wearer’s role or title (e.g., “CTO”). Also set by the device’s own user data (user_role). |
duress_flag | graphic | dynamic | Shows an alert bell icon when a duress alert is active (hidden by default). |
config | graphic (button) | button | Opens the system functions page (sysfns.1). |
duress | graphic (button) | button | Opens the duress alert list (duress.1) where the wearer can see incoming alerts. |
Where the data comes from
Section titled “Where the data comes from”user_nameanduser_roleare populated by the device’s own configuration—either from the initial value in the DV or from dynamic data set viaupdateLocal/updateRemoteactions in the allocdata.- They are completely independent of the portal’s “Associated User” field.
- The duress_appnever reads
user_nameoruser_rolewhen building a duress alert notification. Instead, the duress_appuses its ownassociatedUserfield for thesubjof the alert.
duress_app/ MQTT Interaction
Section titled “duress_app/ MQTT Interaction”This DV does not receive data from the duress_appfor its widgets.
It only provides a button to navigate to the duress DV, which is where the portal-pushed alerts appear.
When a duress alert is received, the duress_flag widget becomes visible, but the notification text (subj, location) is displayed in the duress DV, not here.
Related
Section titled “Related”- Device Views Overview – list of all DVs
- Duress DV – the alert list and detail skeleton (where notifications appear)
- duress_appuser association – how the portal’s Associated User controls the
subjin alerts