We’re experiencing issues with our visualization dashboard not reflecting real-time device data from AWS IoT Core. Our manufacturing floor sensors publish telemetry every 30 seconds using MQTT protocol with QoS 1, but the dashboard widgets show stale data sometimes 5-10 minutes old.
Current setup:
Topic: factory/sensor/+/telemetry
QoS: 1
SDK: AWS IoT Device SDK v2
Update Interval: 30s
The MQTT topic subscription appears active in IoT Core console, and CloudWatch metrics show messages are being received. However, the viz-dashboard module doesn’t seem to be pulling updates consistently. We’ve verified Device SDK protocol support is correctly configured for our sensor fleet. Is there a known issue with MQTT QoS compatibility affecting dashboard real-time update logic? Any insights on AWS IoT Core MQTT topic subscription patterns that work better with dashboard widgets would be appreciated.
I’ve seen similar behavior with QoS 1 subscriptions. The issue often stems from how the dashboard module handles MQTT message persistence. Check your IoT Core rule engine configuration - are you routing messages through a rule before they reach the dashboard? Sometimes adding an intermediate Lambda or IoT Analytics step introduces latency. Also verify your dashboard refresh rate matches your publish interval. If widgets are configured to poll every 60 seconds but devices publish every 30 seconds, you’ll miss updates.
Wildcard subscriptions can definitely add overhead, especially with high device counts. Each wildcard match requires topic parsing and routing by IoT Core. For real-time dashboards, consider subscribing to specific topics or using topic filters in your rules engine to pre-aggregate data. Also, with QoS 1, you’re getting acknowledgment overhead - every message requires a PUBACK. For telemetry that’s acceptable to lose occasionally, QoS 0 might actually give you better real-time performance. The trade-off is delivery guarantee vs latency. Most monitoring dashboards can tolerate missing a data point if it means the ones that arrive are fresher.
Good points both. We are using shadows for some device state management, but the telemetry data goes directly to a custom topic. I checked the dashboard configuration and found the refresh interval was set to 120 seconds - that explains part of the delay. Changed it to 30 seconds to match publish rate. Still seeing occasional staleness though, maybe 2-3 minutes behind instead of 10. Could this be related to how AWS IoT Core handles topic wildcards? We’re using factory/sensor/+/telemetry to capture all sensors.