AVR-Werte sammeln per PHP

Um z.B. Temperatur-Werte historisch zu halten und darstellen zu können, habe ich ein PHP-Skript update.php programmiert, welches mir Werte z.B. vom AVR-NET-IO ausliest und mit einem timestamp in eine mySQL Datenbank (mySQL ist auch auf dem NAS DS209) schreibt:

Dieses PHP-Skript wird per cron-Job mit „wget http://localhost/update.php alle 10 Minuten auf dem NAS DS209 aufgerufen.
Somit habe ich eine Historie mit einer Auflösung von 10 Minuten in der mySQL-Datenbank.

Die entsprechende Datenbank kann dann z.B. so aussehen:

Im Prinzip geht das dann genauso bei anderen AVR-Webservern, es muss eben nur eine daten.html Seite vorhanden sein.

Auswerten lässt sich diese Historie z.B. mit Digrammen, wie dies funktioniert, steht hier:
Werte als Diagramm darstellen

Werte als JpGraph Digramm darstellen

Historische Werte lassen sich zum Beispiel mit JpGraph als Diagramm darstellen.

Dazu benötigt man lediglich die JpGraph Lib und eine PHP-Datei, die das Bild generiert.

Hier ein Beispiel eines 48 Stunden Digramms für 2 Werte (Temperatur und Luftfeuchte):

Dieses PHP-Skript wird dann ganz einfach in eine HTML-Seite als IMG-Tag

mit eingebunden.

Das generierte Diagramm sieht dann z.B. so aus:

EIB-Visualisierung mit PHP

Ich habe meine EIB Heizungs Steuerung mit PHP und linKNX visualisiert!

Für die Anzeige verwende ich ein Bild, welches ich selbst erstellt habe und meine Heizungsanlage darstellt:

heizung

Darauf habe ich an den Stellen, wo die Werte erscheinen sollen entsprechende Layer (DIV) deviniert, in denen die Werte dargestellt werden sollen.

In den Layern wird eine get-Funktion mit

aufgerufen und gibt zur Laufzeit dann den Wert aus.

Bei den Ventilen und Pumpen wird der aktuelle Zustand angezeigt und kann durch klicken auf den Wert verändert werden. Dabei wird eine set-Funktion

aufgerufen, die den Wert an den EIB-Bus schickt.

Beschreibung der Funktionen

Neben der Visualisierung der Zustände und Werte lasse ich noch die gesammelten Temperatur-Werte als Diagramm darstellen.

Die Diagramme erstelle ich dynamisch für verschiedene Zeitintervalle (24h, 48h, Woche, Monat und Jahr):

Heizung Graph 24h
24 Stunden
48 Stunden
48 Stunden
1 Woche
1 Woche
1 Monat
1 Monat

Wie dies funktioniert, siehe: Werte als Diagramm darstellen

EIB-Werte sammeln

Um z.B. Temperatur-Werte historisch zu halten und darstellen zu können, habe ich ein PHP-Skript update.php programmiert, welches mir Werte z.B. von linKNX ausliest und mit einem timestamp in eine mySQL Datenbank (mySQL ist auch auf dem NAS DS209) schreibt:

Dieses PHP-Skript wird per cron-Job mit

wget http://localhost/update.php

alle 10 Minuten auf dem NAS DS209 aufgerufen.

Somit habe ich eine Historie mit einer Auflösung von 10 Minuten in der mySQL-Datenbank.

Auswerten lässt sich diese Historie z.B. mit Digrammen, wie dies funktioniert, steht hier:
Werte als Diagramm darstellen

EIB-Werte setzen und abfragen

Über linKNX lässt sich zum Beispiel auch eine Visualisierung realisieren.

Dazu spreche ich linKNX über die XML-Schnittstelle mit PHP an und gebe die Werte dann aus.

Um das ganze zu vereinfachen habe ich eine linknx.php Datei programmiert, welche mir die zentralen Funktionen getEibValue(id) und setEibValue(id, value) zur Verfügung stellt:

Als Parameter übergebe ich den Funktionen immer die Objekt-ID (id), wie sie in der linknx XML-Konfiguration definiert wurden.

Bei der set-Funktion übergebe ich noch den zu setzenden Wert (value).

Diese Funktionen kann man dann z.B. in einer Visualisierungs-Seite nutzen. Hier ein Beispiel für die Visualisierung meiner EIB-Heizungs-Steuerung.