NEWS
[gelöst] Datenbank mit mehr als einem "_value" - Feld
-
Ich habe mittels Blockly eine Ausgabe erstellt, die unter _value einen Text und einen zugehörigen Wert enthält (für influxdb und grafana). Diese Datenbank würde ich gerne nach dem Wert sortieren. Da aber dort auch der Text mit enthalten ist, funktioniert das nicht.
Gibt es eine Möglichkeit zwei Felder _value anzulegen, eins für den Text und das andere soll den zugeordneten Wert enthalten?Was willst du am Ende eigentlich erreichen.
Nicht das dein angenommener Lösungsweg schon in die falsche Richtung geht?In Datenbanken hält man Datentypen eigentlich in unterschiedlichen Feldern. Im rahmen einer Abfrage kann man dann das gewünschte Ergebnis als Datensatz bzw. als Liste von Datensätzen erhalten.
Man kann zwar komplexere Datentypen in ein datenbankfeld zwar schreiben. Wenn du da aber auf Teile Datenbank Operationen ausführen willst (sortieren,gruppieren,filtern) dann nimmst dander Datenbank die Möglichkeit das zu interpretieren. Zudem muss die Datenbank jeden einzelnen Datensatz interpretieren, was aber wieder Performance kostet. Wenn ein datenbankfeld aus einem der Datentypen besteht, die diese versteht, kann sie sich im Hintergrund optimieren und entsorgende Indexe anlegen, mit der es sehr schnell geht datenbankoperationen durchzuführen.
Ansonsten muss sie uU alle Datensätze einzeln durchgehen und interpretieren was enorm viel Zeit in Anspruch nehmen kann.Wenn Du genau schreibst was am Ende herauskommen soll, könnte man Dir eine Lösung vorschlagen, die am wenigsten Probleme verursacht.
-
Ich habe mal angefangen mit Array (sinnlose Testdaten):

In Influx sieht es dann so aus:

Nun muss ich mal sehen, was ich damit anfangen kann.
@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
was ich damit anfangen kann.
wahrscheinlich nichts, solange du uns nicht sagst worauf du hinaus willst
-
Was willst du am Ende eigentlich erreichen.
Nicht das dein angenommener Lösungsweg schon in die falsche Richtung geht?In Datenbanken hält man Datentypen eigentlich in unterschiedlichen Feldern. Im rahmen einer Abfrage kann man dann das gewünschte Ergebnis als Datensatz bzw. als Liste von Datensätzen erhalten.
Man kann zwar komplexere Datentypen in ein datenbankfeld zwar schreiben. Wenn du da aber auf Teile Datenbank Operationen ausführen willst (sortieren,gruppieren,filtern) dann nimmst dander Datenbank die Möglichkeit das zu interpretieren. Zudem muss die Datenbank jeden einzelnen Datensatz interpretieren, was aber wieder Performance kostet. Wenn ein datenbankfeld aus einem der Datentypen besteht, die diese versteht, kann sie sich im Hintergrund optimieren und entsorgende Indexe anlegen, mit der es sehr schnell geht datenbankoperationen durchzuführen.
Ansonsten muss sie uU alle Datensätze einzeln durchgehen und interpretieren was enorm viel Zeit in Anspruch nehmen kann.Wenn Du genau schreibst was am Ende herauskommen soll, könnte man Dir eine Lösung vorschlagen, die am wenigsten Probleme verursacht.
Ja, gute Frage.
Anfangs wollte ich nur das Problem ganz oben mit der Sortierung lösen. Das wäre aber eher unwichtig, verweist aber auf ein Problem, auf das ich schon vor längerer Zeit gestoßen war.
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten. Diese sollen sie bereits aus iobroker mitbekommen haben.
Es ist gut möglich, dass dafür iobroker/influxdb/Grafana grundsätzlich nicht ausgelegt sind. -
Ja, gute Frage.
Anfangs wollte ich nur das Problem ganz oben mit der Sortierung lösen. Das wäre aber eher unwichtig, verweist aber auf ein Problem, auf das ich schon vor längerer Zeit gestoßen war.
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten. Diese sollen sie bereits aus iobroker mitbekommen haben.
Es ist gut möglich, dass dafür iobroker/influxdb/Grafana grundsätzlich nicht ausgelegt sind.@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten
bei einer Datenbank könnte ich dem noch halbwegs folgen, mit Grafana ist zwar sehr mächtig, damit kenne ich mich nicht aus, aber wie stellst du dir vor die Zusatzinformationen in einem Chart darstellen zu können.
@oliverio
alter Editeur 😉das stand doch eben noch nicht alles da!?
-
Ja, gute Frage.
Anfangs wollte ich nur das Problem ganz oben mit der Sortierung lösen. Das wäre aber eher unwichtig, verweist aber auf ein Problem, auf das ich schon vor längerer Zeit gestoßen war.
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten. Diese sollen sie bereits aus iobroker mitbekommen haben.
Es ist gut möglich, dass dafür iobroker/influxdb/Grafana grundsätzlich nicht ausgelegt sind.@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
Ja, gute Frage.
Anfangs wollte ich nur das Problem ganz oben mit der Sortierung lösen. Das wäre aber eher unwichtig, verweist aber auf ein Problem, auf das ich schon vor längerer Zeit gestoßen war.
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten. Diese sollen sie bereits aus iobroker mitbekommen haben.
Es ist gut möglich, dass dafür iobroker/influxdb/Grafana grundsätzlich nicht ausgelegt sind.Also du willst ein Diagramm haben (Linie, kuchen, Balken?)
Dort soll in einer Zeitreihe? Werte aufgelistet werden.
Zu jedem datenpunkt sollen noch zusatzinformationen als Text? Angezeigt werden?Datenpunkte auf Zeitabschnittkönnen es ja sehr viele sein. uU mehrere pro Minute. Dank daran, das der Text ja da auch mit dazu muss. Kann man das noch ansehen?
-
@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten
bei einer Datenbank könnte ich dem noch halbwegs folgen, mit Grafana ist zwar sehr mächtig, damit kenne ich mich nicht aus, aber wie stellst du dir vor die Zusatzinformationen in einem Chart darstellen zu können.
@oliverio
alter Editeur 😉das stand doch eben noch nicht alles da!?
-
@OliverIO sagte in Datenbank mit mehr als einem "_value" - Feld:
manche Gedanken entstehen iterativ
frei nach dem Motto:
wie soll ich wissen was ich denke, bevor ich lese was ich schreibe 😉kenn ich!
aber beim nächsten Mal bitte nicht editieren, während ich am Tablet versuche, den im quote versteckten Satz mit dem dicken Finger zu markieren :joy:
-
@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
Ja, gute Frage.
Anfangs wollte ich nur das Problem ganz oben mit der Sortierung lösen. Das wäre aber eher unwichtig, verweist aber auf ein Problem, auf das ich schon vor längerer Zeit gestoßen war.
Letztlich sollen zum Schluß in Grafana Daten angezeigt werden, die nicht nur den Wert, sondern auch selbst hinzugefügte Informationen beinhalten. Diese sollen sie bereits aus iobroker mitbekommen haben.
Es ist gut möglich, dass dafür iobroker/influxdb/Grafana grundsätzlich nicht ausgelegt sind.Also du willst ein Diagramm haben (Linie, kuchen, Balken?)
Dort soll in einer Zeitreihe? Werte aufgelistet werden.
Zu jedem datenpunkt sollen noch zusatzinformationen als Text? Angezeigt werden?Datenpunkte auf Zeitabschnittkönnen es ja sehr viele sein. uU mehrere pro Minute. Dank daran, das der Text ja da auch mit dazu muss. Kann man das noch ansehen?
-
Grafana stellt Diagramme dar, keine Tabellen.
Du kannst dir ja mal auf der produktseite die Beispiele anschauen.
https://grafana.com/grafana/?plcmt=products-navTabellen kannst du direkt mit Daten aus der Datenbank im iobroker anzeigen.
Leider hast du noch immer Nix erzählt was du da genau sammeln und anzeigen willst.
Irgendwo hab ich was mit Windrichtung und grad gesehen? Ist es das? -
@DGR sagte in Datenbank mit mehr als einem "_value" - Feld:
eher eine Tabelle oder Logs
Das ergibt eher Sinn
so in der Art?

Das ist jetzt (formatierter) Text in einem DP mit History historisiert und mit dem Eventlist Widget dargestellt.
ganz ohne (echte) Datenbank und Grafana.
nur mit iob Hausmitteln -
Grafana stellt Diagramme dar, keine Tabellen.
Du kannst dir ja mal auf der produktseite die Beispiele anschauen.
https://grafana.com/grafana/?plcmt=products-navTabellen kannst du direkt mit Daten aus der Datenbank im iobroker anzeigen.
Leider hast du noch immer Nix erzählt was du da genau sammeln und anzeigen willst.
Irgendwo hab ich was mit Windrichtung und grad gesehen? Ist es das? -
Oder evtl sowas?
Aber wir müssen hier rumraten
https://grafana.com/grafana/plugins/operato-windrose-panel/Der Link ist für mich auch sehr interessant, aber im Moment ein anderes Thema.
Ich wollte eher sowas (Ausschnitt aus Grafana). Alles ist unter value enthalten (zusammengesetzt aus Text, Zahlenwert und "mV") - hier Visualisierung-Logs

In iobroker hätte ich gerne noch mitgegeben bei bestimmten Werten: "Achtung ! Batteriewechsel notwendig"
Kann man zwar auch mit in value schreiben, aber das ist hier auch nur ein BEISPIEL. Es wäre dann auch wieder günstig die Zeilen zu sortieren (markierte nach oben) - Voraussetzung Zahlenwert im separaten Feld. -
Der Link ist für mich auch sehr interessant, aber im Moment ein anderes Thema.
Ich wollte eher sowas (Ausschnitt aus Grafana). Alles ist unter value enthalten (zusammengesetzt aus Text, Zahlenwert und "mV") - hier Visualisierung-Logs

In iobroker hätte ich gerne noch mitgegeben bei bestimmten Werten: "Achtung ! Batteriewechsel notwendig"
Kann man zwar auch mit in value schreiben, aber das ist hier auch nur ein BEISPIEL. Es wäre dann auch wieder günstig die Zeilen zu sortieren (markierte nach oben) - Voraussetzung Zahlenwert im separaten Feld. -
Das ist aber doch kein Historisieren, sondern eher ein Vis- (Er-)/ Zusatz für aktuelle Daten
-
Ich habe jetzt einen Weg gefunden. Array in iobroker gefüllt und dann in Grafana aufgesplittet und sortiert.

ok, auch wenn das wahrscheinlich etwas kompliziert ist.
der text muss ja auch nicht pro wert zugeordnet werden, sondern nur je datenpunkt aus dem der wert kommt, so das du es schön angezeigt bekommst.dazu könnte man in influx eine mapping tabelle machen in der der datenpunkt bzw dessen id zu einem text gemappt wird.
diese wird dann im rahmen der abfrage von grafana aus aufgelöst, so das in grafana dann sowas ankommtdp_text,wert,zeitstempel
... -
Array in iobroker gefüllt und dann in Grafana aufgesplittet und sortiert.
Der Text ist doch lediglich eine Interpretation des Wertes.
Mal frei Schnauze als SQL:
SELECT NAME, TIMESTAMP, VALUE, CASE WHEN VALUE < 3000 THEN 'Batteriewechsel notwendig' END AS INFO FROM TABELLE ORDER BY TIMESTAMP DESCEdit:
Oder auch mal etwas näher an einer möglichen Realität:
-
Array in iobroker gefüllt und dann in Grafana aufgesplittet und sortiert.
Der Text ist doch lediglich eine Interpretation des Wertes.
Mal frei Schnauze als SQL:
SELECT NAME, TIMESTAMP, VALUE, CASE WHEN VALUE < 3000 THEN 'Batteriewechsel notwendig' END AS INFO FROM TABELLE ORDER BY TIMESTAMP DESCEdit:
Oder auch mal etwas näher an einer möglichen Realität:
Er hat influx
-
Er hat influx
@OliverIO
nochmal abschließend falls Interesse an meiner Lösung besteht. Es gibt bestimmt auch andere Wege, aber dieser war für mich am Einfachsten. Das Blockly-Script lassen ich einmal täglich laufen. Ausgabe in einen Datenpunkt (Array).
In influx sieht es dann so aus:

hier wird es nur weitergereicht an Grafana und dort aufbereitet nach Wunsch:
Ergebnis:

Danke für die Geduld und die Hilfe
-
Oder evtl sowas?
Aber wir müssen hier rumraten
https://grafana.com/grafana/plugins/operato-windrose-panel/

