Ich habe heute auf der Datenbankebene einige Änderungen, sprich Ergänzungen vorgenommen:

1. Neue Schlüsseltabelle (_diagram) um Diagramme zu beschreiben.

2. Tabelle (_device_diagram), mit der die Geräte (_device) 1:n Diagramm(en) zugeordnet werden können.

3. Neue Schlüsseltabelle (_export_topic) um topics zu benennen.

4. Tabelle (device_export_topic), mit der die Geräte (_device) 1:n den Export-Topics zugeordnet werden können.

Mit Nr. 1 und 2 wird ermöglicht, Messwerte für bestimmte Diagramme zusammen zu stellen. Das Diagramm selbst kann dann auf diese Auswahl zugreifen und damit kann die bisherige (umständliche und vor allem nicht ganz "saubere") Zusammenstellung der Messwerte für ein Diagramm über Hilfsgrößen wie zum Beispiel die Maßeinheit entfallen. Das war schon lange auf dem Plan und ist nun zumindest in der Tabellenstruktur definiert. Zugriff hierauf über die Oberfläche und damit für die Hand des Anwenders muss folgen.

Nr. 3 und 4 sind notwendig, um bestimmen zu können, welche Messwerte in die Langzeitspeicherung (influx) einbezogen werden sollen. Ich habe mich dafür entschieden, dies nicht nur durch ja/nein zu realisieren sondern gleich etwas komfortabler zu gestalten. Es ist jetzt möglich, einen Messwert einem oder auch mehreren Export-Topics zuzuordnen. Damit kann man also nicht nur bestimmen ob ein Messwert in den Export geht, sondern auch wohin, also in welchen Topic auf dem mqtt-Broker. Und damit kann ein Messwert auch mehreren dieser Export-Topics zugeordnet werden; sprich in der weiteren Verarbeitung auch in verschiedenen Buckets auf Influx gespeichert werden.

Für den Export Richtung Influx ergeben sich durch Nr. 1 und 2 nun auch gleich noch neue Metadaten, die ich noch in den Export einbauen werde, nämlich die Info, für welche Diagramme der Messwert vorgesehen ist. Da auch hier eine 1:n Zuordnung zwischen Messwert und Diagramm möglich ist, würde das im JSON-Export zu einer kaskadierten Struktur führen, die ich im Moment nicht will, weil ich auch nicht weiß, wie man diese dann über telegraf für influx vernünftig auflöst. Ich habe daher zunächst mal den Weg gewählt, die Diagramm-ID's zu einem String zusammen zu fassen. Ein Messwert der in den Diagrammen Nr. 7, 12 und 15 erscheinen soll bekäme daher den String 7#12#5 mit auf den Weg. Diese weitere Metainfo braucht dann auch noch eine Anpassungen bei der weiteren Verarbeitung mit telegraf. Beschreibung dazu habe ich eben (22.10.2023) aktualisiert.