diff --git a/display/middleware/src/modules/mqtt/topic-discovery.ts b/display/middleware/src/modules/mqtt/topic-discovery.ts index 7603374..b9c1d88 100644 --- a/display/middleware/src/modules/mqtt/topic-discovery.ts +++ b/display/middleware/src/modules/mqtt/topic-discovery.ts @@ -93,11 +93,18 @@ export function startDiscovery(brokerId: number, prefix?: string): Promise { + const onMessage = (topic: string, payload: Buffer): void => { + const payloadStr = payload.toString(); if (!discoveredTopics.has(topic)) { discoveredTopics.add(topic); ensureTopicExists(brokerId, topic); } + // Always update last_payload so the user sees the latest value + const db = getDb(); + db.run( + 'UPDATE mqtt_topics SET last_payload = ? WHERE broker_id = ? AND topic = ?', + [payloadStr, brokerId, topic] + ); }; if (existingClient && existingClient.connected) {