Deployment
The Deployment service handles the installation of software packages on the Edge device. When using the hopit Platform a private App Store can be used to store and download the packages. HEAP Engineering GmbH offers additionally an App Store, where all the packages used in the hopit Platform are hosted. The most important are:
hopit.edge: the hopit Edge service- Windows updates, which are approved by Beckhoff Automation GmbH
windows-10-iot-enterprise-2019-ltsc-cumulative-updatewindows-10-iot-enterprise-2019-ltsc-cumulative-update-for-netwindows-10-iot-enterprise-2019-ltsc-servicing-stack-update
twincat-xar: the Beckhoff TwinCAT Runtimebeckhoff-plc-installer: helper software to install TwinCAT PLC packages- Other packages for a custom GitLab CI/CD runner set-up.
For information to generate custom packages of TwinCAT projects, please see the DevOps section.
App Store structure​
The hopit Edge service connects to a private App Store. This App Store automatically proxies package requests to the HEAP App Store if the package is not found.
If the hopit Portal service is not used, the Edge device can use the HEAP App Store directly.
Configuration​
Corresponding Edge configuration and Device Twin definition for the Deployment settings:
- Edge-UI Connection
- Edge-UI Packages
- Device Twin
The Deployment service can be enabled or disabled with the Enabled property. If a custom App Store is used, the connection details can be configured here. If the Registry properties are empty, the HEAP App Store is used.

To install new Packages, enter the Package Name and optionally the Desired Version. If no version is specified, the latest available stable version is used (a version is stable, if it has no text in the version tag; stable: 1.0.0, pre-release: 1.0.0-beta). With the Action buttons, you can update, retry, or delete a package.

The Deployment service can be enabled or disabled with the Enabled property. If a custom App Store is used, the connection details can be configured here. If the Registry properties are null, the HEAP App Store is used.
The package can be controlled via the Status property. It can be set to:
- INSTALL
- RETRY
- UPGRADE
- REMOVE
The Deployment service then reports back the Status with:
- INSTALLED
- FAILED
- UPGRADING
- REMOVING
- REBOOTING
To upgrade to the latest stable version, set the DesiredVersion to an empty string ("") and Status to UPGRADE.
{
"Deployment": {
"RegistryUrl": "https://repo.<server>.hopit.at/repository/nuget-group/",
"RegistryUser": "hopit-client",
"RegistryPassword": "***",
"Packages": {
"hopit.edge": {
"InstalledVersion": "1.0.0",
"DesiredVersion": "1.0.0",
"Status": "INSTALLED"
},
"plc-application": {
"InstalledVersion": "2.1.4",
"DesiredVersion": "2.1.4",
"Status": "INSTALLED"
},
"microsoft-edge": {
"InstalledVersion": "95.0.1020.30",
"DesiredVersion": "",
"Status": "INSTALLED"
}
},
"Enabled": true
}
}
Updating​
When a package is installed or upgraded, the Updater service runs the operation in the background and reports the result — including any Chocolatey errors — back immediately. A failed or interrupted upgrade is no longer reported as success, so problems surface right away. An individual package operation may run for up to 3 hours before timing out.
Result delivery is correlated with the active operation and retried if its acknowledgement is lost. During an Edge upgrade, the bundled Updater binary is refreshed without stopping the Updater that is currently running the package operation. Once the operation is idle, the Updater waits for its Windows service to stop before starting the refreshed binary. If the installer has to start a newly staged Updater and startup fails, it restores the previous binary and attempts to start that version.
- Downgrade: A package can be moved back to an older version by setting a lower
Desired Version. - Large packages: The 3-hour timeout allows slow downloads of packages of several hundred megabytes to complete.
- Updater log: The progress of an upgrade can be followed on the Log page, where the Updater messages are shown together with the application log.