Ankündigung

Einklappen
Keine Ankündigung bisher.

Widget zur Darstellung von Plots aus einer Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Widget zur Darstellung von Plots aus einer Datenbank

    Hallo,

    ich habe mich mal daran gemacht ein Widget für die Darstellung von Plots aus einer Datenbank Logtabelle zu programmieren. Eigentlich habe ich das Widget entwickelt um Log Daten aus FHEM grafisch in Smartvisu darzustellen da dies bisher trotz der sehr praktischen Fronthem Erweiterung nicht möglich ist. Das Widget ist aber so entwickelt das man auch eine andere Tabelle die nicht von FHEM kommt auslesen kann. Dafür wird nur eine Tabelle mit Spalten für Zeit, Gerät, Wert und Einheit des Messwerts benötigt. Damit die Plots sich auch live updaten wird ein GAD als Trigger für das Update der Plots genutzt.

    Die Plots können sehr umfangreich angepasst und individualisiert werden, dadurch wird zwar der Aufwand etwas größer einen Plot als Widget einzubinden, allerdings denke ich das man somit auch eine breites Anwendungsspektrum für die Plots abdecken kann welches die normalen SmartVISU Plots übertrifft.

    Das auslesen der Daten erfolgt mittels einer PHP Schnittstelle welche die Daten aus der Datenbank ließt und als JSON an das Widget übergibt. Das ist natürlich keine optimale Lösung da für die Verwendung noch extra das Script konfiguriert werden muss. Vielleicht hat ja jemand eine Idee wie man das noch besser in SmartVISU integrieren könnte.

    Ich würde mich aufjedenfall freuen wenn sich ein paar Leute finden würden die das ganze mal ausprobieren möchten und gegebenenfalls Ideen und Anregungen dazu haben.

    Was aktuell noch auf der ToDo Liste steht ist die Möglichkeit per Selektor den anzuzeigenden Zeitraum zu wählen, aktuell kann nur eine Zeit von Jetzt -> x definiert werden für welche der Plot dargestellt wird.

    Hier der Link zum Widget sowie einer Anleitung zur Installation: https://github.com/ToGe3688/db_plot_widget

    Freundliche Grüße,
    Tobias

    #2
    Hi,

    coole Sache, würde mich schon interessieren. Was ich nicht verstehe: Wie muss genau die DB-Tabelle aussehen (habe noch nicht in Dein Coding geschaut, komme auch erst am WE dazu). Hättest Du evtl. ein create table Beispiel? Ich schaue mich zur Zeit auch nach Alternativen zu den vorhandenen smartvisu-Plots um, da ich aber sh.py als backend verwende, muss ich dann auch mal schauen, wie ich die Werte in die DB rein bekomme.
    Aber verschiedene y-Achsen und freiere Parametrisierung der Plots spricht mich schon mal sehr an...

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hi Waldemar,

      ein Beispiel für ein Create der Tabelle habe ich mal hier eingefügt. Die Tabelle kann natürlich auch anders aufgebaut sein, wichtig ist das Spalten für Zeit (datetime, timestamp oder vergleichbar), Gerät, Wert und die Einheit des Werts (Kann aber auch direkt im Plot definiert werden) vorhanden sind. Die Namen der Spalten und der Tabelle können im Script unter Config definiert werden, mit dem angefügten Beispiel sollte das Script aber sofort laufen.

      Code:
       
       CREATE TABLE 'logTable' (TIMESTAMP TIMESTAMP, DEVICE varchar(32), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
      Ich finde auch das SmartVISU bei den Plots, die ja auf highcharts.js basieren, noch ein bisschen hinter den Möglichkeiten bleibt. Das ist natürlich für die Erstellung der Widgets von Vorteil da man sie sehr einfach definieren kann, aber wenn man mal etwas mehr ins Detail gehen möchte wird es schwierig. Dies war auch der Grund warum ich die Optionen für die Plot definition bei meinem widget offen gelassen habe. Hier fehlt meiner Meinung nach ein plot.custom widget welches sich selbst konfigurieren lässt über die highcharts parameter.

      Kommentar

      Lädt...
      X