Skip to content

Commit 8494c8f

Browse files
committed
Merge branch 'staging/4.2' into release/4.2
2 parents bc1a098 + e373873 commit 8494c8f

172 files changed

Lines changed: 95 additions & 198 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

_includes/docs/pe/user-guide/white-labeling.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,15 @@ In the "General" tab you can set or change the following options:
6363
{% endif %}
6464

6565
- 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.
6767

68-
![image](https://img.thingsboard.io/user-guide/white-labeling/primary-palette.png)
68+
- 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;
6969

70-
- Accent palette - you can customize the color for some elements, for example for a toggle;
70+
![image](https://img.thingsboard.io/user-guide/white-labeling/primary-palette.png)
7171

72-
![image](https://img.thingsboard.io/user-guide/white-labeling/accent-palette.png)
72+
- Accent palette - you can customize the color for some elements, for example for a toggle;
73+
74+
![image](https://img.thingsboard.io/user-guide/white-labeling/accent-palette.png)
7375

7476
- 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);
7577
- 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.

_includes/docs/user-guide/attributes.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ This make it easy to write custom JS functions for data processing and visualiza
3434

3535
## Attribute types
3636

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.
3839

3940
### Server-side attributes
4041

@@ -108,10 +109,20 @@ As an alternative to curl, you may use [Java](/docs/{{docsPrefix}}reference/rest
108109

109110
### Shared attributes
110111

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.
115126

116127
{:refdef: style="text-align: center;"}
117128
![image](https://img.thingsboard.io/user-guide/shared-attributes.svg)
@@ -121,7 +132,7 @@ The most common use case of shared attributes is to store device settings.
121132
Let's assume the same building monitoring solution and review few examples:
122133

123134
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.
125136

126137
The user may change the attribute via UI. The script or other server-side application may change the attribute value via REST API.
127138

@@ -202,7 +213,7 @@ Let's assume the same building monitoring solution and review few examples:
202213
2. The *currentConfiguration* attribute may be used to report current firmware/application configuration to the platform.
203214
3. The *currentState* may be used to persist and restore current firmware/application state via network, if device does not have the persistent storage.
204215

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.
206217
Basically, the value of the client-side attribute is read-only for the UI/REST API.
207218

208219
#### Fetch client-side attributes via REST API

_includes/docs/user-guide/dashboards.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ To make a dashboard private again, follow these steps:
503503
{% capture difference %}
504504
**Please note:**
505505
<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.
507507
{% endcapture %}
508508
{% include templates/info-banner.md content=difference %}
509509

_includes/templates/iot-gateway/remote-creating-connector-modbus.md

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ This section offers slave adding and detailed connection configuration options t
5656
| Unit ID | 1 |
5757
| Device name | Demo Device |
5858
| Device profile | default |
59-
| ---
59+
| --- | |
6060

6161
{% assign addNewSlave = '
6262
===
@@ -76,12 +76,15 @@ Let&#39;s configure attribute section using the following steps:
7676

7777
- Click on "**pencil**" icon in the "**Attributes**" section;
7878
- In the opened window, click on "**Add attribute**" button;
79-
- Fill in the fields:
79+
- Fill in the fields:
8080
- 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**";
8383
- 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**".
8588

8689
{% assign attributeConfiguration1 = '
8790
===
@@ -100,21 +103,23 @@ Let&#39;s configure attribute section using the following steps:
100103

101104
Let&#39;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:
102105

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+
| --- | |
111116

112117
Click the "**Apply**" button after you&#39;ve completed the "**Attributes**" section configuration.
113118

114119
{% assign attributeConfiguration2 = '
115120
===
116121
image: https://img.thingsboard.io/gateway/dashboard/slave-configuration-4-ce.png,
117-
title: Collapse the recently added "frequency" attribute, and click "**Add attribute**" button to add another attribute;
122+
title: Collapse the recently added "**frequency**" attribute, and click "**Add attribute**" button to add another attribute;
118123
===
119124
image: https://img.thingsboard.io/gateway/dashboard/slave-configuration-5-ce.png,
120125
title: Fill in the fields with values taken from the documentation. Then, click "**Apply**".
@@ -131,10 +136,13 @@ Let&#39;s configure time series section using the following steps:
131136
- In the opened window, click on "**Add time series**" button;
132137
- Fill in the fields:
133138
- Fill the "**Key**" field with "**humidity**";
134-
- Select the "**Type**" field to "**8uint**";
135-
- Select the "**Function code**" to "**04 - Read Input Registers**";
139+
- Select the "**Type**" field to "**16int**";
140+
- Select the "**Function code**" to "**03 - Read Multiple Holding Registers**";
136141
- Set "**Objects count**" to "**1**";
137-
- Set "**Address**" field to "**4**".
142+
- Set "**Address**" field to "**1**".
143+
- Enable the "**Modifier**" toggle;
144+
- In the "**Modifier**" section, set the "**Type**" field to "**divider**";
145+
- In the "**Modifier**" section, set the "**Value**" field to "**10**".
138146

139147
{% assign timeSeriesConfiguration1 = '
140148
===
@@ -156,11 +164,13 @@ Let&#39;s add another time series. Collapse the recently added "**humidity**" ti
156164
| **Field name** | **Value** |
157165
|:---------------|:------------|
158166
| Key | temperature |
159-
| Type | 16uint |
160-
| Function code | 4 |
167+
| Type | 16int |
168+
| Function code | 3 |
161169
| Objects count | 1 |
162-
| Address | 8 |
163-
| ---
170+
| Address | 0 |
171+
| Modifier | Divider |
172+
| Modifier Value | 10 |
173+
| --- | |
164174

165175
{% assign timeSeriesConfiguration2 = '
166176
===
@@ -210,6 +220,9 @@ You can view the synchronization status of the connector configuration in the "*
210220

211221
Also, you can see the connector logs to make sure that the connector works, for this purpose, follow these steps:
212222
{% assign seeConnectorLogs = '
223+
===
224+
image: https://img.thingsboard.io/gateway/dashboard/gateway-getting-started-modbus-logs-14-ce.png,
225+
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;
213226
===
214227
image: https://img.thingsboard.io/gateway/dashboard/gateway-getting-started-modbus-12-ce.png,
215228
title: Click on "**logs**" icon to open connector logs page;

0 commit comments

Comments
 (0)