You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _includes/docs/pe/user-guide/white-labeling.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,13 +63,15 @@ In the "General" tab you can set or change the following options:
63
63
{% endif %}
64
64
65
65
- Logo height - you can resize the logo;
66
-
-Primary palette - you can customize the background color and font color by choosing one of the suggested UI design options or customizing an existing one;
66
+
-White labeling allows you to customize the color theme by adjusting the primary and accent palettes to match your desired UI design.
- Primary palette - you can customize the background color and font color by choosing one of the suggested UI design options or customizing an existing one;
69
69
70
-
- Accent palette - you can customize the color for some elements, for example for a toggle;
- Advanced CSS - you can stylize any elements of the ThingsBoard user interface as you wish. We will talk more about this functionality [below](#advanced-css);
75
77
- Show/hide platform name and version - by checking this option, the name of the platform and its current version will be displayed in the lower left corner.
Copy file name to clipboardExpand all lines: _includes/docs/user-guide/attributes.md
+18-7Lines changed: 18 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,8 @@ This make it easy to write custom JS functions for data processing and visualiza
34
34
35
35
## Attribute types
36
36
37
-
There are three types of attributes. Let's review them with examples:
37
+
ThingsBoard supports three types of attributes: **server-side**, **shared**, and **client-side**.
38
+
Each type has a specific purpose, access rules, and use cases, which we explain below.
38
39
39
40
### Server-side attributes
40
41
@@ -108,10 +109,20 @@ As an alternative to curl, you may use [Java](/docs/{{docsPrefix}}reference/rest
108
109
109
110
### Shared attributes
110
111
111
-
This type of attributes is available only for Devices. It is similar to the Server-side attributes but has one important difference.
112
-
The device firmware/application may request the value of the shared attribute(s) or subscribe to the updates of the attribute(s).
113
-
The devices which communicate over MQTT or other bi-directional communication protocols may subscribe to attribute updates and receive notifications in real-time.
114
-
The devices which communicate over HTTP or other request-response communication protocols may periodically request the value of shared attribute.
112
+
Shared attributes are available only for entities of type Device. It is not available for any other entity types, such as Assets or Customers. They are designed to send configuration or operational parameters such as *thresholds* from the server to the device.
113
+
114
+
#### How Devices Interact with Shared Attributes
115
+
116
+
A device cannot publish or change the value of a shared attribute. From the device's perspective, these attributes are read-only. A device's firmware or application can interact with shared attributes in the following ways:
117
+
* Request Current Values: The device can send a request to the server to retrieve the current value(s) of one or more shared attributes.
118
+
* Subscribe to Updates: The device can subscribe to receive notifications whenever a shared attribute's value is changed on the server.
119
+
* Receive Updates via Downlinks: For certain network integrations, shared attribute updates can be pushed to the device as a [downlink message](/docs/user-guide/integrations/#example).
120
+
121
+
#### Communication Protocol Examples
122
+
123
+
The method for receiving updates typically depends on the communication protocol used by the device:
124
+
* Real-time Subscriptions (e.g., MQTT): Devices that use bi-directional protocols like [MQTT](/docs/{{docsPrefix}}reference/mqtt-api/#attributes-api) can subscribe to attribute updates and receive notifications in real-time as soon as a value changes.
125
+
* Periodic Polling (e.g., HTTP): Devices that use request-response protocols like [HTTP](/docs/{{docsPrefix}}reference/http-api/#attributes-api) can periodically poll the server to fetch the latest values of their shared attributes.
@@ -121,7 +132,7 @@ The most common use case of shared attributes is to store device settings.
121
132
Let's assume the same building monitoring solution and review few examples:
122
133
123
134
1. The *targetFirmwareVersion* attribute may be used to store the firmware version for particular Device.
124
-
2.The *maxTemperature* attribute may be used to automatically enable HVAC if it is too hot in the room.
135
+
2.Devices can monitor the *maxTemperatureThreshold* attribute and activate cooling if the temperature exceeds the set limit.
125
136
126
137
The user may change the attribute via UI. The script or other server-side application may change the attribute value via REST API.
127
138
@@ -202,7 +213,7 @@ Let's assume the same building monitoring solution and review few examples:
202
213
2. The *currentConfiguration* attribute may be used to report current firmware/application configuration to the platform.
203
214
3. The *currentState* may be used to persist and restore current firmware/application state via network, if device does not have the persistent storage.
204
215
205
-
The user and server-side applications may browser the client-side attributes via UI/REST API but they are not able to change them.
216
+
The user and server-side applications may browse the client-side attributes via UI/REST API but they are not able to change them.
206
217
Basically, the value of the client-side attribute is read-only for the UI/REST API.
Copy file name to clipboardExpand all lines: _includes/docs/user-guide/dashboards.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -503,7 +503,7 @@ To make a dashboard private again, follow these steps:
503
503
{% capture difference %}
504
504
**Please note:**
505
505
<br>
506
-
that you shouldn't forget to make related devices, assets and entity views public in order to access their data.
506
+
To display data on a public dashboard, the associated entities must also be made public. This can be done by making the device or asset group public for Professional Edition or by making individual devices or assets for Community Edition.
507
507
{% endcapture %}
508
508
{% include templates/info-banner.md content=difference %}
Copy file name to clipboardExpand all lines: _includes/templates/iot-gateway/remote-creating-connector-modbus.md
+34-21Lines changed: 34 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ This section offers slave adding and detailed connection configuration options t
56
56
| Unit ID | 1 |
57
57
| Device name | Demo Device |
58
58
| Device profile | default |
59
-
| ---
59
+
| --- ||
60
60
61
61
{% assign addNewSlave = '
62
62
===
@@ -76,12 +76,15 @@ Let's configure attribute section using the following steps:
76
76
77
77
- Click on "**pencil**" icon in the "**Attributes**" section;
78
78
- In the opened window, click on "**Add attribute**" button;
79
-
- Fill in the fields:
79
+
- Fill in the fields:
80
80
- Fill the "**Key**" field with "**frequency**";
81
-
- Select the "**Type**" field to "**8int**";
82
-
- Select the "**Function code**" to "**04 - Read Input Registers**";
81
+
- Select the "**Type**" field to "**16int**";
82
+
- Select the "**Function code**" to "**03 - Read Multiple Holding Registers**";
83
83
- Set "**Objects count**" to "**1**";
84
-
- Set "**Address**" field to "**4**".
84
+
- Set "**Address**" field to "**3**".
85
+
- Enable the "**Modifier**" toggle;
86
+
- In the "**Modifier**" section, set the "**Type**" field to "**divider**";
87
+
- In the "**Modifier**" section, set the "**Value**" field to "**10**".
85
88
86
89
{% assign attributeConfiguration1 = '
87
90
===
@@ -100,21 +103,23 @@ Let's configure attribute section using the following steps:
100
103
101
104
Let's add another attribute. Collapse the recently added "frequency" attribute, click the "**Add attribute**" button, and fill in the fields with the following values, using the same process as before:
102
105
103
-
|**Field name**|**Value**|
104
-
|:---------------|:------------|
105
-
| Key | power |
106
-
| Type | 16float |
107
-
| Function code | 4 |
108
-
| Objects count | 1 |
109
-
| Address | 8 |
110
-
| ---
106
+
|**Field name**|**Value**|
107
+
|:---------------|:----------|
108
+
| Key | power |
109
+
| Type | 16int |
110
+
| Function code | 3 |
111
+
| Objects count | 1 |
112
+
| Address | 2 |
113
+
| Modifier | Divider |
114
+
| Modifier Value | 10 |
115
+
| --- ||
111
116
112
117
Click the "**Apply**" button after you've completed the "**Attributes**" section configuration.
title: In the "**General**" connector tab enable remove logging by turning on the "**Enable remote logging**" toggle. Choose "**DEBUG**" in the "**Log level**" drop-down menu. Click on the "**Save**" button to apply changes;
0 commit comments