TIA s71215 - LMQTT Topic Abfrage - Speicherung SQLServer - Systematic der Abfolge

tomlei

Level-2
Beiträge
140
Reaktionspunkte
11
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte über MQTT ein Topic bei einem Broker abfragen und den Messwert in einer SQL Datenbank speichern.

- Timer gesteuertes Lesen/Speichern in der SQL DB funktioniert.
- Topic Abfragen und Aufbereitung des Messwertes zum Speichern in der DB funktioniert.

Ich übergebe der Funktion das Topic und triggere Subscribe - dann werte ich das Array receivedMsgPayload aus und speichere den aufbereiteten Messwert in der DB.

Danach möchte ich ein anderes Topic übergeben und dessen Wert abspeichern. Dabei habe ich festgestellt, dass das so nicht funktioniert - weil das erste Topic noch abonniert ist und dann receivedMsgPayload keinen klaren Wert hat und immer zwischen den zwei Topics wechselt.

Frage zur Systematik:

Ich brauche eigentlich nicht die verschiedenen Topics (4-5) gleichzeitig zum Abspeichern. Mir würde es reichen, sie nacheinander zu lesen und zu speichern. Sollte man für jedes Topic ein Array anlegen oder das erste Topic unsubscriben bevor man das nächste Topic subscribed?
Ich habe versucht vor jedem subscribe des nächsten Topics das vorherige zu unsubscriben, allerdings funktioniert das so nicht richtig. Ich vermute, es ist ein Zeitproblem bei der Abarbeitung der MQTT Befehle. Ich habe keine Rückmeldung, ob das Topic abgemeldet ist bevor das nächste subscribed wird, gefunden.

Mir ist die Systematik, wie diese Bibliothek (LMQTT) funktionieren soll, noch nicht so richtig klar. Hat jemand so etwas schonmal umgesetzt?
 
Ich nutze publish/subscribe in getrennten CASE Konstrukten

Ich hab aber leider nur ein Topic zum subscriben. Ich schätze mal dass du dann zwischen den Cases immer ein sauberes Unsubscribe brauchst.

Ich nutzen aber den Mqtt Baustein aus der Kommunikationsbibliothek, dort bekommst du auch laut Handbuch ein Done-Signal für die Unsubscribe Funktion, wenn erfolgreich.
 
Zurück
Oben