Update 19.08.2016
Version 2.0 veröffentlicht – Projekt-Homepage: klick

 

Heatmap Temperatur akt. Kalenfderjahr (2016)

Heatmap Temperatur akt. Kalenfderjahr (2016)

In manchen Situationen ist es ganz gut, mal nicht die Mikrometerschraube anzusetzen, sondern vielleicht mal 2-3 Schritte zurück zu treten, um das ‚große Ganze‘ besser erfassen zu können.
So ungefähr verhält es sich auch mit der Datenvisualisierung mit Hilfe von Heatmaps: es geht nicht um Einzelwerte, sondern um das Gesamtbild. In meinem speziellen Anwendungsfall geht es mir darum, diverse met. Messdaten, mit denen ich seit Jahren mein IP-Symcon füttere (die IPS Datenbank ist richtig rund und fett geworden, jetzt will ich endlich mal was sehen!), über lange Zeiträume miteinander zu vergleichen. Zum Beispiel den Temperaturverlaugf der verg. Jahre. Während herkömmliche Charts nur einen ganz kleinen Eindruck der Geschehnisse wiedergeben können (z.B. Temperaturkurve über ein Kalenderjahr), kann man mit einer Heatmap wesentlich mehr Informationen auf kleinstem Raum darstellen. Und ganz wichtig: sie sind für den Betrachter viel leichter in vollem Umfang erfassbar. Nämlich über das optische Muster.

Gegenüberstellung von Luftdruck Heatmaps der letzten Jahre

Gegenüberstellung von Luftdruck Heatmaps der letzten Jahre

Eine solche Heatmap über ein komplettes Kalenderjahr kann schon spannend sein. Noch viel interessanter finde ich den direkten Vergleich von Heatmaps mehrerer Jahre. Zum Beispiel die des Luftdrucks (siehe Bild rechts).

Nachdem ich vor Jahren schon mal via html damit rum experimentiert hatte (das waren eine meiner ersten PHP-Gehversuche) und das Thema bei mir in Vergessenheit geriet, bin ich diese Woche mal voll eingestiegen und hab  ziemlich kurzer zeit ein (zumindest für mich) sehr brauchbares Ergebnis erreicht. Vom Code her wesentlich schlanker als HighCharts – kann aber auch weniger. Reicht aber für mich. Aus der anfänglichen Spielerei ist nun eine (halbwegs) ernsthafte Anwendung geworden. Wobei ich die Heatmaps (mit angepasstem Farbschema) ausschließlich auf meiner Webseite nutze:

RS Heatmaps Luftdruck

RS Heatmaps Temperatur

 

was geht und was nicht geht

RS Heatmaps html-Dokumente Zielordner

RS Heatmaps html-Dokumente Zielordner

Aktuell sind die RS Heatmaps noch nicht so flexibel: ich kann damit aktuell sehr gut Temperaturen, Luftdruck und UV-Strahlung visualisieren (um mal ein paar Beispiele zu nennen), aber Helligkeitswerte oder andere Messgrößen mit hoher Dynamik (z.B. Helligkeit von 0lux bis ca 120klux!) funktionieren derzeit nicht oder nicht optimal. Optimal sind Messgrößen, deren Schwankung zwischen Minimum und Maximum bei ca.50-100 Punkten liegt. Zähler-Variablen gehen aktuell übrigens auch nicht (das überliest sowieso jeder *breitgrins*).

Da mein IPS Projekt-Cheftester aber ziemlich schnell einen hohen ‚habenwill-Faktor‘ angemeldet hat, stelle ich das Script mal hier zum Download ein.

 

Tipp für die Vergangenheit

Codeanpassung für vorhergehende Kalenderjahre

Codeanpassung für vorhergehende Kalenderjahre

Das aktuelle Projekt generiert ’nur‘ eine Heatmap für das aktuelle Kalenderjahr. Will man auch Heatmaps für vorangegangenen Kalenderjahre generieren lassen, kann man den Code im Script ‚RS Heatmap365 Core‘ vorübergehend manuell anpassen: In Zeile 34 wird der Variable $Y das aktuelle Kalenderjahr (via php date()-Funktion) zugewiesen. Wenn man statt dessen temporär das gewünschte Kalenderjahr zuweist und das Script manuell startet, dann wird auch ganz brav das dazugehörige Heatmap-HTML Dokument erzeugt. Siehe Bild rechts. Aber nicht vergessen, hinterher wieder die Zuweisung des Kalenderjahres via date()-Funktion herzustellen! Da man das nur einmal für die vergangenen Kalenderjahre machen muss, halte ich das für zumutbar.

Die Heatmap-Files finden sich dann im Ordner ‚\webfront\user\ips_media\heatmaps\‚ wieder und sind erkennbar am Dateinamen ( Messgröße + Script-ID + Kalenderjahr). Diese können dann (manuell) via iframe und HTML-Box ins WFE eingebunden werden.

 

Zu groß?

Beispiele: unterschiedliche Heatmap-Größen

Beispiele: unterschiedliche Heatmap-Größen

Ich arbeite zur Zeit fast ausschließlich mit 4k-Bildschirmen. Die Heatmap kann daher durchaus auf dem ein oder anderen System zu groß erscheinen – wenn dort mit geringerer Bildschirmauflösung gearbeitet wird. Natürlich kann man das anpassen: in der Config die Parameter für Höhe und Breite ändern ($height und $width). Diese Angaben beziehen sich auf genau einen Stundenwert. Da der Tag aber 24 von diesen Stunden hat und das Kalenderjahr 365 Tage, ergibt sich hieraus eine Größe von 730 x 72 Pixel (+ Tabellenkopf und -Fuß) bei den Default-Werten  height = 3pixel und $width = 2pixel. Man könnte so die Heatmap auf eine Größe von 365×24 Pixel schrumpfen (+ Kopf- und Fußzeile). Wer es gern groß mag: geht natürlich auch!

 

Showcase

Nur Lesen kann langweilig werden – gibts das auch in Farbe?!  ==> Hier geht’s zu einem ganzen Haufen echter Heatmaps (area51.raketenschnecke.net).

 

Installation

Objektbaum RS Heatmap 1.0

Objektbaum RS Heatmap 1.0

Wie üblich: Datei aus dem Download runterladen, das Installer-Script ins IP-Symcon kopieren und ausführen. Das Projekt ist nun installiert, aber noch nicht initialisiert.

Anschließend das Config-Script mit den gewünschten Parametern versorgen und einmalig manuell ausführen. Das Projekt wird initialisiert und läuft ab diesem Zeitpunkt selbständig. Ich hab diesmal auf Objekte für das Webfront verzichtet: für (zunächst) ein Objekt lohnt sich das nicht. Hier muss der Anwender selbst Hand anlegen: am besten die Variable ‚Heatmap HTML Box‘ an die Stelle ins WFE verlinken, wo man es später auch sehen will. Entweder via Link-Objekt direkt im IPS Objektbaum oder Einbindung über den Webfront-Konfigurator.

Wer will, kann das Farbschema der Heatmap an die eigenen Wünsche anpassen. Darüber hinaus hilft es auch, den grünen Text oben im Config Script zu lesen ;-)

 

IPS-Versionen

Das Projekt wurde zwar unter IPS 3.4/Windows entwickelt, aber auch auf IPS 4.0 Windows und Linux (RasPi) erfolgreich getestet und ist dort uneingeschränkt lauffähig.

 

Versions-Hinweise

RS Heatmaps365 1.0: Initial-Version vom 13.08.2016

 

Nutzungsrechte

  • das Script darf für private, nicht kommerzielle Zwecke frei verwendet werden
  • für evtl. entstehende Schäden durch die Verwendung dieses Scripts wird vom Autor keinerlei Haftung übernommen 
  • gewerbliche Nutzung nur in vorheriger Abstimmung mit dem Projektautor (MICH)

 

Download

Unterhalb dieses Beitrags:

 


 

RS Heatmap365 1.x
RS Heatmap365 1.x
RS-Heatmap365-1.x.zip
Version: 1.0
20.8 KB
17 Downloads
Details...
Getagged mit
 

One Response to RS Heatmap365

  1. wupperi sagt:

    Projekt läuft auch auf der IPS 4.1.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

css.php