OpenRemote как пограничный шлюз
Версия: 1.26.0
Обзор
Edge Gateway — это OpenRemote Manager, который подключается к другому OpenRemote Manager (называемому здесь центральным менеджером); и предназначен для сценариев, когда Manager требуется в локальной сети без прямого доступа к Интернету и довольно часто работает на оборудовании с ограниченными возможностями.
Пограничный шлюз устанавливает соединение с центральным диспетчером с помощью API WebSocket, а пограничный шлюз должен быть подготовлен в центральном диспетчере для создания учетных данных клиента OAuth, которые затем могут использоваться пограничным шлюзом для аутентификации.
Соединение пограничного шлюза определяется для каждой области пограничного шлюза, и для каждой области может быть установлено только одно соединение с центральным менеджером.
Взаимодействие через ресурс Gateway
Граничный шлюз является главным, а центральный менеджер — подчиненным; когда пограничный шлюз не подключен к центральному диспетчеру, любая попытка взаимодействия с активами пограничного шлюза в центральном диспетчере приведет к ошибке. Когда пограничный шлюз подключается к центральному диспетчеру, активы пограничного шлюза синхронизируются (однонаправленная синхронизация от пограничного шлюза к центральному диспетчеру), любые изменения в активе пограничного шлюза затем также отправляются центральному диспетчеру для поддержания синхронизации. При взаимодействии с активом пограничного шлюза через центральный менеджер запрос пересылается на пограничный шлюз, и пограничный шлюз обрабатывает запрос, а любые результирующие изменения актива затем также пересылаются центральному менеджеру.
В зависимости от сетевого подключения может возникнуть задержка между взаимодействием с активом пограничного шлюза через центральный диспетчер и завершением взаимодействия и его передачей обратно центральному диспетчеру.
Центральный менеджер должен использовать поставщика удостоверений Keycloak
Настройка пограничного шлюза
1. Обеспечение в центральном менеджере
Просто создайте новый актив типа Gateway, и менеджер предоставит для него клиент Keycloak с типом предоставления учетных данных клиента, затем идентификатор клиента и секрет клиента будут сохранены в атрибутах clientId и clientSecret актива шлюза.
2. Ввод учетных данных в пограничном шлюзе (детали подключения)
- На пограничном шлюзе войдите в пользовательский интерфейс менеджера и выберите область, которую вы хотите подключить к центральному менеджеру (применимо только для суперпользователей).
- Перейдите на страницу межсоединения Manager (верхнее правое меню).
- Введите хост (например,
demo.openremote.io). - Введите порт, если не используется
80или443по умолчанию. - Введите область актива шлюза в центральном менеджере (например,
master). - Введите идентификатор клиента и секретный код клиента, которые можно найти, просмотрев атрибуты актива шлюза в центральном менеджере.
- Выберите защищенный (если центральный менеджер использует
HTTPS) - Нажмите «Сохранить».
- В правом верхнем углу диалога статус должен измениться на
CONNECTED.
- Введите хост (например,
3. Ограничить скорость передачи данных, с которой синхронизируется пограничный шлюз (совместное использование данных).
- Выберите тип актива и атрибуты, которые вы хотите синхронизировать с центральным экземпляром.
- Выберите, хотите ли вы ограничить скорость передачи данных, и установите временной интервал.
Расширенную синхронизацию каждого атрибута можно настроить в редакторе JSON через конфигурацию GatewayAttributeFilter.
[
{
"matcher": {
"recursive": false,
"realm": {
"name": "master"
},
"types": [
"ThingAsset"
],
"attributes": {
"operator": "OR",
"items": [
{
"name": {
"predicateType": "string",
"match": "EXACT",
"caseSensitive": true,
"value": "attribute1",
"negate": false
},
"negated": false
},
{
"name": {
"predicateType": "string",
"match": "EXACT",
"caseSensitive": true,
"value": "attribute2",
"negate": false
},
"negated": false
}
]
},
"limit": 0
},
"duration": "PT1M",
"durationParsedMillis": 60000
},
{
"matcher": {
"recursive": false,
"realm": {
"name": "master"
},
"types": [
"ThingAsset"
],
"attributes": {
"operator": "OR",
"items": [
{
"name": {
"predicateType": "string",
"match": "EXACT",
"caseSensitive": true,
"value": "attribute3",
"negate": false
},
"negated": false
}
]
},
"limit": 0
},
"duration": "PT10M",
"durationParsedMillis": 600000
},
{
"matcher": {
"recursive": false,
"realm": {
"name": "master"
},
"types": [
"ThingAsset"
],
"attributes": {
"items": [
{
"name": {
"predicateType": "string",
"match": "EXACT",
"caseSensitive": true,
"value": "attribute4",
"negate": false
},
"negated": false
}
]
},
"limit": 0
},
"valueChange": true,
"durationParsedMillis": null
},
{
"skipAlways": true
}
]
4. Добавлять/удалять атрибуты и/или элементы конфигурации во время синхронизации (синхронизация активов)
- Позволяет настраивать атрибуты и/или элементы конфигурации, которые отправляются в центральный экземпляр для каждого актива и атрибута (также можно использовать подстановочные знаки).
- Пока у нас не будет пользовательского интерфейса для выполнения этой конфигурации, вам нужно будет написать/скопировать/вставить JSON в текстовую область, используя следующую схему:
{
"*": {
"excludeAttributes": ["notes"],
"excludeAttributeMeta": {
"*": ["accessPublicRead"],
"location": []
},
"addAttributeMeta": {
"*": {
"accessRestrictedRead": true
}
}
},
"CityAsset": {
"excludeAttributes": ["city"]
}
}
- Если для определенного типа или атрибута актива существует определение, его следует использовать вместо любого определения с подстановочным знаком *.
- Если для определенного атрибута в
excludeMetaItemsсуществует определение, его следует использовать вместо любого определения подстановочного знака *.
Взаимодействие с пользовательским интерфейсом диспетчера шлюза через туннели шлюза
Помимо взаимодействия через шлюз, вы можете удаленно получить доступ ко всему пользовательскому интерфейсу диспетчера экземпляров OpenRemote шлюза, создав туннели шлюза. Обратите внимание, что сначала вам необходимо технически настроить (пограничный) шлюз и центральный экземпляр OpenRemote, чтобы включить настройку туннелирования . Затем вы можете получить доступ к пользовательскому интерфейсу диспетчера экземпляра шлюза через «Туннели шлюза» (Настройки) или через «Виджет шлюза» на информационных панелях Insights.
Создание туннеля шлюза и открытие пользовательского интерфейса менеджера удаленного экземпляра, подключенного в качестве шлюза.
Требования
Центральный менеджер
- Должен быть запущен поставщик удостоверений Keycloak.
Пограничный шлюз
-Процессор: AMD64 или ARM64
- ОЗУ: 4 ГБ (при использовании поставщика удостоверений Keycloak) 2 ГБ (при использовании базового поставщика удостоверений)
- Диск: 1,5 ГБ (предпочтительно SATA или eMMC)
Уведомление о лицензии: атрибуция документации OpenRemote