# Gateway Software

The gateway is an energy site and IoT controller that optimizes energy systems operating either fully or partially off-grid. It manages energy storage, energy consumption, solar PV, and other generators, and performs islanding control during blackouts. Additionally, the gateway autonomously maintains data backup in case of an unstable internet connection and reduces traffic by leveraging telemetry compression.

Gateway Software

# 🔥 What's New

  • Gateway 2.5: security improvements
  • Gateway 2.4: bug fixing, base system packages update, support for easy network pre-configuration.
  • Gateway 2.3: the base OS is now based on the recently open-sourced layer of Enapter Linux.
  • Gateway 2.2: industrial-grade hardware support and improved reliability.
  • Gateway 2.1: Enapter devices auto-discovery, OPC UA and HTTP APIs, and Grafana plugin.

# 🛠️ Features

The gateway software provides the following functions:

  • Internet connectivity issues mitigation for reliable data delivery to Enapter Cloud.
  • Aggregated data from all devices such as UCMs and Electrolysers, and data compression.
  • OPC UA and HTTP API interfaces for 3rd party integrations.
  • Public MQTT for 3rd party integrations.
  • Rule Engine for energy system automation with Lua scripts.

# 📖 Downloads

Note

The latest version of Gateway Software can be found at fw.enapter.com (opens new window).

# ✅ Required Equipment

  1. Intel NUC computer with suitable power supply.
  2. USB flash drive 16 GB minimum.
  3. External Monitor with HDMI cable.
  4. USB Keyboard.
  5. Wi-Fi Router with Ethernet Cable.

Gateway Equipment

# Purchase Intel NUC

The wide range of Intel NUC models is supported, though minimal system requirements are applicable.

Recommended Configuration Minimal Configuration
NUC Model Intel® NUC 10th generation or later Intel® NUC 8
Processor Intel® Core™ i3 or i5, 4 cores Intel® Celeron® 2.4 GHz
Memory, RAM 8 GB 4 GB
Data Storage 250 GB SSD or NVMe M.2 250 GB SSD

Example models:

# 🚀 Installation Guide

# Create Bootable USB Flash

Note

USB Flash with Gateway Software will be constantly attached to the NUC during the gateway operation.

  1. Insert USB Flash to your computer connected to internet.
  2. Download the Gateway Software pack from fw.enapter.com (opens new window) to your computer.
  3. Download and install Balena Etcher (opens new window). It will be used to write the Gateway Software image to the USB flash.
  4. Start Balena Etcher and follow on-screen instructions: select Gateway Software file, select your USB flash drive, run the flashing process. Wait until flashing is successfully finished.
  5. Bootable USB Flash is ready, extract the USB flash from your computer.

# Alternative method (Windows only)

Show more
  1. Download the Gateway Software pack from fw.enapter.com (opens new window) to your computer connected to internet. Uncompress downloaded file.
  2. Download and install Win32 Disk Imager (opens new window). It will be used to write the Gateway Software image to the USB flash.
  3. Insert USB Flash to your computer.
  4. Start Win32 Disk Imager, select uncompressed WIC file (see the pictures below), select your USB flash drive and press Write button to run the flashing process. Wait until flashing is successfully finished.

Win32 Disk Imager - Select

Win32 Disk Imager - Write

# Cable Connections

Gateway Connections

Warning

Make the entire assembly process while the gateway is turned off.

Warning

Make sure you’re using the correct type of DC power supply that is specified in the user manual of your NUC model.

  1. Connect external monitor with HDMI cable.
  2. Insert USB Keyboard into any USB port.
  3. Connect to WiFi Router with Ethernet cable.
  4. Finally, connect Intel NUC to power supply and switch on the gateway. You will see a welcome screen on the connected monitor.

# Disable Secure Boot in Gateway BIOS

Enapter OS will boot from the USB flash. To enable it, Secure Boot must be turned off in BIOS.

To enter the BIOS press F2 button on a keyboard few times right after powering up Intel NUC. If you are facing issues with this step, check this troubleshooting guide (opens new window).

# NUC with Visual BIOS

  • Click Advanced > Boot > Secure Boot tab.
  • Uncheck Secure Boot option.
  • Press F10.
  • Select Yes to save this change.
  • Reboot the system.

# NUC with Aptio V BIOS

  • Click Boot > Secure Boot option
  • Select Disabled option for Secure Boot.
  • Press F10.
  • Select Yes to save this change.
  • Reboot the system.

# Set Up Gateway Software

Gateway Set Up

Note

Computer or mobile phone should be connected to the same network as the gateway.

  1. Make sure gateway is connected to WiFi router via Ethernet cable.
  2. Insert Bootable USB Flash into any USB port in the Gateway.
  3. Reboot a the gateway. After reboot you will see Enapter welcome screen on the connected monitor.
  4. To continue setup you need to access Gateway Web Interface. Open a new tab in the browser on your computer or mobile phone. Enter enapter-gateway.local into the address bar. If it doesn’t work, use IP address of Gateway instead (To obtain IP address, enter ip command on the initial welcome screen. The error may appear if the network is not yet initialized, please try again in one minute).
  5. Follow the on-screen setup instructions to finish the Gateway Software installation.

# ⚙️ Operational Modes

Gateway Modes

# Comparison Cloud Mode and Island Mode

Cloud Mode Island Mode
Description On-site devices will be accessible remotely through Enapter Cloud. All data, including device configuration and telemetry, will be stored in the Cloud. Most sites that are located in remote areas where internet connection is not easily accessible or is not stable. Even if the Internet connection is available, it is important for business to keep their equipment operational in isolated setups in case of a power outage.
That is why Enapter offers Island Mode for Gateway that allows to collect and store data from Enapter devices locally.
Historical Data /
Monitoring charts
Yes
Unlimited free cloud data storage
Yes
Limited by Gateway’s data drive storage
Commands Yes Yes
Remote access Yes No
Sites amount Unlimited
Cloud supports unlimited setups in any location
Only 1 site
Gateway supports only one setup
Adding 3rd party energy devices Yes
Any vendor device can be added to an energy management system with UCMs and Blueprints
No
Only Enapter Electrolysers, Dryers and Water Tanks can be added

# How to Set up Gateway in Island Mode

  1. Connect and power on all Enapter devices.
  2. Connect Intel NUC PC with Gateway 2.X software and network equipment according to technical specifications.
  3. Set up Gateway 2.X software using installation instructions.
  4. Open Enapter App and add Island connection.
  5. Scan QR code of an Enapter device and follow instructions.

# Installing Gateway Software on the Gateway Disk (optional)

Note

Gateway Software will be installed on the Gateway Data Storage Disk.

Warning

Gateway Software must be version 2.4 or above.

After successfully preparing the hardware part of your Enapter Gateway and completing the initial setup, you have a choice between two options for using your device:

  1. Continue operating with the operating system loaded from a USB flash drive. Please note that it is recommended to use industrial-grade USB flash drive.
  2. Install the Gateway Software on the internal disk.

Each of these options has its advantages and disadvantages, and the choice depends on your needs and the conditions in which the device will be operated.

Operating from a USB flash drive offers high flexibility in updating the operating system. You will only need to power off your Enapter Gateway, extract the USB flash drive, update the Gateway Software image using another computer, insert the USB flash drive back, and power on the device.

However, installing the Gateway Software on the internal disk provides a number of significant advantages. Firstly, it eliminates the risk of damaging or losing the flash drive, as nothing sticking out from the PC, making it a safer option if the device is to be left in a hard-to-reach place for a long time. Secondly, internal disks generally have a lower failure rate compared to flash drives, offering more reliability for long-term operation.

It's important to note, however, that the update process for an on-disk installation will require the physical presence of someone on-site, equipped with a USB keyboard and an external monitor. Additionally, at its current state, the process requires some knowledge about the Linux shell, making it essential for the person performing the update to be familiar with basic Linux commands and operations. For more detailed instructions please see the update guide.

To install the Gateway Software on the internal disk:

  1. Access the Gateway Shell. You can find detailed instructions on how to access the Gateway the guide.
  2. Once you have successfully connected to the Enapter Gateway device, enter the following command in the shell:
sudo enapter-linux-install
  1. This command will initiate the installation process for the Gateway Software. Follow the on-screen instructions to complete the installation.

After entering the installation command, you will see a series of messages on your screen as the system proceeds with the installation. Here is an example of what you might see:

enapter@enapter-gateway:~$ sudo enapter-linux-install
Are you sure you want to proceed with installing Enapter Linux on the HDD? (y/n) y
[INFO] Ok, we will proceed.

[INFO] Mounting the HDD boot partition.

mount: /dev/sda2 mounted on /mnt/boot.
[INFO] Copying system files, please wait...

mkdir: created directory '/mnt/boot/EFI'
mkdir: created directory '/mnt/boot/EFI/BOOT'
'/boot/EFI/BOOT/grub.cfg' -> '/mnt/boot/EFI/BOOT/grub.cfg'
'/boot/EFI/BOOT/grubenv' -> '/mnt/boot/EFI/BOOT/grubenv'
'/boot/EFI/BOOT/unicode.pf2' -> '/mnt/boot/EFI/BOOT/unicode.pf2'
'/boot/EFI/BOOT/bootx64.efi' -> '/mnt/boot/EFI/BOOT/bootx64.efi'
'/boot/EFI/BOOT/mmx64.efi' -> '/mnt/boot/EFI/BOOT/mmx64.efi'
'/boot/EFI/BOOT/grubx64.efi' -> '/mnt/boot/EFI/BOOT/grubx64.efi'
mkdir: created directory '/mnt/boot/EFI/enapter'
'/boot/EFI/enapter/version.txt' -> '/mnt/boot/EFI/enapter/version.txt'
'/boot/EFI/enapter/rootfs.img' -> '/mnt/boot/EFI/enapter/rootfs.img'
'/boot/EFI/enapter/initrd' -> '/mnt/boot/EFI/enapter/initrd'
'/boot/EFI/enapter/bzImage' -> '/mnt/boot/EFI/enapter/bzImage'
'/boot/Enapter.cer' -> '/mnt/boot/Enapter.cer'
mkdir: created directory '/mnt/boot/layers'
'/boot/layers/enapter-iot.img' -> '/mnt/boot/layers/enapter-iot.img'
[INFO] Syncing disks.

[INFO] Unmounting the HDD boot partition.

[INFO] Enapter Linux has been successfully installed on the HDD. Please remove the installation media (USB stick) and reboot the PC.

Please note, the actual messages may vary depending on your specific hardware and software versions. This example is provided to give you a general idea of the installation process and the types of messages that confirm successful steps.

If you encounter any error messages during the installation, or experience difficulties in resolving them, or have questions, please do not hesitate to reach out to us on Discord (opens new window) for support.

# Virtual UCM

If you want to integrate devices connected to an Ethernet or WiFi network and use protocols such as Modbus TCP, HTTP, OPC UA for communication, then you do not need additional hardware modules and all you need is your Enapter Gateway and Enapter vUCM technology.

To integrate devices, you will need to create a device description in YAML format and some Lua code. For more information see our documentation on Enapter Blueprints (opens new window) и vUCM Lua API (opens new window)

# How to Add Virtual UCM

To add Virtual UCM to your Site:

# Rule Engine

Gateway firmware 2.x contains a redesigned Rule Engine that allows you to write rules in the Lua language using a convenient web IDE.

Now the Rule Engine supports not only Enapter devices but also any other devices, thanks to Enapter Blueprints technology.

See our Enapter Blueprints (opens new window) and Enapter Rule Engine (opens new window) programming guide for writing rules in Lua.

Also, be sure to check the Use cases section for examples of rules usage.

# Create Enapter Rule

  • Open your Site in Enapter Cloud (opens new window).
  • Look for Rules on the left sidebar and click on the Manage button.
  • On the next screen, click the New Rule button in the top right corner.

# 🖥️ Command Line Interface

The CLI of the Enapter Gateway has been changed as of version 2.4. Please refer to the appropriate guide based on your version to ensure proper use of the CLI.

# For Version 2.4 and Newer:

Command Line Interface Guide for Version 2.4 and Newer

# For Versions Prior to 2.4:

Command Line Interface Guide for Versions Prior to 2.4

# 🕸️ Public MQTT API

Note

MQTT API supported for Enapter devices only.

# Configuration

Before starting integration process MQTT API should be configured. If you are not familiar with how to access and use Enapter Command Line interface please see Enapter Command Line Interface section of this documentation.

To do this - enter configuration mode on gateway shell and set basic parameters.

# Setup MQTT Port and Authentication

Note

The process for configuring Public MQTT has been updated in Enapter Gateway version 2.4. Please refer to the version-specific guides below.

For Version 2.4 and Newer: Access the updated guide.

For Versions Before 2.4: Consult the guide.

# Receiving device telemetry

  1. Connect to mqtt on gateway ip address, specified port, with specified username & password,
  2. Subscribe to telemetry topic.
mosquitto_sub -d -v -p 9883 -h 192.168.1.1 -u public -P password -t "telemetry/v1/<DEVICE_ID>"

# Device Telemetry API

# Device Telemetry

Provides Device telemetry.

Will be published every 1 second.

telemetry/v1/{id}
Payload Field Description
timestamp Message publishing timestamp
... Device-specific fields
# Example

Topic

telemetry/v1/A0B1

Payload

{
  "timestamp": 1514320289,
  "uptime": 2
}

# Device Commands API

# Request Command Execution

commands/v1/{id}/requests
Payload Field Description
id Command execution ID, e.g. UUID
name Command name
arguments Optional, command arguments
expires Optional, command expiration timestamp
# Example

Topic

commands/v1/A0B1/requests

Payload

{
  "id": "ab3e364c-cab2-4cc1-872d-4d554530d587",
  "name": "impulse",
  "arguments": {
    "id": 1,
    "impulse": 300
  }
}

# Command Execution Responses

commands/v1/{id}/responses
Payload Field Description
id Required, command execution ID, e.g. UUID
state Required, command execution state, e.g. started
payload Optional, command state payload
# Example

Topic

commands/v1/A0B1/responses

Payload

{
  "id": "ab3e364c-cab2-4cc1-872d-4d554530d587",
  "name": "finished"
}

# Electrolyser V2.1 Protocol

# Device Telemetry Payload

Field Description
electrolyte_downstream_temperature Downstream Temperature in Celsius
electrolyte_level_high Indicates whether electrolyte level is higher than high level
electrolyte_level_low Indicates whether electrolyte level is higher than low level
electrolyte_level_medium Indicates whether electrolyte level is higher than medium level
electrolyte_level_very_high Indicates whether electrolyte level is higher than very high level
electrolyte_tank_temperature Electrolyte Tank Temperature in Celsius
errors List of electrolyser errors (opens new window)
h2_flow H2 Production in Normal Litre/hour
h2_total Total H2 Produced in Normal Litre
has_errors Indicates whether any device errors boolean
has_warnings Indicates whether any device warnings boolean
is_running Indicates whether device is running boolean
outlet_pressure H2 Outlet Pressure in Bar
production_rate Current electrolyser production rate in percents
stack_amperage H2 Stack Amperage in Ampere
stack_pressure H2 Stack Pressure in Bar
stack_voltage H2 Stack Voltage in Volt
status Electrolyser status string one of maintenance, expert, error, fatal, idle, steady, standby, curve, blowdown
timestamp Message publishing timestamp
warnings List of electrolyser warnings (opens new window)
water_inlet_pressure Water Inlet Pressure in Bar
water_refilling_valve_open Indicates whether water refilling valve is open state
# Example
{
  "electrolyte_downstream_temperature": 24.7,
  "electrolyte_level_high": false,
  "electrolyte_level_low": true,
  "electrolyte_level_medium": true,
  "electrolyte_level_very_high": false,
  "electrolyte_tank_temperature":  38.3,
  "errors": ["FP_01", "FP_03"],
  "h2_flow": 250.0,
  "h2_total": 10000,
  "has_errors":  true,
  "has_warnings": false,
  "is_running":  true,
  "outlet_pressure":  30.0,
  "production_rate": 100,
  "stack_amperage": 12.3,
  "stack_pressure": 30.1,
  "stack_voltage": 38.1,
  "status": "steady",
  "timestamp": 1514320289,
  "warnings": [],
  "water_inlet_pressure": 1.2,
  "water_refilling_valve_open": false
}

# Supported Commands

Command Name Description Arguments
start Start electrolyser
stop Stop electrolyser
reset Reset electrolyser
set_production_rate Set electrolyser production rate (in percents) value (float)
set_waterfill Force electrolyser to perform water refill operation value (boolean) (should be set to true)
set_preheat Start electrolyser pre-heating value (boolean) (should be set to true)

# Enapter Dryer Protocol

# Device Telemetry Payload

Field Description
timestamp Message publishing timestamp
status Dryer status string one of waiting_for_power, waiting_for_pressure, stopped_by_user, starting, standby, waiting_for_pressure, drying_0, cooling_0, switching_0, pressurizing_0, finalizing_0, drying_1, cooling_1, switching_1, pressurizing_1, finalizing_1, leak_input, leak_dryer, error
is_running Indicates whether device is running boolean
has_errors Indicates whether any device errors boolean
errors List of dryer errors (opens new window)
warnings List of dryer warnings (opens new window)
input_pressure H2 Inlet Pressure in Bar
output_pressure H2 Outlet Pressure in Bar
# Example
{
  "timestamp": 1547680704,
  "status": "drying_0",
  "is_running": true,
  "has_errors": true,
  "input_pressure": 30.5,
  "output_pressure": 26.1,
  "errors": ["TT00", "PT00"],
  "warings": []
}

# Supported Commands

Command Name Description
start Start dryer
stop Stop dryer
reset Reset dryer

# 💻 OPC UA

OPC UA (Open Platform Communication Unified Architecture) is a secure OT-IT communication standard mostly for industrial equipment. Known by some as “the global production language”, OPC UA enables improved data communication and interoperability between devices and systems in many industries.

Info

Definition, features and more details about OPC UA can be found at opcfoundation.org (opens new window).

# Required Equipment

You will need a Enapter Gateway Software installed to your Intel NUC computer. It provides telemetry, properties and commands for all connected devices over the OPC UA interface, for easier interoperability with industrial systems.

# Enabling OPC UA on the Gateway

OPC UA - Enabling

The OPC UA server feature has to be enabled on the settings page available in the Gateway web interface. No further configuration is needed in both Island and Cloud modes: connected devices will automatically appear in the OPC UA nodes tree.

  1. Install Gateway Software according to this guide.
  2. Access Web GUI of the Gateway using http://enapter-gateway.local or IP address.
  3. Click on Settings.
  4. Click on the Enable button in the OPC UA Server area.

# Connecting to OPC UA Client

Download a OPC UA client, for example UAExpert (opens new window) from Unified Automation. UAExpert is a free download for testing OPC UA connectivity and data flow.

To Connect UAExpert to the Enapter OPC UA Server follow these steps:

  1. In UAExpert, under Server select Add…. A dialog will appear with the most recently used servers. Under the Custom Discovery branch follow Double Click to Add Server…. In the upcoming dialog enter: opc.tcp://enapter-gateway.local.

OPC UA - Enter URL

Info

You need to make sure that your DNS server is resolving this address correctly or you will not be able to connect. You can use the IP address of the Gateway instead of enapter-gateway.local but you might run in security issues with the certificate of the OPC UA Server which uses enapter-gateway.local as its host-name.

  1. Once the URL is showing in the list under Custom Discovery you can double-click the entry to see the Enapter UA Server. If you double-click on this entry, you can choose an encryption for the connection. Pick the one that is closest to the encryption your OPC UA Client will use. The server will then appear on the left side under Project/Servers.

  2. To connect to the server, right click the server and select “Connect”. The first time you connect you will be prompted to trust the Self-Signed Server Certificate of the OPC UA Server.

OPC UA - Certificate Validation

Click the Trust Server Certificate button to accept the certificate then click on Continue.

Info

Under UA Extensions you see the DNSNames: enapter-gateway.local. Some OPC UA Clients are sensitive that this DNS name matches the URL you picked in Step 1 and will reject certificates if the DNS name does not match. We recommend that you make sure your gateway resolves correctly to enapter-Gateway.local in your network.

  1. You can now see all the Devices managed by the Gateway in the Address Space area under Root/Objects/Enapter.

Each Device is one OPC UA Object. You can navigate the tree to the Properties and Telemetry data of any device. If you drag a Telemetry field to the Data Access View you can see the live value of the field.

All Enapter devices (electrolysers, dryers, water tanks) and any 3rd party device integrated via Enapter Blueprints are exposed the same way in the OPC UA tree.

OPC UA - Connected devices

Note

In future versions of the OPC UA Server, the hierarchy of the object might change.

# 🤖 Creating Enapter Rule (Automation)

# 💼 Enapter Rule Engine Use Cases

Enapter Rule Engine recipes are available in Developers Documentation (opens new window).

Feel free to ask for a help in Discord (opens new window).

# 🧠 Updating Gateway Software

# Updating the Gateway Software on the Bootable USB Flash

  1. Power off the Enapter Gateway.
  2. Extract the USB flash from the Enapter Gateway.
  3. Refer to the Create Bootable USB Flash guide to download the latest version of the Enapter Gateway Software. Follow the instructions provided in the guide to write the new software version onto your USB flash drive.
  4. Insert Bootable USB Flash into any available USB port on the Enapter Gateway. Ensure the drive is securely connected.
  5. Power on the Enapter Gateway. The internal update process will automatically initiate during the first boot with the updated Gateway Software version on the USB flash drive. This process is designed to run seamlessly, but it's important to not interrupt the power supply during the update.

# Updating the Gateway Software on the Gateway Disk

Before you begin, ensure you have the following items:

  • A USB flash drive with a minimum capacity of 16 GB
  • An external monitor connected to the Enapter Gateway
  • A USB keyboard

Note

These items are necessary to perform the software update process on your Enapter Gateway.

  1. Refer to the Create Bootable USB Flash guide to download the latest version of the Enapter Gateway Software. Follow the instructions provided in the guide to write the new software version onto your USB flash drive.
  2. Insert Bootable USB Flash into any available USB port on the Enapter Gateway. Ensure the drive is securely connected.
  3. Power on the Enapter Gateway and use the computer's BIOS boot menu to select booting from the USB flash drive.
  4. After a successful boot process, verify that you have booted with the new version of the Enapter Gateway software. The software version is displayed as part of the welcome message.
  5. Access the Gateway Shell. You can find detailed instructions on how to access the Gateway the guide.
  6. Once you have successfully connected to the Enapter Gateway device, enter the following command in the shell:
sudo enapter-linux-install

After entering the installation command, you will see a series of messages on your screen as the system proceeds with the installation. Here is an example of what you might see:

$ sudo enapter-linux-install
Are you sure you want to proceed with installation Enapter Linux on HDD? (y/n) y
[INFO] Ok, we will proceed.

[INFO] Mounting the HDD boot partition.

mount: /dev/sda2 mounted on /mnt/boot.

Enapter Linux appears to be already installed on the HDD (/mnt/boot), but the system has booted from a USB. If you wish to overwrite the installed files, please remove them manually.

If you seeing this message and no errors you may proceed.

Please execute the command below to remove the currently installed system files, and then proceed to re-run the installation process:

sudo rm -rf /mnt/boot/*
sudo enapter-linux-install

After entering the installation command, you will see a series of messages on your screen as the system proceeds with the installation. Here is an example of what you might see:

enapter@enapter-gateway:~$ sudo enapter-linux-install
Are you sure you want to proceed with installing Enapter Linux on the HDD? (y/n) y
[INFO] Ok, we will proceed.

[INFO] Mounting the HDD boot partition.

mount: /dev/sda2 mounted on /mnt/boot.
[INFO] Copying system files, please wait...

mkdir: created directory '/mnt/boot/EFI'
mkdir: created directory '/mnt/boot/EFI/BOOT'
'/boot/EFI/BOOT/grub.cfg' -> '/mnt/boot/EFI/BOOT/grub.cfg'
'/boot/EFI/BOOT/grubenv' -> '/mnt/boot/EFI/BOOT/grubenv'
'/boot/EFI/BOOT/unicode.pf2' -> '/mnt/boot/EFI/BOOT/unicode.pf2'
'/boot/EFI/BOOT/bootx64.efi' -> '/mnt/boot/EFI/BOOT/bootx64.efi'
'/boot/EFI/BOOT/mmx64.efi' -> '/mnt/boot/EFI/BOOT/mmx64.efi'
'/boot/EFI/BOOT/grubx64.efi' -> '/mnt/boot/EFI/BOOT/grubx64.efi'
mkdir: created directory '/mnt/boot/EFI/enapter'
'/boot/EFI/enapter/version.txt' -> '/mnt/boot/EFI/enapter/version.txt'
'/boot/EFI/enapter/rootfs.img' -> '/mnt/boot/EFI/enapter/rootfs.img'
'/boot/EFI/enapter/initrd' -> '/mnt/boot/EFI/enapter/initrd'
'/boot/EFI/enapter/bzImage' -> '/mnt/boot/EFI/enapter/bzImage'
'/boot/Enapter.cer' -> '/mnt/boot/Enapter.cer'
mkdir: created directory '/mnt/boot/layers'
'/boot/layers/enapter-iot.img' -> '/mnt/boot/layers/enapter-iot.img'
[INFO] Syncing disks.

[INFO] Unmounting the HDD boot partition.

[INFO] Enapter Linux has been successfully installed on the HDD. Please remove the installation media (USB stick) and reboot the PC.

Please note, the actual messages may vary depending on your specific hardware and software versions. This example is provided to give you a general idea of the installation process and the types of messages that confirm successful steps.

  1. Power off the Enapter Gateway.
  2. Extract the USB flash from the Enapter Gateway.
  3. Power on the Enapter Gateway.

If you encounter any error messages during the installation, or experience difficulties in resolving them, or have questions, please do not hesitate to reach out to us on Discord (opens new window) for support.