V1.1

EdgeX Fuji version 1.1.1 in Windows 10 LTSC 64bit

Introduction EdgeX UI Go Console Create User and login Device Service Logging Scheduler Notification Rule Engine

Introduction

The EdgeX UI is for demonstration and developer use to manage and monitor a single instance of EdgeX Foundry. Specifically, it can:

  • Manage the EdgeX objects (device, device services, profiles, etc.)

  • Monitor the EdgeX data flow (events and readings) and services

  • Monitor and manage from on-box with EdgeX (on the same host)

As is, the EdgeX UI is not meant for production use!

The EdgeX UI supports the functions

  • Multiple gateways.

  • Device service

  • Logging

  • Scheduler

  • Notification

  • Rule Engine

Note:

  • It is form open source community. Majorly, we use it for the device service development and testing.

  • It supports multiple gateway usage

  • Fuji version uses Application service to replace Export service. So Export and Rule Engine are not applicable for this version.

  • Notification service needs to combine some related REST API calls to make it working.

EdgeX UI Console

Create User and login

If this is your first deploy and open EdgeX UI, you will automatically jump to the user creation page:

  1. Open a browser and go to: http://127.0.0.1:4000

  2. Login: Input Username: admin, Password: admin, click Sign in to login EdgeX UI.

Device Service

After you create and register devices in EdgeX, you can use Device service page to manage all your device services and devices.

EdgeX uses a device profile to describe the device, its data format and supported commands.

1. In the first table DeviceService, all device services are listed: a. Addressable button can show some information about this device service:

b. Addressable button can show some information about this device service:

c. Devices button lists all devices, you can manage the devices

d. In Devices table, Commands button can send commands to the device.

e. Set Parameter range of GenerateRandomValue_Int8

f. Outputs the minimum or maximum values by setting the parameter.

g. Click + to add a new Device

h. Fill the data: DeviceService Name: DeviceService Name Device Name: Same as DeviceService Name DeviceProfile: DeviceProfile Name DeviceAddressable: i.e. other, address: 10.0.75.1, and port: 301

2. The second table Device Profile, user can use profile.yml (ie.mqtt.test.device.profile.yml) to create Device Profile.

Note: Use can use REST APIs to collect data and send commands in the application. The sample REST API call is http://127.0.0.1:Port/api/v1/device/name/Devices Name/Commands Name.

Logging

Logging is critical for all modern software applications. Proper logging provides the users with the following benefits:

  • Ability to monitor and understand what systems are doing

  • Ability to understand how services interact with each other

  • Problems are detected and fixed quickly

  • Monitoring to foster performance improvements

The Logging provides the user the capability to monitor the system operation and debug problems. Logging may be used to limit to any range of dates and output records.

Scheduler

The Scheduler can be configured to remove stale event/reading data that has not been exported. The removing state event/reading data enables the gateway to continue to operate with a static amount of storage.

Scheduler can manage all Intervals.

  1. In the Scheduler table: Click + to add a new Scheduler, you can decide SchedulerName, SchedulerStart, SchedulerEnd, Scheduler Frequency, SchedulerCron, and SchedulerRunOnce: a. ScheduleName: unique name of the service. b. ScheduleStart: identifies when the operation starts. Expressed in ISO 8601YYYYMMDD't'HHmmss format. Empty means now. c. SchedulerEnd: identifies when the operation ends. Expressed in ISO 8601 YYYYMMDD't'HHmmss format. Empty means never. d. ScheduleFrequency: identifies the interval between invocations. Expressed in ISO 8601 PxYxMxDTxHxMxS format. Empty means no frequency. e. ScheduleCron: cron styled regular expression indicating how often the action under interval should occur. Use either runOnce, frequency or cron and not all. f. SchedulerRunOnce: boolean indicating that this interval runs one time - at the time indicated by the start.

Note: When user create a new Schedule, user should create ScheduleEvent in this Schedule.

2. In the SchedulerEvent table: a. Click + to add a new SchedulerEvent

b. After added a new SchedulerEvent

c. Addressable can show method and url in this action

Notification

Notification to manage notifications, to setup SMTP, view transmissions, or custom subscription to receive notifications or logs:

1.Configure Gmail SMTP configuration. To click SMTP to edit user e-mail address and password.

Note: SMTP setup is cleared after the system reboot.

2. In Notification table: set date range to view system health status.

3. In Subscription table: + to add a new subscription, user can config multiple channels. The description and definition of each field is as follows:

Rule Engine

Rule Engine service monitor incoming sensor or device data for readings within target ranges and triggers immediate device actuation.

In Streams table to create new ones. In Rules table that many application scenarios, let's take two application scenarios as examples:

Scenario # 1:

If you combine Alert Notification and Rule Engine settings, users will be notified in time through email when the setting conditions are triggered. Demo as below condition targets:

  • Send email messages to user when RandomValue_Int8 > 0

  • Send email messages to user when RandomValue_Int8 = 10

  • Send email messages to user when RandomValue_Int8 > 10

Scenario # 2:

Use Advantech Patrol Inspection server to build this manage system. It should create a new work order automatically when the setting condition is triggered.

  • Send data to Patrol Inspection to create a work order when RndomValue_Int8 < 20

(1) In Streams table:

a. Click + Add Stream to create new ones.

b. Click Save to create a stream named “demo” that can consume data from EdgeX message bus, or user can changes in dialog box.

(2) Scenario # 1

a. In Rules table:

  • Click +Add Rule to create a rule.

  • Fill some data as below

b. In Rules table:

(3) Person Gmail security checkup Sign in to use Google’s Security Checkup to strengthen your online security.

(4) Rule Engine compares the parameter field (category and label setting) with “subscribed labels” and “SubscribedCategories” setting of Notification microservice. If the label and category are both met any one of them, it will be triggered and send an email when sql rule condition is matched.

<RuleEngine>:

(5) User can check Notification logs for the condition is matched and triggered.

(6) User get EdgeX Notification messages from Gmail server when condition target trigger.

  • Send email messages to user when RandomValue_Int8 > 0

  • Send email messages to user when RandomValue_Int8 = 10

  • Send email messages to user when RandomValue_Int8 > 10

(7) Scenario # 2

a. In Rules table:

  • Click +Add Rule to create another rule.

b. Patrol Inspection server should create a Repair ticket when condition target trigger. Click “View” to check more detail information.

Note: For more information on the EMQ X Kuiper project, please refer to the following link: https://docs.edgexfoundry.org/1.2/microservices/support/Kuiper/Ch-Kuiper/

Last updated