From c91993e612a0db5c0065685e08614c9acfa808da Mon Sep 17 00:00:00 2001 From: Yevheniia Mala Date: Thu, 14 Nov 2024 17:54:03 +0200 Subject: [PATCH 01/16] in progress --- _data/edge/docs-home.yml | 8 +-- _includes/docs/edge/user-guide/comparison.md | 50 +++++++++++++++ docs/edge/comparison.md | 12 ++++ docs/edge/config/management.md | 67 -------------------- 4 files changed, 66 insertions(+), 71 deletions(-) create mode 100644 _includes/docs/edge/user-guide/comparison.md create mode 100644 docs/edge/comparison.md delete mode 100644 docs/edge/config/management.md diff --git a/_data/edge/docs-home.yml b/_data/edge/docs-home.yml index 416b457d64..bd5d51a894 100644 --- a/_data/edge/docs-home.yml +++ b/_data/edge/docs-home.yml @@ -7,6 +7,8 @@ toc: path: /docs/edge/getting-started-guides/what-is-edge/ - title: Key concepts section: + - title: Comparing Edge and Cloud + path: /docs/edge/comparison/ - title: Alarms path: /docs/edge/user-guide/alarms/ - title: OTA updates @@ -19,12 +21,8 @@ toc: section: # - title: Edges # path: /docs/user-guide/ui/edges/ -# - title: Edge Management Overview -# path: /docs/edge/config/management/ - title: Device Creation and Cloud Provisioning path: /docs/edge/config/create-device/ -# - title: Provision Device from cloud to edge -# path: /docs/edge/config/provision-device/ # - title: Provision Asset from cloud to edge # path: /docs/edge/config/provision-asset/ # - title: Provision Entity View from cloud to edge @@ -35,6 +33,8 @@ toc: # path: /docs/edge/config/provision-user/ # - title: Provision Customer from cloud to edge # path: /docs/edge/config/provision-customer/ + - title: Subscribe to Attribute Updates on Edge from the Cloud + path: /docs/edge/config/subscribe-to-attribute/ - title: Rule Engine section: - title: Rule Chain Templates diff --git a/_includes/docs/edge/user-guide/comparison.md b/_includes/docs/edge/user-guide/comparison.md new file mode 100644 index 0000000000..852981c4b3 --- /dev/null +++ b/_includes/docs/edge/user-guide/comparison.md @@ -0,0 +1,50 @@ +* TOC +{:toc} +## Overview of Key Differences + +**ThingsBoard** offers two distinct deployment options: **ThingsBoard Edge** and **ThingsBoard Cloud**. + +**ThingsBoard Edge** is designed specifically for local, distributed data processing, enabling data analysis and management directly at the source of data generation. This approach allows for local processing, storage, and immediate response to critical situations, even without a continuous connection to the central server. + +In contrast, **ThingsBoard Cloud**, is a fully managed, scalable, and fault-tolerant platform hosted in the cloud and dependent on an internet connection. While an **on-premises installation** can function without an internet connection, it does not offer the same inherent support for distributed data syncing. + +## Synchronization Architecture + +**ThingsBoard Edge** and **ThingsBoard Cloud** communicate using the [gRPC (gRPC Remote Procedure Call) protocol](https://grpc.io/){: target="_blank"}. This communication channel allows for efficient data synchronization between edge devices and the cloud server, enabling a seamless flow of messages while minimizing overhead and latency. + +To optimize this process, messages are serialized using [Protocol Buffers (ProtoBuf)](https://github.com/protocolbuffers/protobuf){: target="_blank"}. + +All messages sent from **ThingsBoard Edge** to **ThingsBoard Cloud** are stored in a local **PostgreSQL** table **(cloud_event table)** prior to transmission. + +This allows **ThingsBoard Edge** to operate without connectivity to the Cloud. Once a connection is established, all messages in the local **cloud_event table** are sent to the **Cloud** and marked as successfully transferred. + +To view the list of messages transferred from the **Cloud** to the **Edge**, go to the Edge management > Instances section, click on the Edge and select the **"Downlinks"** tab: + +{% include images-gallery.html imageCollection="downlinks" %} + +![image](/images/edge/sync/downlink-events.png) + +#### Force synchronization procedure + +In case of network outage, or some other communication problem ThingsBoard Edge could become out of sync from the cloud. +User is able to force synchronization process by clicking on the **Sync Edge** button: + +![image](/images/edge/sync/sync-button.png) + +### Entities management on cloud + +At the moment ThingsBoard Edge is not able to create any entity locally, except **Device** entity. +To be able to use other entities on the edge, User must *'assign'* these entities to the edge prior usage. + +User can *'assign'* specific entities to the edge using **Edge** entity card. + +Once you'll assign any entity to specific edge this entity will be pushed to the edge event queue. +If connection between edge and cloud is active then assigned entity will be created on the edge instantly. +If at the moment edge not connected to the cloud then entity will be created once connection established. + + +#### Next Steps + +{% assign currentGuide = "EdgeManagementOverview" %} +{% assign docsPrefix = "edge/" %} +{% include templates/edge/guides-banner-edge.md %} diff --git a/docs/edge/comparison.md b/docs/edge/comparison.md new file mode 100644 index 0000000000..ec43017273 --- /dev/null +++ b/docs/edge/comparison.md @@ -0,0 +1,12 @@ +--- +layout: docwithnav-edge +title: Comparing Edge and Cloud +description: Comparing Edge and Cloud + +downlinks: + 0: + image: / +--- + +{% assign docsPrefix = "edge/" %} +{% include /docs/edge/user-guide/comparison.md %} diff --git a/docs/edge/config/management.md b/docs/edge/config/management.md deleted file mode 100644 index 936da6f09a..0000000000 --- a/docs/edge/config/management.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: docwithnav-edge -title: Edge Management Overview -description: Edge Management Overview ---- - -![image](/images/coming-soon.jpg) - -### Synchronization architecture - -ThingsBoard Edge and ThingsBoard CE/PE cloud are communicating over gRPC protocol. - -Messages serialized using Protocol Buffers (ProtoBuf). - -All messages that are pushed from ThingsBoard Edge to ThingsBoard CE/PE cloud are going to be stored in the local PostgreSQL table (**cloud_event table**) prior sending. -In this way ThingsBoard Edge is able to operate without connectivity to the cloud. -Once the connection established ThingsBoard Edge will push all messages in the local **cloud_event** table to the cloud and mark ones that are successfully transferred to the cloud. - -All messages that are pushed from ThingsBoard CE/PE cloud to ThingsBoard Edge are going to be stored in the cloud PostgreSQL table (**edge_event table**) prior sending. -Once the connection established ThingsBoard CE/PE cloud will push all messages in the cloud **edge_event** table to the edge and mark ones that are successfully transferred to the edge. - -User is able to see list of transferred messages from the cloud to edge using **Downlinks** tab of **Edge** entity. - -![image](/images/edge/sync/downlink-events.png) - -##### Force synchronization procedure - -In case of network outage, or some other communication problem ThingsBoard Edge could become out of sync from the cloud. -User is able to force synchronization process by clicking on the **Sync Edge** button: - -![image](/images/edge/sync/sync-button.png) - -### Device management on edge - -**Device** entity could be created directly on the edge and pushed to the cloud in case connection established. - -In case Edge connected to ThingsBoard **CE** any tenant administrator user is able to create device entities on the edge. - -In case Edge connected to ThingsBoard **PE** any user that has **DEVICE** write operation is able to create device entities on the edge. - -Once device created on the edge this device is going to be pushed for the creation on the cloud. - -If Edge connected to ThingsBoard **CE** a newly created device will be *'assigned'* to the edge automatically. - -If Edge connected to ThingsBoard **PE** a newly created device: -- will be created on the cloud -- new device entity group will be created, with specific name template: **[Edge] ${NAME_OF_EDGE} All**. -- a newly created device will be added to group above -- group above will be *'assigned'* to the edge automatically. - -### Entities management on cloud - -At the moment ThingsBoard Edge is not able to create any entity locally, except **Device** entity. -To be able to use other entities on the edge, User must *'assign'* these entities to the edge prior usage. - -User can *'assign'* specific entities to the edge using **Edge** entity card. - -Once you'll assign any entity to specific edge this entity will be pushed to the edge event queue. -If connection between edge and cloud is active then assigned entity will be created on the edge instantly. -If at the moment edge not connected to the cloud then entity will be created once connection established. - - -#### Next Steps - -{% assign currentGuide = "EdgeManagementOverview" %} -{% assign docsPrefix = "edge/" %} -{% include templates/edge/guides-banner-edge.md %} From 90bf18bf4c1401724ad6e791a40c67bdf920fcb9 Mon Sep 17 00:00:00 2001 From: Yevheniia Mala Date: Fri, 15 Nov 2024 13:00:33 +0200 Subject: [PATCH 02/16] in progress --- _data/edge-pe/docs-home.yml | 8 ++++---- _includes/docs/edge/user-guide/comparison.md | 16 +++++++++------- docs/edge/comparison.md | 6 +++++- docs/pe/edge/comparison.md | 16 ++++++++++++++++ .../comparioson/0-downlinks-pe-preview.webp | Bin 0 -> 3174 bytes images/edge/comparioson/0-downlinks-pe.webp | Bin 0 -> 181306 bytes .../edge/comparioson/0-downlinks-preview.webp | Bin 0 -> 2942 bytes images/edge/comparioson/0-downlinks.webp | Bin 0 -> 179872 bytes .../comparioson/1-force-sync-pe-preview.webp | Bin 0 -> 3478 bytes images/edge/comparioson/1-force-sync-pe.webp | Bin 0 -> 177266 bytes .../edge/comparioson/1-force-sync-preview.webp | Bin 0 -> 3010 bytes images/edge/comparioson/1-force-sync.webp | Bin 0 -> 144716 bytes 12 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 docs/pe/edge/comparison.md create mode 100644 images/edge/comparioson/0-downlinks-pe-preview.webp create mode 100644 images/edge/comparioson/0-downlinks-pe.webp create mode 100644 images/edge/comparioson/0-downlinks-preview.webp create mode 100644 images/edge/comparioson/0-downlinks.webp create mode 100644 images/edge/comparioson/1-force-sync-pe-preview.webp create mode 100644 images/edge/comparioson/1-force-sync-pe.webp create mode 100644 images/edge/comparioson/1-force-sync-preview.webp create mode 100644 images/edge/comparioson/1-force-sync.webp diff --git a/_data/edge-pe/docs-home.yml b/_data/edge-pe/docs-home.yml index aadf763b88..10a82248ec 100644 --- a/_data/edge-pe/docs-home.yml +++ b/_data/edge-pe/docs-home.yml @@ -7,6 +7,8 @@ toc: path: /docs/pe/edge/getting-started-guides/what-is-edge/ - title: Key concepts section: + - title: Comparing Edge and Cloud + path: /docs/pe/edge/comparison/ - title: Alarms path: /docs/pe/edge/user-guide/alarms/ - title: OTA updates @@ -19,12 +21,8 @@ toc: section: # - title: Edges # path: /docs/pe/user-guide/ui/edges/ -# - title: Edge Management Overview -# path: /docs/pe/edge/config/management/ - title: Device Creation and Cloud Provisioning path: /docs/pe/edge/config/create-device/ -# - title: Provision Device from cloud to edge -# path: /docs/pe/edge/config/provision-device/ # - title: Provision Asset from cloud to edge # path: /docs/pe/edge/config/provision-asset/ # - title: Provision Entity View from cloud to edge @@ -35,6 +33,8 @@ toc: # path: /docs/pe/edge/config/provision-user/ # - title: Provision Customer from cloud to edge # path: /docs/pe/edge/config/provision-customer/ + - title: Subscribe to Attribute Updates on Edge from the Cloud + path: /docs/pe/edge/config/subscribe-to-attribute/ - title: Rule Engine section: - title: Rule Chain Templates diff --git a/_includes/docs/edge/user-guide/comparison.md b/_includes/docs/edge/user-guide/comparison.md index 852981c4b3..84014c2a9a 100644 --- a/_includes/docs/edge/user-guide/comparison.md +++ b/_includes/docs/edge/user-guide/comparison.md @@ -10,7 +10,7 @@ In contrast, **ThingsBoard Cloud**, is a fully managed, scalable, and fault-tole ## Synchronization Architecture -**ThingsBoard Edge** and **ThingsBoard Cloud** communicate using the [gRPC (gRPC Remote Procedure Call) protocol](https://grpc.io/){: target="_blank"}. This communication channel allows for efficient data synchronization between edge devices and the cloud server, enabling a seamless flow of messages while minimizing overhead and latency. +**ThingsBoard Edge** and **ThingsBoard Cloud** communicate using the [gRPC (Remote Procedure Call) protocol](https://grpc.io/){: target="_blank"}. This communication channel allows for efficient data synchronization between edge devices and the cloud server, enabling a seamless flow of messages while minimizing overhead and latency. To optimize this process, messages are serialized using [Protocol Buffers (ProtoBuf)](https://github.com/protocolbuffers/protobuf){: target="_blank"}. @@ -18,18 +18,20 @@ All messages sent from **ThingsBoard Edge** to **ThingsBoard Cloud** are stored This allows **ThingsBoard Edge** to operate without connectivity to the Cloud. Once a connection is established, all messages in the local **cloud_event table** are sent to the **Cloud** and marked as successfully transferred. -To view the list of messages transferred from the **Cloud** to the **Edge**, go to the Edge management > Instances section, click on the Edge and select the **"Downlinks"** tab: +To view the list of messages transferred from the **Cloud** to the **Edge**, go to the **Edge management > Instances** section of your Cloud (Server), click on the **Edge** and select the **"Downlinks"** tab: {% include images-gallery.html imageCollection="downlinks" %} -![image](/images/edge/sync/downlink-events.png) - #### Force synchronization procedure -In case of network outage, or some other communication problem ThingsBoard Edge could become out of sync from the cloud. -User is able to force synchronization process by clicking on the **Sync Edge** button: +During a network outage, or some other communication problem **ThingsBoard Edge** could become out of sync from the Cloud. The Edge instance continues operating independently, collecting telemetry data, processing device events, and applying local rules. However, this data and state changes does not reach the Cloud, leading to inconsistencies. + +To ensure that both the **ThingsBoard Edge** and **Cloud** are aligned to deliver accurate and efficient IoT functionality, user is able to force synchronization process. + +Go to the **Edge management > Instances** section of your Cloud (Server), click on the **Edge** and then, click the **"Sync Edge"** button: + +{% include images-gallery.html imageCollection="forceSync" %} -![image](/images/edge/sync/sync-button.png) ### Entities management on cloud diff --git a/docs/edge/comparison.md b/docs/edge/comparison.md index ec43017273..fd83f4e4e0 100644 --- a/docs/edge/comparison.md +++ b/docs/edge/comparison.md @@ -5,7 +5,11 @@ description: Comparing Edge and Cloud downlinks: 0: - image: / + image: /images/edge/comparioson/0-downlinks.webp + +forceSync: + 0: + image: /images/edge/comparioson/1-force-sync.webp --- {% assign docsPrefix = "edge/" %} diff --git a/docs/pe/edge/comparison.md b/docs/pe/edge/comparison.md new file mode 100644 index 0000000000..d18c336c31 --- /dev/null +++ b/docs/pe/edge/comparison.md @@ -0,0 +1,16 @@ +--- +layout: docwithnav-pe-edge +title: Comparing Edge and Cloud +description: Comparing Edge and Cloud + +downlinks: + 0: + image: /images/edge/comparioson/0-downlinks-pe.webp + +forceSync: + 0: + image: /images/edge/comparioson/1-force-sync-pe.webp +--- + +{% assign docsPrefix = "pe/edge/" %} +{% include /docs/edge/user-guide/comparison.md %} diff --git a/images/edge/comparioson/0-downlinks-pe-preview.webp b/images/edge/comparioson/0-downlinks-pe-preview.webp new file mode 100644 index 0000000000000000000000000000000000000000..8fd9afcb40c27ee86ccc8c6c793d4905c8abcd7c GIT binary patch literal 3174 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