NEWS
Dashboard für Temp/Hum mit Flot im grafana-Stil
-
Hallo,
ich habe mir ein neues Dashboard für meine Temperatur und Feuchtigkeitswerte gebaut.
Da mir der Stil von Grafana sehr gut gefallen hat, aber zum einen Grafana für mein kleines Anzeigetablet zu viel Overhead mitschleift, habe ich das mittels Flot nachgebaut.
Übrigens nutzt grafana unter der Oberfläche ebenfalls flot, allerdings unter mehreren logischen Schichten an modulen verborgen (flot->businesscharts->react ->angular).Mein dashboard sieht wie folgt aus:
Durch touch auf die jeweilige Anzeige kommt die Detailanzeige, die durch einen erneuten Touch auch wieder geschlossen wird. Aktuell hier immer nur die 24h Sicht. Erweitern will ich das noch mit 2 oder 3 anderen durch Knopf umschaltbare Zeiten.
Um felxibel in der Anpassung zu sein hab ich mir hier keine eigenen Widgets gebaut, sondern
die Umsetzung mittels eines Adapters und verschiedenen basic HTML-widgets gelöst, die HTML und javascript-Befehle enthalten.
Im Adapter sind die ganzen Bibliotheken für flot, flot-gauge und meinen ganzen Backendcode mit den Floteinstellungen enthalten.
In den Basic-Html widgets zum einen eines, in dem die ganzen Bibliotheken ins vis geladen werden und dann für jede einzelne Anzeige ein kurzer javascript-Block mit den Parametern, die dort angezeigt werden sollen.Inhalt html widget zum libs-laden
Beispiel html-widget zur Anzeige der Feuchtigkeitsanzeige
Beispiel html-widget zur Anzeige der Temperaturanzeige
Mein Backendjavascript im Adapter sieht so aus:
Für die Historydaten habe ich mir auf Basis der iobroker-Daten noch eine eigene View gebaut, da ich mit den kryptischen Datenpunktbezeichnungen nicht arbeiten wollte, die mit der Xiaomi mihome-Adapter da produziert.
Auch bei der Erstellung des dashboards in vis sind noch ein paar Dinge zu beachten, da die iobroker-App zusätzlich geladene Bibiotheken direkt nicht mag. Daher muss man die erstellte view nochmals über eine weitere view in einem iframe anzeigen. dann klappt es.
Meine Lösung ist etwas frickelig und der Code auch nicht optimal strukturiert. Daher bei Übernahme des Konzeptes sollte man sich etwas besser mit javascript, html, sql und vis auskennen. Es ist keine CopyPaste-Lösung.
Bei Interesse kann ich die anderen Bibliotheken ebenfalls bereitstellen (github).
Bei noch mehr Interesse könnte ich das auch mal per teamviewer vorstellen oder gar per WebEx mehreren gleichzeitig. -
wow, das sieht sehr übersichtlich aus. Respekt! Ich bin mit meiner Vis noch lange nicht soweit aber werde mir das bei Gelegenheit vielleicht mal kopieren
-
Hallo, ich fange gerade mit Vis an. Ich habe in allen Zimmern im Haus von Aqara die Sensoren für die Temperatur und Luftfeuchtigkeit. Das mit der Grafischen Anzeige gefällt mir sehr gut. Wie kann ich das nachbauen? Ich bin irgendwie zu doof dafür
-
@Malz1902 an welcher stelle hängst du?
-
Puh ja, ganz am Anfang Weil irgendwie hab ich absolut Null Plan wie ich vorgehen muss. Also ich hätte gerne einfach nur so 5 Grafen für meine Räume wie auf deinen ersten Bild zu sehen. Ich muss da nicht unbedingt reinklicken können. Ich möchte gerne nur die Luftfeuchtigkeit und Temperatur ablesen können
-
@Malz1902 hm, ja, ich hatte ja geschrieben, dass man sich ein wenig auskennen muss, da man sicherlich Dinge adaptieren muss.
Anfangen kannst du wie folgt, evtl hast du da auch schon Schritte bereits erledigt, evtl kommt man auch anders ins Ziel, aber ich beschreibe den Weg, den ich gegangen bin.
Wie gesagt, da du Sachen adaptieren muss, musst du dich in javascript, sql,html und vis auskennen. Wenn du da noch Schwierigkeiten hast oder den Aufwand scheust dich da einzulesen, dann würde ich dir nicht zu dieser Lösung raten.1.) MySQL/MariaDB auf deinem System installieren. ggfs. auch noch eine adminoberfläche für mysql/mariadb wie bspw phpmyadmin
2) SQL-History Adapter im iobroker installieren und konfigurieren, das er MySQL/MariaDB findet und Zugriff hat
3) gewünschte Datenpunkte auf aufzeichnen stellen
4) je nachdem wie einfach du es später haben möchtest, musst du Mappingtabellen und einen sql-view erstellen, so das deine Selektionskriterien möglichst einfach abfragbar sind. Ich bspw muss in meine sqlabfragen nur den Raum und den Parameter einsetzen um alle Werte zu erhalten. Alternativ musst du die sql-abfragen im skript index.js entsprechend anpassen, dabei hilft dir phpmyadmin
5. Danach musst du dir selbst einen adapter erstellen, in dem du die ganzen backendskripte und notwendigen bibliotheken ablegst, so dass diese in vis dann geladen werden können.
--- bis hier bewegten wir uns rein nur auf der backendebene
6. in vis die schnipsel weiter oben eintragen und ggfs. auf deine persönlichen bedürfnisse anpassen.