Skip to content

Commit

Permalink
Sync missing changes
Browse files Browse the repository at this point in the history
  • Loading branch information
wborn committed Jun 3, 2024
1 parent a7c28b1 commit 64ef0a4
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 13 deletions.
9 changes: 8 additions & 1 deletion docs/user-guide/gateways-and-devices/edge-gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The edge gateway establishes the connection to the central manager using the Web

An edge gateway connection is defined per edge gateway realm and only a single connection can be made to a central manager per realm.

## Interaction
## Interaction via the Gateway asset
The edge gateway is the master and the central manager is a slave; when an edge gateway is not connected to the central manager then any attempt to interact with the edge gateway assets on the central manager will result in an error, when an edge gateway connects to a central manager the edge gateway assets are synchronised (uni-directional synchronisation from edge gateway to central manager), any change to an edge gateway asset is then also sent to the central manager to maintain synchronisation. When interacting with an edge gateway asset via the central manager the request is forwarded to the edge gateway and the edge gateway handles the request and any resulting asset changes are then also forwarded to the central manager.

Depending on network connection there can be a delay between interacting with an edge gateway asset via the central manager and the interaction being completed and relayed back to the central manager.
Expand All @@ -38,6 +38,13 @@ Just create a new Asset of type Gateway and the manager will provision a Keycloa

![image](https://user-images.githubusercontent.com/7072278/83865817-af4ae500-a71e-11ea-9f6d-105922289b0a.png)

## Interaction with Gateway Manager UI via Gateway tunnels

On top of the Interaction via the Gateway, you can remotely access the full Manager UI of the Gateway instances of OpenRemote, by creating Gateway tunnels. Note that you first have to [technically configure the (edge) gateway and central instance of OpenRemote to enable the the tunnelling set-up](../../developer-guide/gateway-tunnelling-setup.md). Next you can acces the Manager UI of the Gateway instance via the 'Gateway Tunnels' (Settings) or via a 'Gateway Widget' on the Insights dashboards.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/fbdf5712-fefd-408e-acf0-e996cdb8ee3e)</kbd>
_Creating a gateway tunnel and opening the manager UI of the remote instance which is connected as a gateway._

## Requirements
### Central Manager
- Must be running the Keycloak identity provider
Expand Down
32 changes: 20 additions & 12 deletions docs/user-guide/manager-ui/manager-ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,8 @@ The Insights page (see figure 11) allows you to create multiple dashboards withi
* Share dashboards with other users even as standalone app, or keep your dashboard private.
* Make dashboards public. Note this requires assets to be set as 'public' and attributes as 'public read'.
* Share via the [iOS or Android console](on-mobile.md) and benefit push notifications (see figure 12).
* Use seven types of widgets (or [extend with your own](../../developer-guide/adding-widgets-on-insights.md)): Chart, KPI, Gauge, Image, Map, Table and Attribute (with control).
* Use eight types of widgets (or [extend with your own](../../developer-guide/adding-widgets-on-insights.md)): Chart, KPI, Gauge, Image, Map, Table, Attribute (with control) and Gateway.
* The gateway widget allows for opening the Manager UI of OpenRemote instances connected as gateways to this instance. See [Gateway tunnelling setup](../../developer-guide/gateway-tunnelling-setup.md) for the technical configuration.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/5ec980ec-1404-4b4d-b79c-6f481812e81f)</kbd>
_Figure 11. Example of an Insights dashboard, showing a dashboard with seven types of widgets._
Expand All @@ -172,12 +173,19 @@ Admin users of the 'Master' realm see the Realm selector on the top right to swi

### Manager interconnect

You can link multiple instances of OpenRemote (as Edge Gateways) to a single Central instance of OpenRemote. The Gateways will be visible in the Central manager to create a single point of remote access and data collection. The Edge Gateways function each connect to their local assets and run independently with their own rules.
You can link multiple instances of OpenRemote (as Gateways) to a single Central instance of OpenRemote by creating a Gateway asset in the central instance and linking the Gateway instance of OpenRemote, using the 'Manager interconnect' function. The Gateway in the central instances will show the assets of the linked Gateway instance of OpenRemote, as children of the Gateway asset and will enable bidirectional communication with its attributes.
See the [Edge Gateway documentation](../gateways-and-devices/edge-gateway.md) for more details.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/4100734b-5543-4cf2-a56e-16558a5c0215)</kbd>
_Figure 13. Several OpenRemote instances can be interconnected, e.g. connecting multiple instances on edge gateways to one central cloud hosted instance. The Manager Interconnect page, used at the edge instances (left) uses the keys which are created on the central instance by adding Edge gateway Assets (right)._

### Gateway tunnels

On top of the 'Manager Interconnect' functionality, you can remotely access the full Manager UI of the Gateway instances of OpenRemote, by creating Gateway tunnels. See the [Edge Gateway documentation](../gateways-and-devices/edge-gateway.md) for more details.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/fbdf5712-fefd-408e-acf0-e996cdb8ee3e)</kbd>
_Figure 14. Creating a gateway tunnel and opening the manager UI of the remote instance which is connected as a gateway._

### Languages

OpenRemote currently supports 8 languages: English, German, French, Spanish, Portuguese, Italian, Chinese, and Dutch.
Expand All @@ -187,14 +195,14 @@ OpenRemote currently supports 8 languages: English, German, French, Spanish, Por
The logs page shows information, warnings and errors of the different activities of OpenRemote. You can use it to understand the behaviour of the whole platform or debug issues, e.g. errors connecting agent with device.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/d7e445f4-a6fe-4e8d-a2ee-809ecbacdc83)</kbd>
_Figure 14. The Logs page to evaluate system behaviour._
_Figure 15. The Logs page to evaluate system behaviour._

### Account

On the Account page you can (re)set you personal information or password. You can also monitor your past sessions or enable 2FA via an Authenticator (default disabled).

<kbd>![](https://github.com/openremote/openremote/assets/11444149/6531c023-496e-4234-889c-7c61a755b8cb)</kbd>
_Figure 15. The account page with contact details (left) and reset passwords (right)._
_Figure 16. The account page with contact details (left) and reset passwords (right)._

### Users and access configuration

Expand All @@ -209,14 +217,14 @@ By linking assets to users, the system will understand which users are connected
When, next to linking an asset to a user, you also set the Realm role to 'Restricted User', users will only have access to the assets they are linked to. Note that you additionally have to indicate on the assets which attributes of the asset they have access to. To do that, set the configuration item 'Access restricted user read/write' on the attribute ([see 'Configure attributes'](#configure-attributes)).

<kbd>![](https://github.com/openremote/openremote/assets/11444149/d3f366df-7607-4546-802a-0aece0d25332)</kbd>
_Figure 16. Creating users for a selected realm, assigning roles. In this example, the user is made a 'restricted user' linked to only 6 assets._
_Figure 17. Creating users for a selected realm, assigning roles. In this example, the user is made a 'restricted user' linked to only 6 assets._

### Roles

With the correct permissions, you can create and edit roles. These roles define which parts of the system a user is allowed to Read or Write, e.g. system settings, assets, attributes, map, or rules. Also see the userguide: [Realms, users and roles](../identity-and-security/realms-users-and-roles.md).

<kbd>![](https://github.com/openremote/openremote/assets/11444149/8f94ff1a-ccc5-4aac-a4ac-0b04f333f1f8)</kbd>
_Figure 17. Roles are made of a set of permissions_
_Figure 18. Roles are made of a set of permissions_

### Realms

Expand All @@ -225,34 +233,34 @@ Only the Master realm Admin user can create `Realms` by accessing the master rea
You can create a realm by adding a `realmname` name (single word, lower case letters), and a `Friendly name`. You can (temporarily) disable realms, which blocks access for any user.

<kbd>![](https://github.com/openremote/openremote/assets/11444149/13ddd721-21b0-496f-98c2-fbff619cf82e)</kbd>
_Figure 18. Realms can be created to manage multiple independent projects within one OpenRemote instance_
_Figure 19. Realms can be created to manage multiple independent projects within one OpenRemote instance_

Also see the userguide: [Realms, users and roles](../identity-and-security/realms-users-and-roles.md).

### Auto provisioning of devices

If you are an OEM, developing and producing your own hardware, you can provision your devices and OpenRemote to automatically have your devices connecting, once they get online. Using certificates (we currently support X.509) your devices will register and automatically generate and connect to an asset of a defined type in the OpenRemote Manager (see figure 18). For details, check out the wiki about ['Auto provisioning'](../gateways-and-devices/auto-provisioning.md).
If you are an OEM, developing and producing your own hardware, you can provision your devices and OpenRemote to automatically have your devices connecting, once they get online. Using certificates (we currently support X.509) your devices will register and automatically generate and connect to an asset of a defined type in the OpenRemote Manager (see figure 20). For details, check out the wiki about ['Auto provisioning'](../gateways-and-devices/auto-provisioning.md).

<kbd>![](https://github.com/openremote/openremote/assets/11444149/20e8ef89-fc7b-43f6-928e-dc2fb7448389)</kbd>
_Figure 19. Auto provisioning of devices_
_Figure 20. Auto provisioning of devices_

### Appearance

You can restyle any realm in OpenRemote as well as adjust the map views (go to settings/appearance). You can change the logo's, use different colours, change the title and default language, or set and change the menu items. For adding map layers you can add GeoJSON files (created e.g. with https://geojson.io/). More advanced settings like visible asset and agent types on the asset and rules page, can be configured directly in a JSON file. For the options available in the JSON file and an example, check out [Configuring the Manager UI](../deploying/configuring-the-manager-ui.md). For the maps you can set the centerpoint, zoom levels and boundaries.

<kbd>![](https://user-images.githubusercontent.com/11444149/208919454-f3b2c100-04a4-4148-9779-f55f06c136c0.png)</kbd>
_Figure 20. Appearance settings allow white labeling of your OpenRemote manager_
_Figure 21. Appearance settings allow white labeling of your OpenRemote manager_

## Manager APIs

The Manager APIs let you interact with OpenRemote without using the UI. This can be used to e.g synchronize attribute data with external clients, accessing configurations, or creating new assets. To authenticate you'll need to create a service user first on the Users page. We have three types of APIs to choose from: HTTP, MQTT, and Websocket.

### Service users

Service users can be created on the `Users` page, and selecting `Add user` in the `Service user` panel (see figure 21). The `Username` (ClientID) can be set using letters, dashes, and numbers, while the `Secret` will be generated automatically once saved. Note that you also select the role(s).
Service users can be created on the `Users` page, and selecting `Add user` in the `Service user` panel (see figure 22). The `Username` (ClientID) can be set using letters, dashes, and numbers, while the `Secret` will be generated automatically once saved. Note that you also select the role(s).

<kbd>![](https://github.com/openremote/openremote/assets/11444149/704fd23a-c1c5-4b4a-a569-40334a5ba2a0)</kbd>
_Figure 21. Creating service users, with Username, Secret and Roles for a selected Realm_
_Figure 22. Creating service users, with Username, Secret and Roles for a selected Realm_

### HTTP, MQTT, and Websocket

Expand Down

0 comments on commit 64ef0a4

Please sign in to comment.