Difference between revisions of "42Q-MES0184-IIoT Configuration"

From 42Q
Jump to navigation Jump to search
Line 14: Line 14:
 
 
 
 
  
= <span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction">Introduction</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction"><span class="mw-headline" id="Introduction">Introduction</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
  
 
The concept of GGC stands for “Green Grass Computer”, the word: “Computer” also refers to any kind of device. This document will teach users how to configure, install, and deploy a GGC, as well as create and set up an Edge Device for the purpose of establishing a connection between the computer (device) and the 42Q portal to send data (payloads).
 
The concept of GGC stands for “Green Grass Computer”, the word: “Computer” also refers to any kind of device. This document will teach users how to configure, install, and deploy a GGC, as well as create and set up an Edge Device for the purpose of establishing a connection between the computer (device) and the 42Q portal to send data (payloads).
Line 20: Line 20:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites">Prerequisites</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites"><span class="mw-headline" id="Prerequisites">Prerequisites</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
  
 
*Only Linux is supported for the computer or device to install the Green Grass Core. The related shell scripts and test code only work on Linux systems (Windows is not currently supported).  
 
*Only Linux is supported for the computer or device to install the Green Grass Core. The related shell scripts and test code only work on Linux systems (Windows is not currently supported).  
 
*Python 3.8 or higher must be installed and configured to run the test code.  
 
*Python 3.8 or higher must be installed and configured to run the test code.  
  
== <span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements">Operating System and Software Requirements</span></span></span></span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements"><span class="mw-headline" id="Operating_System_and_Software_Requirements">Operating System and Software Requirements</span></span></span></span></span></span></span></span></span></span> ==
  
 
*Linux kernel version 4.4 or later (Ubuntu 20.04 and CentOS 8.5).  
 
*Linux kernel version 4.4 or later (Ubuntu 20.04 and CentOS 8.5).  
Line 35: Line 35:
 
&nbsp;
 
&nbsp;
  
=== <span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements">Cgroups Requirements</span></span></span></span></span></span></span></span></span></span> ===
+
=== <span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements"><span class="mw-headline" id="Cgroups_Requirements">Cgroups Requirements</span></span></span></span></span></span></span></span></span></span></span> ===
  
 
The AWS IoT Greengrass Core software currently only supports Cgroups v1, not v2. In order to satisfy AWS Greengrass Core dependencies as stated in the official documentation "Setting up AWS IoT Greengrass core devices"&nbsp; ([https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html Setting up AWS IoT Greengrass core devices - AWS IoT Greengrass] ), the system should be configured with the following Linux kernel parameters and restarted:
 
The AWS IoT Greengrass Core software currently only supports Cgroups v1, not v2. In order to satisfy AWS Greengrass Core dependencies as stated in the official documentation "Setting up AWS IoT Greengrass core devices"&nbsp; ([https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html Setting up AWS IoT Greengrass core devices - AWS IoT Greengrass] ), the system should be configured with the following Linux kernel parameters and restarted:
Line 43: Line 43:
 
&nbsp;
 
&nbsp;
  
==== <span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration">Adjusting Cgroup configuration</span></span></span></span></span></span></span></span></span></span> ====
+
==== <span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_Cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration"><span class="mw-headline" id="Adjusting_cgroup_configuration">Adjusting Cgroup configuration</span></span></span></span></span></span></span></span></span></span></span> ====
  
 
#Edit /etc/default/grub - Find the line that starts with "GRUB_CMDLINE_LINUX=" and append or change the following values: cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=false - Save the file  
 
#Edit /etc/default/grub - Find the line that starts with "GRUB_CMDLINE_LINUX=" and append or change the following values: cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=false - Save the file  
Line 52: Line 52:
 
&nbsp;
 
&nbsp;
  
== <span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements">Network requirements</span></span></span></span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements"><span class="mw-headline" id="Network_requirements">Network requirements</span></span></span></span></span></span></span></span></span></span> ==
  
 
<br/> The Green Grass Core device&nbsp; must be able to access the following endpoints through specific ports:
 
<br/> The Green Grass Core device&nbsp; must be able to access the following endpoints through specific ports:
Line 66: Line 66:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description">Functional Description</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description"><span class="mw-headline" id="Functional_Description">Functional Description</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
  
 
There are three different functional components: '''CloudPrinting''', '''MachineInterface''', and '''DataIngestion'''.<br/> To access the Edge Devices portlet, navigate to: '''Shop Floor Control > Configuration > IIoT Configuration > Edge Devices'''.
 
There are three different functional components: '''CloudPrinting''', '''MachineInterface''', and '''DataIngestion'''.<br/> To access the Edge Devices portlet, navigate to: '''Shop Floor Control > Configuration > IIoT Configuration > Edge Devices'''.
Line 96: Line 96:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software">Install 42Q Edge Software</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software"><span class="mw-headline" id="Install_42Q_Edge_Software">Install 42Q Edge Software</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> =
  
== <span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting">CloudPrinting</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting"><span class="mw-headline" id="CloudPrinting">CloudPrinting</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
  
 
&nbsp;
 
&nbsp;
Line 179: Line 179:
 
&nbsp;
 
&nbsp;
  
=== <span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens">Testing Label Printing Function Using Label Engine Screens</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ===
+
=== <span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens"><span class="mw-headline" id="Testing_Label_Printing_Function_Using_Label_Engine_Screens">Testing Label Printing Function Using Label Engine Screens</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ===
  
 
#'''Navigate''' to: '''Administration > Label Engine Admin > Printer'''.  
 
#'''Navigate''' to: '''Administration > Label Engine Admin > Printer'''.  
Line 251: Line 251:
 
&nbsp;
 
&nbsp;
  
== <span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface">MachineInterface</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface"><span class="mw-headline" id="MachineInterface">MachineInterface</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
  
 
This function is used for sending commands to machines from the cloud.<br/> Below there is an example of stopping a machine when the server finds MSD material expired.
 
This function is used for sending commands to machines from the cloud.<br/> Below there is an example of stopping a machine when the server finds MSD material expired.
Line 327: Line 327:
 
&nbsp;
 
&nbsp;
  
== <span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion">DataIngestion</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion"><span class="mw-headline" id="DataIngestion">DataIngestion</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> ==
  
 
Please follow the steps below to create a 42Q Cloud Data Ingestion Edge Device in 42Q:
 
Please follow the steps below to create a 42Q Cloud Data Ingestion Edge Device in 42Q:
Line 452: Line 452:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things">Things</span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things"><span class="mw-headline" id="Things">Things</span></span></span></span></span></span></span> =
  
 
In this portlet, users can make sure whether the AWS Cloud has stored the data uploaded successfully or not.<br/> To do so, follow the steps below:
 
In this portlet, users can make sure whether the AWS Cloud has stored the data uploaded successfully or not.<br/> To do so, follow the steps below:
Line 479: Line 479:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations">Locations</span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations"><span class="mw-headline" id="Locations">Locations</span></span></span></span></span></span></span> =
  
 
The Locations portlet allows users to assign a location to the Edge Devices in order to identify their Physical Location.<br/> To add a location, follow the steps below:
 
The Locations portlet allows users to assign a location to the Edge Devices in order to identify their Physical Location.<br/> To add a location, follow the steps below:
Line 509: Line 509:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups">Groups</span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups"><span class="mw-headline" id="Groups">Groups</span></span></span></span></span></span></span> =
  
 
Users can create different groups of Edge Devices. Each group must have a unique name and one or more Thing IDs associated with it.
 
Users can create different groups of Edge Devices. Each group must have a unique name and one or more Thing IDs associated with it.
  
== <br/> <span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group">Add a Group</span></span></span></span></span></span> ==
+
== <br/> <span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group"><span class="mw-headline" id="Add_a_Group">Add a Group</span></span></span></span></span></span></span> ==
  
 
To add a group, follow the steps below:
 
To add a group, follow the steps below:
Line 535: Line 535:
 
&nbsp;
 
&nbsp;
  
== <span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group">Add a Rule To An Existing Group</span></span></span></span></span></span> ==
+
== <span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group"><span class="mw-headline" id="Add_a_Rule_To_An_Existing_Group">Add a Rule To An Existing Group</span></span></span></span></span></span></span> ==
  
 
To add a rule, follow the steps below:
 
To add a rule, follow the steps below:
Line 560: Line 560:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup">Notification Setup</span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup"><span class="mw-headline" id="Notification_Setup">Notification Setup</span></span></span></span></span></span></span> =
  
 
Before creating any rules, users have to set up notifications. Each user can subscribe to one or more '''SNS topics''' (Simple Notification Service); these users will receive notifications via text messages or email.<br/> To set up notifications, follow the steps below:
 
Before creating any rules, users have to set up notifications. Each user can subscribe to one or more '''SNS topics''' (Simple Notification Service); these users will receive notifications via text messages or email.<br/> To set up notifications, follow the steps below:
Line 651: Line 651:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules">Rules</span></span></span></span></span></span> =
+
= <span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules"><span class="mw-headline" id="Rules">Rules</span></span></span></span></span></span></span> =
  
 
In this portlet, users can create, view, edit, and delete rules. After setting up notifications, users may create rules which will trigger alerts. Each rule is associated with one or more Groups or Thing IDs.
 
In this portlet, users can create, view, edit, and delete rules. After setting up notifications, users may create rules which will trigger alerts. Each rule is associated with one or more Groups or Thing IDs.
Line 745: Line 745:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline">Alerts</span></span></span></span></span> =
+
= <span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline" id="Alerts"><span class="mw-headline">Alerts</span></span></span></span></span></span> =
  
 
After setting up notifications and rules, when a rule’s conditions comply, the alerts will be triggered, causing the notifications to be sent to the subscribed users.<br/> To access the Alerts portlet, follow the steps below:
 
After setting up notifications and rules, when a rule’s conditions comply, the alerts will be triggered, causing the notifications to be sent to the subscribed users.<br/> To access the Alerts portlet, follow the steps below:
Line 795: Line 795:
 
&nbsp;
 
&nbsp;
  
= <span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard">Dashboard</span></span></span></span></span> =
+
= <span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard"><span class="mw-headline" id="Dashboard">Dashboard</span></span></span></span></span></span> =
  
 
&nbsp;
 
&nbsp;
Line 809: Line 809:
 
<ol start="3">
 
<ol start="3">
 
<li>'''Enter''' the '''Widget Name'''.</li>
 
<li>'''Enter''' the '''Widget Name'''.</li>
<li>Select one of the types of widget:</li>
+
<li>'''Select''' one of the '''types of widgets''':</li>
 
</ol>
 
</ol>
  

Revision as of 18:41, 4 August 2023

42Q Home > IIoT > Device Self Service

 


 

 

IIoT Configuration
Device Self Service
Version MES 15.78
Revision D1
 

 

 

 

 

Introduction

The concept of GGC stands for “Green Grass Computer”, the word: “Computer” also refers to any kind of device. This document will teach users how to configure, install, and deploy a GGC, as well as create and set up an Edge Device for the purpose of establishing a connection between the computer (device) and the 42Q portal to send data (payloads).

 

Prerequisites

  • Only Linux is supported for the computer or device to install the Green Grass Core. The related shell scripts and test code only work on Linux systems (Windows is not currently supported).
  • Python 3.8 or higher must be installed and configured to run the test code.

Operating System and Software Requirements

  • Linux kernel version 4.4 or later (Ubuntu 20.04 and CentOS 8.5).
  • Java Runtime Environment (JRE) version 8 or greater (included in the installation script).
  • Python version 3.8 for functions that use the Python 3.8 runtime (included in the installation script).

 

 

Cgroups Requirements

The AWS IoT Greengrass Core software currently only supports Cgroups v1, not v2. In order to satisfy AWS Greengrass Core dependencies as stated in the official documentation "Setting up AWS IoT Greengrass core devices"  (Setting up AWS IoT Greengrass core devices - AWS IoT Greengrass ), the system should be configured with the following Linux kernel parameters and restarted:

cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

 

Adjusting Cgroup configuration

  1. Edit /etc/default/grub - Find the line that starts with "GRUB_CMDLINE_LINUX=" and append or change the following values: cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=false - Save the file
  2. Apply the configuration change by running: update-grub
  3. Restart the system
  4. Verify that the Cgroup configuration has been set to v1 by running the following command and ensuring that the response is "tmpfs": stat -fc %T /sys/fs/cgroup/;

 

Network requirements


The Green Grass Core device  must be able to access the following endpoints through specific ports:

For more details on what traffic needs to be authorized and why, please visit the official AWS documentation.

 

Functional Description

There are three different functional components: CloudPrinting, MachineInterface, and DataIngestion.
To access the Edge Devices portlet, navigate to: Shop Floor Control > Configuration > IIoT Configuration > Edge Devices.


Figure 1: Accessing Edge Devices
DSS Accessing Edge Devices.png

 

 

Figure 2: Edge Devices Functions

DSS Edge Devices Functions.png

 

  1. Users can query the list of all devices by Edge Device Name or Group Name.
  2. Users can create a new edge device.
  3. Users can view the details of the edge device.
  4. Users can download the software of the edge device.
  5. Users can upgrade this edge device with more features.
  6. Users can get all functional components through this button when no functional components are deployed on their local core device.
  7. Users can delete the edge device.

 

 

 

Install 42Q Edge Software

CloudPrinting

 

Figure 3: Cloud Printing

ED CloudPrinting.png

 

Please follow the steps below to create a 42Q Cloud Printing Edge Device in 42Q:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Edge Devices.
  2. Select CREATE EDGE DEVICE to create a new Green Grass Core.

 

Figure 4: CREATE EDGE DEVICE Button

DSS CREATE EDGE DEVICE Button.png

 

  1. Enter the Edge Device Name of the Green Grass Core. The name can be up to 128 characters. Valid characters are: a-z, A-Z, 0-9, colon (:), underscore (_), and hyphen (-).
  2. Select the Group Name as CloudPrintingGroup.

Note: After selecting the Group Name, the Group Version will automatically be selected.

 


Figure 5: Create Edge Device Form

DSS Create Edge Device Form.png

 

  1. Select the checkbox next to the desired Edge Device.
  2. Select the Download icon to download the Edge Device ZIP file.

 

 

Figure 6: Downloading The Files

DSS Downloading The Files.png

 

  1. Right-click on the ZIP file.
  2. Select Extract Here to unzip the file.
  3. Open the Terminal.
  4. Enter the command: sudo su, and then press Enter.
  5. Enter the root user’s password, and then press Enter.

Note: If the word: root@ appears before the computer’s username as in the image below, it means that you are logged in as a root user.

 


Figure 7: User Logged In as a Root User

DSS User Logged In as a Root User.png

 

  1. Enter the next command: sh ggcV2.sh, and then press Enter.

Note: After the script is installed successfully, users can navigate to the local device’s path: /greengrass/v2 to check the installed folder; logs are contained in the path: /greengrass/v2/logs.

 


Figure 8: Edge Device Folder

DSS Edge Device Folder.png

 

Testing Label Printing Function Using Label Engine Screens

  1. Navigate to: Administration > Label Engine Admin > Printer.
  2. Select Add.

 


Figure 9: Add Printer Button
DSS Add Printer Button.png

 

  1. Enter the Printer Name.
  2. Select the Resolution from the drop-down list.
  3. Select the Connectivity Type as Edge Device.

 


Figure 10: Entering The Printer Details

DSS Entering The Printer Details.png

 

Note: The TCP IP Address should be the address of the printer or start a TCP Server as a simulator by executing the next command in the Terminal: python3 tcpServer.py.

 

  1. Navigate to: Production > Label Engine Labels > LE Labels.
  2. Search for the label called “entry”, which will print whatever "Entry" value is passed.
  3. Select the checkbox next to the printer name.
  4. Select Print.

 


Figure 11: Print Button

DSS Print Button.png

 

  1. Select the Printer Name previously created.
  2. Enter a value in the Entry field.
  3. Select Test Print.

 

 

Figure 12: Entering Test Print Data

DSS Entering Test Print Data.png

 

  1. Open the Terminal.
  2. Navigate to the local device’s path: /greengrass/v2/logs.
  3. Enter the next command: tail -f {envide}_CloudPrinting.log. After that, a message will be received to confirm the successful testing.

 

Figure 13: Successful Testing Message

DSS Successful Testing Message.png
 

 

 

MachineInterface

This function is used for sending commands to machines from the cloud.
Below there is an example of stopping a machine when the server finds MSD material expired.

 

Figure 14: Server Stopping A Machine Due To Material Expired Diagram

EdgeDevice Diagram.png
 

The diagram above is divided into three steps:

  1. Install an Edge Device on a server in the plant.
  2. The plant creates a new local application that can communicate with the Edge Device by TCP and also can send commands to machines.
  3. The Cloud application will send commands to the Edge Device, then the Edge Device will forward the message to the local application through TCP/IP.


Please follow the steps below to create a 42Q Cloud Machine Interface Edge Device in 42Q:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Edge Devices.
  2. Select CREATE EDGE DEVICE to create a new Green Grass Core.
  3. Enter the Edge Device Name of the Green Grass Core. The name can be up to 128 characters. Valid characters are: a-z, A-Z, 0-9, colon (:), underscore (_), and hyphen (-).
  4. Select the Group Name as MachineInterfaceGroup.

Note: After selecting the Group Name, the Group Version will automatically be selected.

 

  1. Select the checkbox next to the desired Edge Device.
  2. Select the Download icon to download the ZIP file.
  3. Right-click on the ZIP file.
  4. Select Extract Here to unzip the file.
  5. Open the Terminal.
  6. Enter the command: sudo su, and then press Enter.
  7. Enter the root user’s password, and then press Enter.
  8. Navigate to the extract folder by using the command: cd {folder path}.
  9. Enter the next command: sh ggcV2.sh, and then press Enter.

Note: After the script is installed successfully, users can navigate to the computer’s path: /greengrass/v2 to check the installed folder; logs are contained in the path: /greengrass/v2/logs.

 

  1. Open Postman to test its functionality.
  2. Select POST as HTTP Method.
  3. Enter the URL.
  4. Enter the Topic.
  5. Enter the Output.
  6. Enter the Error.

 

Data nomenclature example:
URL: https://portal-uat.42-q.com/mes-api/[SiteName]/greengrass/v2/publish
Topic: [Envide]/machine-interface/[Envide]_[Edge device name]
Output: [Envide]/machine-interface/results
Error: [Envide]/machine-interface/errors

 


Figure 15: Sending The Payload Using Postman

DSS Sending The Payload Using Postman..png
 

  1. Open the Terminal.
  2. Navigate to the local device’s path: /greengrass/v2/log to view the logs.

 

 

Figure 16: Successful Payload Sending Logs

DSS Successful Payload Sending Logs.png
 

Note: If the message from the previous image is printed in your local log, the function has succeeded.
Adding the corresponding configuration for PTS allows PTS to send messages to Edge Device.

 

DataIngestion

Please follow the steps below to create a 42Q Cloud Data Ingestion Edge Device in 42Q:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Edge Devices.
  2. Select CREATE EDGE DEVICE to create a new Green Grass Core.
  3. Enter the Edge Device Name of the Green Grass Core. The name can be up to 128 characters. Valid characters are: a-z, A-Z, 0-9, colon (:), underscore (_), and hyphen (-).
  4. Select the Group Name as DataIngestionGroup.

Note: After selecting the Group Name, the Group Version will automatically be selected.

 

  1. Select the checkbox next to the desired Edge Device.
  2. Select the Download icon to download the ZIP file.
  3. Right-click on the ZIP file.
  4. Select Extract Here to unzip the file.
  5. Open the Terminal.
  6. Enter the command: sudo su, and then press Enter.
  7. Enter the root user’s password, and then press Enter.
  8. Enter the next command: sh ggcV2.sh, and then press Enter.

Note: After the script is installed successfully, users can navigate to the computer’s path: /greengrass/v2 to check the installed folder; logs are contained in the path: /greengrass/v2/logs.

 

  1. When the status of this Edge Device is "Healthy", select the Edit button to enter the Edge Device information.

 


Figure 17: Edit Button

DSS Edit Button.png

 

  1. Select the CLIENT DEVICES tab.
  2. Select CREATE CLIENT DEVICES.

 


Figure 18: CLIENT DEVICES TAB

DSS CLIENT DEVICES TAB.png

 

  1. Enter the name of the Client Device to be created.

Note: The name can be up to 128 characters. Valid characters: a-z, A-Z, 0-9, colon (:), underscore (_), and hyphen (-).

 

  1. Select ASSOCIATE.

 

 

Figure 19: Creating a Client Device

DSS Creating a Client Device.png

 

  1. Select the Download icon to download the Client Device ZIP file.
  2. Right-click on the ZIP file.
  3. Select Extract Here to unzip the file.

 


Figure 20: Client Device Folder

DSS Client Device Folder.png

 

  1. Open the MqttTest.py file.
  2. Find the line that contains: ‘# Change This’.
  3. Modify the data information to be sent; users may see an example below (user’s will be different).

 


Figure 21: Data To Be Modified

DSS Data To Be Modified.png

 

  1. Open the Terminal.
  2. Enter the next command: python MqttTest.py, and then press Enter. The result should be similar to the image below:

 


Figure 22: Result Of Executing The MqttTest.py File

DSS Result Of Executing The MqttTest.py File.png

 

  1. Navigate to the local device’s path: /greengrass/v2/log to view the logs.

 

 

Figure 23: Successful MqttTest.py Running Logs

DSS Successful MqttTest.py Running Logs.png


 

Note: If the message from the previous image is printed in your local log, the function has succeeded.

 

Things

In this portlet, users can make sure whether the AWS Cloud has stored the data uploaded successfully or not.
To do so, follow the steps below:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Things.

 


Figure 24: Things Portlet

DSS Things Portlet.png

 

  1. If the “Thing ID” is the same as the “id” configured in MqttTest.py file, it means that AWS Cloud has already stored the data uploaded.

 

 

Figure 25: Thing ID
DSS Thing ID.png

 

 

Locations

The Locations portlet allows users to assign a location to the Edge Devices in order to identify their Physical Location.
To add a location, follow the steps below:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Locations.

 

Figure 26: Locations Portlet

DSS Locations Portlet.png

  1. Select the ADD LOCATIONS button.


Figure 27: ADD LOCATION Button

 

  1. Enter the Site.
  2. Enter the Physical Location.
  3. Select the SAVE button.


Figure 28: Creating A Location

DSS Creating A Location.png
 

 

Groups

Users can create different groups of Edge Devices. Each group must have a unique name and one or more Thing IDs associated with it.


Add a Group

To add a group, follow the steps below:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Groups.
  2. Select the ADD GROUP button.

 

Figure 29: ADD GROUP Button

DSS GROUP Button.png


  1. Enter the Unique Group Name.
  2. Select a Thing ID.
  3. Select the SAVE button.


Figure 30: Creating A Group

 

Add a Rule To An Existing Group

To add a rule, follow the steps below:

  1. Hover the mouse over a Group Name from the Group list.
  2. Select the Edit Group icon.


Figure 31: Edit Group Icon

DSS Creating A Group.png

 

  1. Select a rule from the Select Rules drop-down list.
  2. Select the SAVE button.

 


Figure 32: Editing A Group

DSS Editing A Group.png

 

Notification Setup

Before creating any rules, users have to set up notifications. Each user can subscribe to one or more SNS topics (Simple Notification Service); these users will receive notifications via text messages or email.
To set up notifications, follow the steps below:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Notification Setup.

 

Figure 33: Notification Setup Portlet

DSS Notification Setup Portlet.png

  1. Select the CREATE SNS TOPIC button. A pop-up window will appear.

 


Figure 34: CREATE SNS TOPIC Button

DSS CREATE SNS TOPIC Button.png

 

  1. Enter the Topic Name.
  2. Select the SAVE button.

 


Figure 35: Create SNS Topic Pop-up Window

DSS Create SNS Topic Pop-up Window.png

 

  1. Hover the cursor over the Topic.
  2. Select the Subscribe icon. A new pop-up window will appear.

 


Figure 36: Subscribe Icon

DSS Subscribe Icon.png

 

  1. Select the SUBSCRIBE TO SNS TOPIC button. A new pop-up window will appear.

 


Figure 37: SUBSCRIBE TO SNS TOPIC Button

DSS SUBSCRIBE TO SNS TOPIC Button.png

 

  1. Select the Notification Method (Email or Phone).
  2. Enter the Notification End Point (email address).
  3. Select the SUBSCRIBE TO SNS TOPIC button to save the information.

 


Figure 38: Subcribing To A SNS Topic

DSS Subcribing To A SNS Topic.png

 

  1. The Subscribe List will display the Pending Confirmation and Confirmed End Points.

 


Figure 39: Subscribe List

DSS Subscribe List.png

 

  1. A confirmation mail will be sent to the entered email address. Open the mail.
  2. Select the Confirm subscription link.
  3. A window will be opened in a new tab confirming the subscription. To unsubscribe select the “click here to unsubscribe” link, else close the window.

 

 

Rules

In this portlet, users can create, view, edit, and delete rules. After setting up notifications, users may create rules which will trigger alerts. Each rule is associated with one or more Groups or Thing IDs.

 

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Rules.

 

Figure 40: Rules Portlet

DSS Rules Portlet.png

 

  1. Select the CREATE RULE button. A new pop-up window will appear.

 


Figure 41: CREATE RULE Button

DSS CREATE RULE Button.png

 

  1. Select one or more Groups from the GROUPS tab.

 

Figure 42: Selecting Groups

DSS Selecting Groups.png

 

  1. Select the THINGS tab.
  2. Select one or more Things.
  3. Select the NEXT button.

 

Figure 43: Selecting Things

DSS Selecting Things.png

 

  1. Select one of the two Bounds (rules):
  • Threshold: This rule will trigger an alert whenever a measured value crosses a specific threshold.
  • Independent: This rule will trigger an alert whenever a measured value satisfies the user-defined criteria.

 

Figure 44: Defining A Bound

DSS Defining Bound.png

 

  1. Select one option from the Boundary Considerations list.
  2. Select one option from the Control Values list.
  3. Enter the Limit Value.
  4. Select one of the Rule Options.
  5. Select the NEXT button.

 


Figure 45: Creating Rule Parameters

DSS Creating Rule Parameters.png

 

  1. Enter the Rule Name.
  2. Enter the SNS Topic.
  3. Enter the Notification Interval(minutes).
  4. Select the SAVE button.

 

Figure 46: Entering Publish Rule Information

DSS Entering Publish Rule Information.png

 

Alerts

After setting up notifications and rules, when a rule’s conditions comply, the alerts will be triggered, causing the notifications to be sent to the subscribed users.
To access the Alerts portlet, follow the steps below:

  1. Navigate to: Shop Floor Control > Configuration > IIoT Configuration > Alerts.

 

Figure 47: Alerts Portlet

DSS Alerts Portlet.png

 

  1. To search for a specific alert, users can use the filters: Thing ID, and Rule. To do so, enter the appropriate value in the filter field; the system will automatically search the value.

 

Figure 48: Thing ID And Rule Filters

DSS Thing ID And Rule Filters.png

 

  1. To delete an alert, select an alert checkbox.
  2. Select the Delete Alert button.

 

Figure 49: Deleting An Alert

DSS Deleting An Alert.png

 

  1. Select Yes to delete the alert, or No to abort.

 

Figure 50: Confirmation Delete Message

DSS Confirmation Delete Message.png

 

 

Dashboard

 

  1. Navigate to: Reporting > IIoT Dashboard.
  2. Select the + icon to create a new widget.

 

Figure 51: Add (+) Icon
DSS Add (+) Icon.png

 

  1. Enter the Widget Name.
  2. Select one of the types of widgets:
  • Historical
  • Predictive
  • Variation: This option requires entering the Lower and Upper Control Limit.
  • CPK/PPK(Single Thing Only): This option requires entering the Lower and Upper Control Limit. This type of widget is not possible to associate with groups, only Things.
  1. Select one or more Group Name from the GROUPS tab.
  2. Select the THINGS tab.
  3. Select the Thing ID that matches the "id" value previously configured in the MqttTest.py file.
  4. Select the SAVE button located at the end of the Add Widget Form.

 


Figure 52: Creating a Widget

DSS Creating a Widget.png

 

  1. Select the show/hide icon to view the values of the widget created.

 


Figure 53: Show/Hide Icon

DSS Show-Hide Icon.png


Note: Users can check the payload sent through either of the following:

  • IIoT widget.