User Story
As a developer, I want my edge endpoint to be available 24/7 and change the pointer to the running software version independent of the active version, so that I can keep remote control over my device.
Architecture Draft
MQTT client is built on Paho MQTT
OTA and RPC functionality from Thingsboard is integrated via the client
Edge Software is built and run via Docker container
Configuration is set via Thingsboard attributes
The edge software and the stand-alone process communicate via SQLite
Measurement data is persisted in a second SQLite Archive
A default version-specific config is bundled into the release version
The system-specific config is saved via ThingsBoard attributes
While edge software startup matching keys between the default config and the system-specific config are merged with the system-specific config, overwriting the default config
Keys not existing in the default Config are ignored
This allows to update to a new software version with new keys that don't exist in the Thingsboard Attributes yet
This also allows to update the ThingsBoard attributes before or after a new software update
Processed configuration versions are persisted by the edge software in the local SQLite database with a setup timestamp. This allows the stand-alone process to check on the latest running configuration version
User Story As a developer, I want my edge endpoint to be available 24/7 and change the pointer to the running software version independent of the active version, so that I can keep remote control over my device.
Architecture Draft
From the workshop with @larsfroelich