Neues Charting Frontend: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(Hauptsächlich Formatierung überarbeitet) |
||
Zeile 1: | Zeile 1: | ||
Diese Anleitung beschreibt die Installation und Konfiguration des neuen ExtJS-Frontends, | __TOC__ | ||
Diese Anleitung beschreibt die Installation und Konfiguration des neuen ExtJS-Frontends, das u.a. eine auf Javascript basierende Chartingfunktion bietet. | |||
[[File:Frontend1.png|200px|right|thumb]] | [[File:Frontend1.png|200px|right|thumb]] | ||
[[File:Frontend_current.jpg|200px|right|thumb]] | [[File:Frontend_current.jpg|200px|right|thumb]] | ||
[[File:Frontendtable.jpg|200px|right|thumb]] | [[File:Frontendtable.jpg|200px|right|thumb]] | ||
'''Aktueller Funktionsumfang:''' | '''Aktueller Funktionsumfang:''' | ||
* Anzeige von Charts mit mehreren, frei wählbaren Y-Achsen (FHEM Geräte und Readings wählbar) | * Anzeige von Charts mit mehreren, frei wählbaren Y-Achsen (FHEM Geräte und Readings wählbar) | ||
* Charts können dynamisch (z.B. heutiger Tag) oder über einen festen Zeitraum angezeigt werden | * Charts können dynamisch (z.B. heutiger Tag) oder über einen festen Zeitraum angezeigt werden | ||
* Charts können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen | * Charts können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen | ||
* Charts können mit Statistikfunktionen erstellt werden, z.B. mit | * Charts können mit Statistikfunktionen erstellt werden, z.B. mit Durchschnittswerten für einen gewissen Zeitraum (Average per Hour, Max per day, ...) | ||
* Charts können Solllinien hinzugefügt werden mit wählbarem Start- und Endwert | * Charts können Solllinien hinzugefügt werden mit wählbarem Start- und Endwert | ||
* Chartachsen können selektiv ein und ausgeschaltet werden durch Klick auf die Legende | * Chartachsen können selektiv ein- und ausgeschaltet werden durch Klick auf die Legende | ||
* Charts können eingefärbt werden mit Farbe nach | * Charts können eingefärbt werden mit Farbe nach Wahl, zudem ist eine Füllung möglich | ||
* Charts können gezoomt werden mit Hilfe der Maus durch | * Charts können gezoomt werden mit Hilfe der Maus durch Aufziehen einer Box direkt im Chart | ||
* Charts werden bei Bedarf in der Datenbank über DbLog abgespeichert und können im Frontend auch wieder gelöscht werden | * Charts werden bei Bedarf in der Datenbank über DbLog abgespeichert und können im Frontend auch wieder gelöscht werden | ||
* "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts in einer Tabelle im Browser, egal wie groß diese ist. | * "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts in einer Tabelle im Browser, egal wie groß diese ist. | ||
Zeile 27: | Zeile 22: | ||
Die Werte in dieser Ansicht werden automatisch alle 5 Sekunden aktualisiert. Zudem ist die Steuerung von "sets" möglich (on / off Button, Dropdown, etc.) | Die Werte in dieser Ansicht werden automatisch alle 5 Sekunden aktualisiert. Zudem ist die Steuerung von "sets" möglich (on / off Button, Dropdown, etc.) | ||
* FHEM Kommandozeile | * FHEM Kommandozeile, die mit Enter-Taste und dem Execute Button bedient werden kann. | ||
* Save Button, der wie bisher bekannt die Änderungen in der fhem.cfg speichert | * Save Button, der wie bisher bekannt die Änderungen in der fhem.cfg speichert. | ||
* Shutdown und Restart | * Shutdown und Restart Buttons, über die sich FHEM herunterfahren oder neustarten lässt. Bei einem Restart wird die Seite, sobald FHEM wieder hochgefahren ist, automatisch neugeladen | ||
Zwingende Voraussetzung für die Nutzung des Frontends ist eine Datenbank und das Einbinden des Moduls 93_DbLog, da u.a. für das Charting auf die geloggten Daten zugegriffen wird. | Zwingende Voraussetzung für die Nutzung des Frontends ist eine Datenbank und das Einbinden des Moduls 93_DbLog, da u.a. für das Charting auf die geloggten Daten zugegriffen wird. | ||
Daher ist eine Installation nur auf Systemen möglich, die die entsprechenden | Daher ist eine Installation nur auf Systemen möglich, die die entsprechenden Perl Module mitbringen, bzw. nachinstallieren lassen. | ||
Nach derzeitigem Stand ist die Installation inzwischen sogar neben PCs, Synologys und Raspberrys auch auf Fritzboxen möglich. Dazu bitte auch die Anleitung [[Cpan auf Fritzbox]] beachten. | |||
Danke der Hilfe von Jurij ist jetzt auch die Installation von DbLog auf einer Fritzbox mit mips-Archtiketur möglich (z.B. 7390, 7330, ..) | <!-- Danke der Hilfe von Jurij ist jetzt auch die Installation von DbLog auf einer Fritzbox mit mips-Archtiketur möglich (z.B. 7390, 7330, ..) | ||
Eine Anleitung findet sich hier: [http://www.fhemwiki.de/wiki/Cpan_auf_Fritzbox http://www.fhemwiki.de/wiki/Cpan_auf_Fritzbox] | Eine Anleitung findet sich hier: [http://www.fhemwiki.de/wiki/Cpan_auf_Fritzbox http://www.fhemwiki.de/wiki/Cpan_auf_Fritzbox] | ||
.... --> | |||
== Installation == | == Installation == | ||
=== | === Basisinstallation === | ||
#FHEM auf den neuesten Stand bringen mit dem Befehl "update". | |||
#In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten: | |||
<nowiki>update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend</nowiki> | <nowiki>update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend</nowiki> | ||
=== DbLog installieren und konfigurieren === | === DbLog installieren und konfigurieren === | ||
[http://fhem.de/commandref_DE.html#DbLog DbLog] muss, falls noch nicht geschehen, konfiguriert werden. Dazu wie folgt vorgehen: | |||
* Eine Datenbank sollte installiert sein. MySQL, Postgres, SQLite oder Oracle. | * Eine Datenbank sollte installiert sein. MySQL, Postgres, SQLite oder Oracle. | ||
Zeile 60: | Zeile 49: | ||
Ob dies nötig ist fällt spätestens auf, wenn im übernächsten Schritt die fhem.cfg angepasst und fhem neu gestartet wurde. | Ob dies nötig ist fällt spätestens auf, wenn im übernächsten Schritt die fhem.cfg angepasst und fhem neu gestartet wurde. | ||
Dann sollten sich bei Problemen im Log von fhem entsprechnde Hinweise finden. | Dann sollten sich bei Problemen im Log von fhem entsprechnde Hinweise finden. | ||
Unter Linux installiert man die Module z.B. für SQLite mit | Unter Linux installiert man die Module z.B. für SQLite mit <code>apt-get install libdbi-perl libdbd-sqlite3-perl</code>. Alternativ auch direkt über Perl möglich mit cpan ([http://fhem.de/commandref_DE.html#DbLog DbLog commandref]). Auf einer Synology kann der folgende Beitrag helfen: [http://forum.fhem.de/index.php?t=msg&th=11071&start=0&rid=0 DBLog auf Synology] | ||
Alternativ auch direkt über Perl möglich mit cpan ([http://fhem.de/commandref_DE.html#DbLog | |||
Auf einer Synology kann der folgende Beitrag helfen: [http://forum.fhem.de/index.php?t=msg&th=11071&start=0&rid=0 | |||
* Die Datenbank muss nun vorbereitet werden, sprich es müssen zumindest 2 | * Die Datenbank muss nun vorbereitet werden, sprich es müssen zumindest 2 Tabellen erstellt werden. | ||
Beispielscripte findet man z.B. | Beispielscripte findet man z.B. bei [http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/contrib/dblog/ sourceforge]. | ||
Es muss also | Es muss also eine Tabelle '''history''' und eine Tabelle '''current''' erstellt werden, wie in den Beispiel SQLs zu sehen ist. | ||
Anschließend muss die Datei db.conf angepasst werden. | Anschließend muss die Datei db.conf angepasst werden. | ||
Dort | Dort müssen der Datenbankname, der Benutzer und das Passwort für die Datenbank eingetragen werden. Beispiele dazu findet man auch in dem vorigen Link. | ||
* In die fhem.cfg muss eine Zeile eingefügt werden die definiert, was alles über DbLog gespeichert werden soll. | * In die fhem.cfg muss eine Zeile eingefügt werden, die definiert, was alles über DbLog gespeichert werden soll. | ||
Diese Zeile kann z.B. so aussehen (loggt alles in die Datenbank): | Diese Zeile kann z.B. so aussehen (loggt alles in die Datenbank): | ||
<nowiki>define myDbLog DbLog /etc/fhem/db.conf .*:.*</nowiki> | <nowiki>define myDbLog DbLog /etc/fhem/db.conf .*:.*</nowiki> | ||
oder für ein konkretes Gerät (Groß/Kleinschreibung beachten!): | oder, für ein konkretes Gerät (Groß/Kleinschreibung beachten!): | ||
<nowiki>define logdb DbLog db.conf ESA2000_LED_011e</nowiki> | <nowiki>define logdb DbLog db.conf ESA2000_LED_011e</nowiki> | ||
* FHEM | * FHEM neu starten und ins FHEM-Log schauen. FHEM sollte hochfahren und auch loggen, dass es zur Datenbank verbunden ist. | ||
Tut es das nicht oder FHEM startet | Tut es das nicht oder FHEM startet gar nicht, liegt eine Fehlkonfiguration vor. Dann nochmals die vorherigen Schritte prüfen und das Logfile nach dem Problem befragen. | ||
Dann nochmals die vorherigen Schritte prüfen und das Logfile nach dem Problem befragen. | |||
=== Datenbank vorbereiten === | === Datenbank vorbereiten === | ||
Zuletzt muss | Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden. | ||
Für MySQL kann folgendes SQL in der Datenbank abgesetzt werden: | |||
:<code>CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT)</code> | |||
Für SQLite3 kann folgendes SQL in der Datenbank abgesetzt werden: | |||
:<code>CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</code> | |||
Für Postgres kann folgendes SQL in der Datenbank abgesetzt werden: | |||
:<code>CREATE TABLE frontend (ID SERIAL, TIMESTAMP TIMESTAMP (0) DEFAULT LOCALTIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</code> | |||
Sollte DbLog nun laufen kann das Frontend über | Sollte DbLog nun laufen, kann das Frontend über <code>Adresse_des_Servers:8083/fhem/frontend/index.html</code> aufgerufen werden, z.B. | ||
<nowiki>http://192.168.0.100:8083/fhem/frontend/index.html</nowiki> | <nowiki>http://192.168.0.100:8083/fhem/frontend/index.html</nowiki> | ||
Sollte DbLog noch nicht entsprechend konfiguriert sein, so bekommt man hier entsprechendes Feedback. | |||
Ansonsten ist das Frontend nun einsatzbereit. Für eine Bedienungsanleitung siehe im unteren Abschnitt "Bedienung". | Ansonsten ist das Frontend nun einsatzbereit. Für eine Bedienungsanleitung siehe im unteren Abschnitt "Bedienung". | ||
Zeile 107: | Zeile 92: | ||
== Bedienung == | == Bedienung == | ||
Ziel des Frontends ist eine möglichst selbsterklärende Bedienung. Fragen und Probleme können jederzeit im Forum, am besten | Ziel des Frontends ist eine möglichst selbsterklärende Bedienung. Fragen und Probleme können jederzeit im Forum, am besten in [http://forum.fhem.de/index.php?t=msg&th=10439&start=0&rid=0 diesem Beitrag] gestellt werden. | ||
gestellt werden. | |||
Eine Anleitung folgt, sobald ich mehr Zeit dazu finde... | Eine Anleitung folgt, sobald ich mehr Zeit dazu finde... | ||
== Installation auf einem Raspberry Pi (Anleitung von "Puschel") == | |||
===Hardwarevoraussetzungen=== | |||
== | *RasPi Model B | ||
*Funktionierende Internetanbindung | |||
===Softwarevoraussetzungen=== | |||
*Deutsches Tastaturlayout (j für Ja) | |||
*Funktionsfähige FHEM-Installation auf RPi Wheezy, welche mittels update auf den letzten Stand gebracht wurde (siehe auch: [[:Kategorie:Raspberry_Pi Raspberry Pi]]) | |||
*Das Frontend wurde installiert mittels | |||
Das Frontend wurde mittels | |||
<nowiki>update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend</nowiki> | <nowiki>update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend</nowiki> | ||
*Zugriff auf den RPi mittels Putty ist gegeben. | |||
Zugriff auf den RPi mittels Putty ist gegeben. | *Zugriffsberechtigungen der Ordner sind auch gegeben (Schreiben in /opt/fhem) | ||
Zugriffsberechtigungen der Ordner sind auch gegeben (Schreiben in /opt/fhem) | |||
<Befehl> = diese Zeile wird am Putty-Prompt eingegeben (ohne <>) | <Befehl> = diese Zeile wird am Putty-Prompt eingegeben (ohne <>) | ||
Zeile 137: | Zeile 113: | ||
Was wird gemacht? | Was wird gemacht? | ||
Wir werden das neue Chart-Frontend mittels SQLite3 und allen benötigten Bibliotheken auf dem | Wir werden das neue Chart-Frontend mittels SQLite3 und allen benötigten Bibliotheken auf dem RPi einrichten. | ||
RPi einrichten. | |||
Dann fangen wir mal an. | Dann fangen wir mal an. | ||
<nowiki>1. Wir verbinden uns per Putty mit unserem RPi und loggen uns ein. | <nowiki> 1. Wir verbinden uns per Putty mit unserem RPi und loggen uns ein. | ||
2. Um uns das ständige sudo zu ersparen geben wir als erstes ein <sudo bash> ein.</nowiki> | 2. Um uns das ständige sudo zu ersparen geben wir als erstes ein <sudo bash> ein.</nowiki> | ||
Und nun geht es los. | Und nun geht es los. | ||
<nowiki>3. <apt-get update> | <nowiki> 3. <apt-get update> | ||
4. <apt-get upgrade> und die Nachfrage mit „j“ beantworten | 4. <apt-get upgrade> und die Nachfrage mit „j“ beantworten | ||
5. <apt-get install sqlite3> | 5. <apt-get install sqlite3> | ||
Zeile 153: | Zeile 128: | ||
Was haben wir bis hierher gemacht? | Was haben wir bis hierher gemacht? | ||
<nowiki>Wir haben die Pakete für unsren RPi neu eingelesen. | <nowiki> Wir haben die Pakete für unsren RPi neu eingelesen. | ||
Wir haben unsere RPi-Paketinstallation auf den neuesten Stand gebracht. | Wir haben unsere RPi-Paketinstallation auf den neuesten Stand gebracht. | ||
Wir haben sqlite3 installiert. | Wir haben sqlite3 installiert. | ||
Zeile 170: | Zeile 145: | ||
In dieser Datenbank werden wir noch 2 TABLES anlegen – einmal current und einmal history. Dies könnt ihr einfach per copy&paste übernehmen. | In dieser Datenbank werden wir noch 2 TABLES anlegen – einmal current und einmal history. Dies könnt ihr einfach per copy&paste übernehmen. | ||
:<code><nowiki>CREATE TABLE `history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));</nowiki></code> | |||
:<code><nowiki>CREATE TABLE `current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));</nowiki></code> | |||
Und noch eine für das Frontend: | Und noch eine für das Frontend: | ||
:<code><nowiki>CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</nowiki></code> | |||
Nun können wir | Nun können wir | ||
* mit <code><.tables></code> schauen, ob 3 Einträge auftauchen (current, history, frontend) | |||
* mit <code><.exit></code> verlassen wir SQLite3 und kehren wieder auf unseren Putty-Prompt zurück. | |||
Bevor wir nun in fhem DBLog definieren, müssen wir erst unsere db.conf anlegen. Dies geschieht mittels <code><nano db.conf></code>. | |||
Bevor wir nun in fhem DBLog definieren, müssen wir | |||
Dies geschieht mittels <nano db.conf>. | |||
Gefüllt wird | Gefüllt wird diese Konfigurationsdatei mit | ||
<nowiki> %dbconfig= ( | <nowiki>  %dbconfig= ( | ||
connection => "SQLite:dbname=/opt/fhem/fhem.db", | connection => "SQLite:dbname=/opt/fhem/fhem.db", | ||
user => "", | user => "", | ||
Zeile 194: | Zeile 168: | ||
Im Ordner /opt/fhem sollten nun also zusätzlich die Dateien db.conf und fhem.db liegen. | Im Ordner /opt/fhem sollten nun also zusätzlich die Dateien db.conf und fhem.db liegen. | ||
Ist das der Fall und die fhem.db hat die benötigten Rechte können wir in fhem unser DBLog | Ist das der Fall und die fhem.db hat die benötigten Rechte, können wir in fhem unser DBLog definieren. Ich habe der Einfachheit halber der Gruppe und jedem Benutzer Schreibzugriff gewährt. | ||
definieren. Ich habe der Einfachheit halber der Gruppe und jedem Schreibzugriff gewährt. | |||
Dies geschieht mittels | Dies geschieht mittels | ||
<nowiki><chmod –R g+w fhem.db> | <nowiki> <chmod –R g+w fhem.db> | ||
<chmod –R o+w fhem.db></nowiki> | <chmod –R o+w fhem.db></nowiki> | ||
in der Putty-Eingabe da fhem gemeckert hat es | in der Putty-Eingabe, da fhem gemeckert hat, dass es nicht in die Datei schreiben kann. | ||
Nun also noch unser | Nun also noch unser | ||
Zeile 208: | Zeile 181: | ||
in fhem eingetragen und ab hier wird nun ALLES in die Datenbank geschrieben. | in fhem eingetragen und ab hier wird nun ALLES in die Datenbank geschrieben. | ||
Nun können wir in unserem Browser (getestet mit | Nun können wir in unserem Browser (getestet mit Firefox 19.0.2) auf unser Frontend zugreifen: | ||
<nowiki>http://<IP-des_RPi>:8083/fhem/frontend/index.html</nowiki> | <nowiki>http://<IP-des_RPi>:8083/fhem/frontend/index.html</nowiki> | ||
Achtung! Nicht erschrecken wenn beim ersten Zugriff nur eine leere Seite erscheint. | Achtung! Nicht erschrecken, wenn beim ersten Zugriff nur eine leere Seite erscheint. Einfach den Browser aktualisieren und am neuen Frontend erfreuen. | ||
Einfach den Browser aktualisieren und am neuen Frontend erfreuen. | |||
Getestet: 26.03.2013 | Getestet: 26.03.2013 | ||
==Links== | |||
*[http://forum.fhem.de/index.php?t=msg&th=10439&start=0&rid=0 Forumsdiskussion über dieses Frontend]; bei Problemen, Fragen oder Wünschen am besten dort eine Frage oder Nachricht hinterlassen. | |||
[[Kategorie:Glossary]] | [[Kategorie:Glossary]] | ||
[[Kategorie:FHEM Frontends]] | [[Kategorie:FHEM Frontends]] |
Version vom 20. Juni 2013, 15:10 Uhr
Diese Anleitung beschreibt die Installation und Konfiguration des neuen ExtJS-Frontends, das u.a. eine auf Javascript basierende Chartingfunktion bietet.
Aktueller Funktionsumfang:
- Anzeige von Charts mit mehreren, frei wählbaren Y-Achsen (FHEM Geräte und Readings wählbar)
- Charts können dynamisch (z.B. heutiger Tag) oder über einen festen Zeitraum angezeigt werden
- Charts können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen
- Charts können mit Statistikfunktionen erstellt werden, z.B. mit Durchschnittswerten für einen gewissen Zeitraum (Average per Hour, Max per day, ...)
- Charts können Solllinien hinzugefügt werden mit wählbarem Start- und Endwert
- Chartachsen können selektiv ein- und ausgeschaltet werden durch Klick auf die Legende
- Charts können eingefärbt werden mit Farbe nach Wahl, zudem ist eine Füllung möglich
- Charts können gezoomt werden mit Hilfe der Maus durch Aufziehen einer Box direkt im Chart
- Charts werden bei Bedarf in der Datenbank über DbLog abgespeichert und können im Frontend auch wieder gelöscht werden
- "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts in einer Tabelle im Browser, egal wie groß diese ist.
- Anzeige der verfügbaren Geräte über den linken Bereich. Nach Auswahl eines Gerätes erhält man die Übersicht zu den aktuellen Readings.
Die Werte in dieser Ansicht werden automatisch alle 5 Sekunden aktualisiert. Zudem ist die Steuerung von "sets" möglich (on / off Button, Dropdown, etc.)
- FHEM Kommandozeile, die mit Enter-Taste und dem Execute Button bedient werden kann.
- Save Button, der wie bisher bekannt die Änderungen in der fhem.cfg speichert.
- Shutdown und Restart Buttons, über die sich FHEM herunterfahren oder neustarten lässt. Bei einem Restart wird die Seite, sobald FHEM wieder hochgefahren ist, automatisch neugeladen
Zwingende Voraussetzung für die Nutzung des Frontends ist eine Datenbank und das Einbinden des Moduls 93_DbLog, da u.a. für das Charting auf die geloggten Daten zugegriffen wird. Daher ist eine Installation nur auf Systemen möglich, die die entsprechenden Perl Module mitbringen, bzw. nachinstallieren lassen.
Nach derzeitigem Stand ist die Installation inzwischen sogar neben PCs, Synologys und Raspberrys auch auf Fritzboxen möglich. Dazu bitte auch die Anleitung Cpan auf Fritzbox beachten.
Installation
Basisinstallation
- FHEM auf den neuesten Stand bringen mit dem Befehl "update".
- In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:
update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend
DbLog installieren und konfigurieren
DbLog muss, falls noch nicht geschehen, konfiguriert werden. Dazu wie folgt vorgehen:
- Eine Datenbank sollte installiert sein. MySQL, Postgres, SQLite oder Oracle.
- Unter Umständen müssen fehlende Perl Module nachinstalliert werden.
Ob dies nötig ist fällt spätestens auf, wenn im übernächsten Schritt die fhem.cfg angepasst und fhem neu gestartet wurde.
Dann sollten sich bei Problemen im Log von fhem entsprechnde Hinweise finden.
Unter Linux installiert man die Module z.B. für SQLite mit apt-get install libdbi-perl libdbd-sqlite3-perl
. Alternativ auch direkt über Perl möglich mit cpan (DbLog commandref). Auf einer Synology kann der folgende Beitrag helfen: DBLog auf Synology
- Die Datenbank muss nun vorbereitet werden, sprich es müssen zumindest 2 Tabellen erstellt werden.
Beispielscripte findet man z.B. bei sourceforge. Es muss also eine Tabelle history und eine Tabelle current erstellt werden, wie in den Beispiel SQLs zu sehen ist. Anschließend muss die Datei db.conf angepasst werden. Dort müssen der Datenbankname, der Benutzer und das Passwort für die Datenbank eingetragen werden. Beispiele dazu findet man auch in dem vorigen Link.
- In die fhem.cfg muss eine Zeile eingefügt werden, die definiert, was alles über DbLog gespeichert werden soll.
Diese Zeile kann z.B. so aussehen (loggt alles in die Datenbank):
define myDbLog DbLog /etc/fhem/db.conf .*:.*
oder, für ein konkretes Gerät (Groß/Kleinschreibung beachten!):
define logdb DbLog db.conf ESA2000_LED_011e
- FHEM neu starten und ins FHEM-Log schauen. FHEM sollte hochfahren und auch loggen, dass es zur Datenbank verbunden ist.
Tut es das nicht oder FHEM startet gar nicht, liegt eine Fehlkonfiguration vor. Dann nochmals die vorherigen Schritte prüfen und das Logfile nach dem Problem befragen.
Datenbank vorbereiten
Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden.
Für MySQL kann folgendes SQL in der Datenbank abgesetzt werden:
CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT)
Für SQLite3 kann folgendes SQL in der Datenbank abgesetzt werden:
CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);
Für Postgres kann folgendes SQL in der Datenbank abgesetzt werden:
CREATE TABLE frontend (ID SERIAL, TIMESTAMP TIMESTAMP (0) DEFAULT LOCALTIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);
Sollte DbLog nun laufen, kann das Frontend über Adresse_des_Servers:8083/fhem/frontend/index.html
aufgerufen werden, z.B.
http://192.168.0.100:8083/fhem/frontend/index.html
Sollte DbLog noch nicht entsprechend konfiguriert sein, so bekommt man hier entsprechendes Feedback. Ansonsten ist das Frontend nun einsatzbereit. Für eine Bedienungsanleitung siehe im unteren Abschnitt "Bedienung".
Das Frontend Updaten
In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:
update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend
Bedienung
Ziel des Frontends ist eine möglichst selbsterklärende Bedienung. Fragen und Probleme können jederzeit im Forum, am besten in diesem Beitrag gestellt werden. Eine Anleitung folgt, sobald ich mehr Zeit dazu finde...
Installation auf einem Raspberry Pi (Anleitung von "Puschel")
Hardwarevoraussetzungen
- RasPi Model B
- Funktionierende Internetanbindung
Softwarevoraussetzungen
- Deutsches Tastaturlayout (j für Ja)
- Funktionsfähige FHEM-Installation auf RPi Wheezy, welche mittels update auf den letzten Stand gebracht wurde (siehe auch: Kategorie:Raspberry_Pi Raspberry Pi)
- Das Frontend wurde installiert mittels
update thirdparty http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend frontend
- Zugriff auf den RPi mittels Putty ist gegeben.
- Zugriffsberechtigungen der Ordner sind auch gegeben (Schreiben in /opt/fhem)
<Befehl> = diese Zeile wird am Putty-Prompt eingegeben (ohne <>)
<IP_des_RPi> = IP-Adresse über der der RPi erreichbar ist
Was wird gemacht?
Wir werden das neue Chart-Frontend mittels SQLite3 und allen benötigten Bibliotheken auf dem RPi einrichten.
Dann fangen wir mal an.
1. Wir verbinden uns per Putty mit unserem RPi und loggen uns ein. 2. Um uns das ständige sudo zu ersparen geben wir als erstes ein <sudo bash> ein.
Und nun geht es los.
3. <apt-get update> 4. <apt-get upgrade> und die Nachfrage mit „j“ beantworten 5. <apt-get install sqlite3> 6. <apt-get install libdbi-perl libdbd-sqlite3-perl> 7. <apt-get install –f>
Was haben wir bis hierher gemacht?
Wir haben die Pakete für unsren RPi neu eingelesen. Wir haben unsere RPi-Paketinstallation auf den neuesten Stand gebracht. Wir haben sqlite3 installiert. Wir haben die benötigten Bibliotheken installiert. Wir haben alle Abhängigkeiten aufgelöst und fehlende Pakete nachinstallieren lassen.
Nun bereiten wir unsere Datenbank vor.
In Putty geben wir als erstes ein <cd /opt/fhem> ein.
Nun werden alle Dateien in diesem Ordner erstellt – wer will kann das natürlich anpassen.
Anschliessend geben wir am Putty-Promt <sqlite3 fhem.db> ein.
Damit haben wir unsere Datenbank angelegt und diese fhem.db genannt. Nun zeigt unsere Prompt in Putty sqlite3> an. Wir befinden uns also in unserer Datenbank.
In dieser Datenbank werden wir noch 2 TABLES anlegen – einmal current und einmal history. Dies könnt ihr einfach per copy&paste übernehmen.
CREATE TABLE `history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE TABLE `current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
Und noch eine für das Frontend:
CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);
Nun können wir
- mit
<.tables>
schauen, ob 3 Einträge auftauchen (current, history, frontend) - mit
<.exit>
verlassen wir SQLite3 und kehren wieder auf unseren Putty-Prompt zurück.
Bevor wir nun in fhem DBLog definieren, müssen wir erst unsere db.conf anlegen. Dies geschieht mittels <nano db.conf>
.
Gefüllt wird diese Konfigurationsdatei mit
%dbconfig= ( connection => "SQLite:dbname=/opt/fhem/fhem.db", user => "", password => "" );
Mit STRG+X und „j“ abspeichern und nano wieder verlassen.
Im Ordner /opt/fhem sollten nun also zusätzlich die Dateien db.conf und fhem.db liegen.
Ist das der Fall und die fhem.db hat die benötigten Rechte, können wir in fhem unser DBLog definieren. Ich habe der Einfachheit halber der Gruppe und jedem Benutzer Schreibzugriff gewährt.
Dies geschieht mittels
<chmod –R g+w fhem.db> <chmod –R o+w fhem.db>
in der Putty-Eingabe, da fhem gemeckert hat, dass es nicht in die Datei schreiben kann.
Nun also noch unser
define myDbLog DbLog /opt/fhem/db.conf .*:.*
in fhem eingetragen und ab hier wird nun ALLES in die Datenbank geschrieben.
Nun können wir in unserem Browser (getestet mit Firefox 19.0.2) auf unser Frontend zugreifen:
http://<IP-des_RPi>:8083/fhem/frontend/index.html
Achtung! Nicht erschrecken, wenn beim ersten Zugriff nur eine leere Seite erscheint. Einfach den Browser aktualisieren und am neuen Frontend erfreuen.
Getestet: 26.03.2013
Links
- Forumsdiskussion über dieses Frontend; bei Problemen, Fragen oder Wünschen am besten dort eine Frage oder Nachricht hinterlassen.