Managing firmware updates for 300+ edge devices through ThingWorx 9.5. OTA updates fail when devices are offline during the scheduled update window, and they don’t automatically resume when devices reconnect. This creates firmware version inconsistencies across our fleet.
We’re triggering updates via a scheduled service that iterates through devices and calls the update method. If a device is offline, the update attempt fails and we have no retry mechanism.
OTA.updateTimeout=300000
OTA.retryAttempts=0
device.connectionCheck=false
How do we implement OTA update queuing so offline devices receive updates when they reconnect? We also need better device connection monitoring and a way to ensure firmware version consistency across all devices. Currently about 20% of devices are running outdated firmware due to missed updates.
We’ve started implementing the queue-based approach. Need detailed guidance on the complete solution including all the monitoring aspects.
Implement firmware version consistency checks with a scheduled service that runs daily. Query all devices and group by firmware version. Alert if version fragmentation exceeds threshold (e.g., more than 2 versions in production). This helps identify devices that repeatedly fail updates and need manual intervention.
For connection monitoring, subscribe to the device Thing’s ‘isConnected’ property. When it changes from false to true, trigger a service that checks for pending updates. Also maintain a ‘currentFirmwareVersion’ property on each device Thing that gets updated after successful OTA. This lets you query for devices with outdated firmware easily.
The state machine approach sounds promising. How do you handle the device connection monitoring to trigger update checks when devices come online? And what about tracking firmware versions to identify which devices need updates?