Neues Charting Frontend: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
K (Vorlage Link2CmdRef)
 
(38 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Diese Anleitung beschreibt die Installation und Konfiguration des neuen ExtJS-Frontends, dass u.a. eine javascriptbasierte Chartingfunktion bietet.
{{Infobox Modul
|ModPurpose=Chart Frontend
|ModType=x
|ModForumArea=Frontends
|ModTechName=
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=653 Johannes]
}}
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]]
Zeile 5: Zeile 12:
[[File:Frontendtable.jpg|200px|right|thumb]]
[[File:Frontendtable.jpg|200px|right|thumb]]


Im Forum gibt es einen Beitrag, in dem über die Entwicklung diskutiert wird:
== Aktueller Funktionsumfang ==
[http://forum.fhem.de/index.php?t=msg&th=10439&start=0&rid=0 http://forum.fhem.de/index.php?t=msg&th=10439&start=0&rid=0]
Folgende Liste ist nur ein Auszug:
Bei Problemen, Fragen oder Wünschen am besten dort eine Nachricht hinterlassen.
 
'''Aktueller Funktionsumfang:'''Zur Zeit hat das Frontend folgende Funktionen:


* 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
* Als Datenquellen können sowhl FileLogs als auch eine Datenbank (DbLog) verwendet werden
* Charts können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen
* Ein Chart aus verschiedenen Datenquellen ist problemlos möglich
* Charts können mit Statistikfunktionen erstellt werden, z.B. mit Durchsnittswerten für eine gewissen Zeit (Average per Hour, Max per day, ...)
* Charts können dynamisch (z.B. heutiger Tag, letzte Stunde,...) oder über einen festen Zeitraum angezeigt werden
* Charts können Solllinien hinzugefügt werden mit wählbarem Start- und Endwert
* Achsen können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen
* Chartachsen können selektiv ein und ausgeschaltet werden durch Klick auf die Legende
* Achsen können mit Statistikfunktionen versehen werden, z.B. mit Durchschnittswerten für einen gewissen Zeitraum (Average per Hour, Max per day, ...) (Achtung, nur per DbLog!)
* Charts können eingefärbt werden mit Farbe nach wahl, zudem ist eine Füllung möglich
* es können Solllinien hinzugefügt werden mit wählbarem Start- und Endwert
* Charts können gezoomt werden mit Hilfe der Maus durch aufziehen einer Box direkt im Chart
* Chartachsen können selektiv ein- und ausgeschaltet werden durch Klick auf die Legende
* Charts werden bei Bedarf in der Datenbank über DbLog abgespeichert und können im Frontend auch wieder gelöscht werden
* Achsen können individuell und bequem über die Oberfläche gestylt werden (Füllung, Form, Farbe, Strichbreite, Transparenz, etc)
* "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts in einer Tabelle im Browser, egal wie groß diese ist.
* Charts können gezoomt werden mit Hilfe der Maus durch Aufziehen einer Box direkt im Chart
* Charts können im Frontend gespeichert, gelöscht, umbenannt und in Räume verschoben werden
* Der Bereich "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts (wenn DbLog genutzt wird) 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.
* 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.)
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. Sie kann mit Enter-Taste und dem Execute Button bedient werden.
* 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 Button hinzugefügt, über die sich FHEM herunterfahren oder neustarten lässt. Bei einem Restart wird die Seite, sobald FHEM wieder hochgefahren ist, automatisch neugeladen
* 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
 
Das Frontend kann mit dem FileLog oder DbLog Modul (oder beiden) genutzt werden. Meine Empfehlung: Wer die Installation von DbLog nicht scheut, sollte auf jeden Fall in eine Datenbank loggen.
 
Nach derzeitigem Stand ist die Installation von DbLog 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, ..)
Eine Anleitung findet sich hier: [[Cpan auf Fritzbox]]
.... -->
 
== Installation ==
=== Basisinstallation ===
 
1. FHEM auf den neuesten Stand bringen mit dem Befehl "update".<br/>
2. In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:
<pre>update all https://svn.fhem.de/fhem/trunk/fhem/www/frontend/controls_frontend.txt</pre>
Treten bei dem Befehl Fehler auf mit der Meldung "empty answer received", wie auch hier beschrieben http://forum.fhem.de/index.php/topic,10439.msg219066.html#msg219066
dann findet sich die Lösung hier: http://forum.fhem.de/index.php/topic,10439.msg219082.html#msg219082
 
3. Soll das Frontend nur mit FileLog genutzt werden, ist die Installation jetzt schon fertig und das Frontend kann aufgerufen werden über:
<nowiki>http://adressevonfhem:8083/fhem/frontend/index.html</nowiki>
4. Soll DbLog genutzt werden, müssen die folgenden Schritte durchgefürt werden:
 
=== DbLog installieren und konfigurieren ===
{{Link2CmdRef|Lang=de|Anker=DbLog|Label=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.


==== MySQL-Datenbank ====
'''Hinweis''': nicht für Einplatinencomputer (wie z.B. Raspberry Pi, ODROID, Beagle etc.) empfohlen.


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.
Installation der notwendigen Perl-Datenbank-Module:
Daher ist eine Installation nur auf Systemen möglich, die die entsprechenden PerlModule mitbringen, bzw. nachinstallieren lassen.


Nach derzeitigem Stand ist die Installation inzwischen sogar neben PCs, Synologys und Raspberrys auch auf Fritzboxen möglich.
apt-get install libdbi-perl libdbd-sqlite3-perl


'''Update'''
Alternativ auch direkt über Perl möglich mit cpan ({{Link2CmdRef|Lang=de|Anker=DbLog}}). Auf einer Synology kann der folgende Beitrag helfen: {{Link2Forum|Topic=11071|LinkText=DBLog auf Synology}}
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]


Die Datenbank benötigt die notwendigen Tabellen und Indices. Im fhem-Tarball (siehe Download-Möglichkeiten) sind im Verzeichnis


'''Installationsvorbereitung:'''
<Pfad/zu/>fhem/contrib/dblog
Tipp: Ein Backup vor der Installation schadet nie!
Es muss unterschieden werden, ob das Frontend bereits nach dem alten Verfahren installiert wurde, oder dies zum ersten Mal erfolgt.
Bei bereits vorhandener, alter Installation (sprich, vor dem 22.2.2013 installiert):
Sollte bereits ein Stand des Frontends installiert sein, so sollte dieser zunächst entfernt werden.
Alle neuen Funktionen sind nur noch durch ein fhem update zu bekommen.
Bei dem alten Verfahren wurden einige Ordner und Dateien angelegt, die nun gelöscht werden sollten.
Dazu gehören


* der Ordner app unter www/pgm2/
sind entsprechende Scripte zu finden. Diese können auf der Kommandozeile direkt an die Datenbank übergeben werden. Dieses Beispiel führt dies für MySQL aus
* der Ordner lib unter www/pgm2/
* der Ordner gray unter www/images/default/
* der Ordner frontend unter docs/
* die Datei 99_DbUtils.pm im Ordner FHEM/


Danach kann mit dem nächsten Schritt weitergemacht werden:
root@fhem:/opt/fhem/contrib/dblog# mysql -u root -p < db_create_mysql.sql
Enter password:
root@fhem:/opt/fhem/contrib/dblog#


'''Installation:'''
Möchte man den Datenbank-Nutzer und das Datenbank-Nutzerpaßwort anpassen, ist die db_create_-Datei vorher mit einem Editor anzupassen.  
0.) FHEM auf den neuesten Stand bringen mit dem Befehl "update".


1.) In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:
Nach Eingabe kann die erfolgreiche Rückgabe geprüft werden:


  <nowiki>update thirdparty [http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend] frontend</nowiki>
  root@fhem:/opt/fhem/contrib/dblog# mysql -u root -p
2.) DbLog ([http://fhem.de/commandref_DE.html#DbLog http://fhem.de/commandref_DE.html#DbLog]) muss, falls noch nicht geschehen, konfiguriert werden. Dazu wie folgt vorgehen:
Enter password:  
mysql> show databases;
+--------------------+
| Database          |
+--------------------+
| information_schema |
| fhem               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
mysql> use fhem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_fhem |
+----------------+
| current        |
| history        |
+----------------+
2 rows in set (0.00 sec)  
mysql>


* Eine Datenbank sollte installiert sein. MySQL, Postgres, SQLite oder Oracle.
Dabei wird eine Tabelle '''history''' und eine Tabelle '''current''' erstellt werden, wie in den Beispiel SQLs zu sehen ist.
* Unter Umständen müssen fehlende Perl Module nachinstalliert werden.
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, bei
SQLite bleiben entsprechende Einträge entsprechend leer:
 
## for MySQL
################################################################
%dbconfig= (
        connection => "mysql:database=fhem;host=127.0.0.1;port=3306",
        user => "fhemuser",
        password => "fhempassword"
);
################################################################
 
Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden. Bei MySQL erfolgt dies durch
 
root@fhem:/opt/fhem# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.35-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use fhem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT);
 
==== PostgreSQL-Datenbank ====
To be added
 
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);
 
==== SQLite-Datenbank ====
Installation der notwendigen Perl-Datenbank-Module:


Ob dies nötig ist fällt spätestens auf, wenn im übernächsten Schritt die fhem.cfg angepasst und fhem neu gestartet wurde.
apt-get install libdbi-perl libdbd-sqlite3-perl
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 ([http://fhem.de/commandref_DE.html#DbLog http://fhem.de/commandref_DE.html#DbLog]).
Auf einer Synology kann der folgende Beitrag helfen: [http://forum.fhem.de/index.php?t=msg&amp;th=11071&amp;start=0&amp;rid=0 http://forum.fhem.de/index.php?t=msg&amp;th=11071&amp;start=0&amp;rid=0]


* Die Datenbank muss nun vorbereitet werden, sprich es müssen zumindest 2 Tables erstellt werden.
Alternativ auch direkt über Perl möglich mit cpan ({{Link2CmdRef|Lang=de|Anker=DbLog}}). Auf einer Synology kann der folgende Beitrag helfen: {{Link2Forum|Topic=11071|LinkText=DBLog auf Synology}}


Beispielscripte findet man z.B. dort: [http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/contrib/dblog/ http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/contrib/dblog/].
Die Datenbank benötigt die notwendigen Tabellen und Indices. Im fhem-Tarball (siehe Download-Möglichkeiten) sind im Verzeichnis
Es muss also ein Table history und ein Table current erstellt werden, wie in den Beispiel SQLs zu sehen ist.
Anschließend muss die Datei db.conf angepasst werden.
Dort muss 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.
<Pfad/zu/>fhem/contrib/dblog


Diese Zeile kann z.B. so aussehen (loggt alles in die Datenbank):
sind entsprechende Scripte zu finden. Diese können auf der Kommandozeile direkt an die Datenbank übergeben werden. Dieses Beispiel führt dies für SQLite aus:


  <nowiki>define myDbLog DbLog /etc/fhem/db.conf .*:.*</nowiki>
  root@fhem:/opt/fhem# sqlite3 fhem.db < contrib/dblog/db_create_sqlite.sql
oder für ein konkretes Gerät (Groß/Kleinschreibung beachten!):


<nowiki>define logdb DbLog db.conf ESA2000_LED_011e</nowiki>
Dabei wird eine Tabelle '''history''' und eine Tabelle '''current''' erstellt werden, wie in den Beispiel SQLs zu sehen ist.
* FHEM neustarten und ins FHEM-Log schauen. FHEM sollte hoch fahren und auch loggen, dass es zur Datenbank verbunden 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, bei
SQLite bleiben entsprechende Einträge entsprechend leer:


Tut es das nicht oder FHEM startet garnicht, liegt eine Fehlkonfiguration vor.
## for SQLite (username and password stay empty for SQLite)
Dann nochmals die vorherigen Schritte prüfen und das Logfile nach dem Problem befragen.
################################################################
%dbconfig= (
        connection => "SQLite:dbname=/opt/fhem/fhem.db",
        user => "",
        password => ""
);
################################################################


3.) Einen Datenbank Table für das Frontend erstellen:
Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden. Für SQLite erfolgt dies durch:
Zuletzt muss auf der Datenbank ein Table für das Frontend erstellt werden.  


  <nowiki>Für MySQL kann folgendes SQL in der Datenbank abgesetzt werden:  
  root@fhem:/opt/fhem# sqlite3 fhem.db
    CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT)
SQLite version 3.8.2 2013-12-06 14:53:30
  Für SQLite3 kann folgendes SQL in der Datenbank abgesetzt werden:
Enter ".help" for instructions
    CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);
Enter SQL statements terminated with a ";"
  Für Postgres kann folgendes SQL in der Datenbank abgesetzt werden:
sqlite> CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);
    CREATE TABLE frontend (ID SERIAL, TIMESTAMP TIMESTAMP (0) DEFAULT LOCALTIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</nowiki>
4.) Sollte DbLog nun laufen kann das Frontend über Adresse des Servers:8083/fhem/frontend/index.html aufgerufen werden, z.B.


<nowiki>[http://192.168.0.100:8083/fhem/frontend/index.html http://192.168.0.100:8083/fhem/frontend/index.html]</nowiki>
==== fhem.cfg Einträge ====
* 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".
In die fhem.cfg muss eine Zeile eingefügt werden, die definiert, was alles über DbLog gespeichert werden soll.


'''Das Frontend Updaten:'''
Diese Zeile kann z.B. so aussehen (loggt alles in die Datenbank):
Bitte wie in Schritt 1.) aus der Installation vorgehen:


  <nowiki>update thirdparty [http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend] frontend</nowiki>
  define myDbLog DbLog /etc/fhem/db.conf .*:.*


'''Bedienung:'''
oder, für ein konkretes Gerät (Groß/Kleinschreibung beachten!):
Ziel des Frontends ist eine möglichst selbsterklärende Bedienung. Fragen und Probleme können jederzeit im Forum, am besten im Beitrag


  <nowiki>[http://forum.fhem.de/index.php?t=msg&amp;th=10439&amp;start=0&amp;rid=0 http://forum.fhem.de/index.php?t=msg&amp;th=10439&amp;start=0&amp;rid=0]</nowiki>
  define logdb DbLog db.conf ESA2000_LED_011e
gestellt werden.
Eine Anleitung folgt, sobald ich mehr Zeit dazu finde...


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.


== Das Frontend Updaten ==
In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:


== Installationsanleitung von Puschel ==
  <pre>update all https://svn.fhem.de/fhem/trunk/fhem/www/frontend/controls_frontend.txt</pre>
'''Hardwarevoraussetzungen bei Installation auf einem RasPi'''
  <nowiki>RasPi Model B
Funktionierende Internetanbindung</nowiki>
'''Softwarevoraussetzungen:'''
<nowiki>Deutsches Tastaturlayout (j für Ja)
Funktionsfähige FHEM-Installation auf RPi Wheezy welche mittels update auf den letzten Stand
gebracht wurde ([http://www.fhemwiki.de/wiki/Kategorie:Raspberry_Pi http://www.fhemwiki.de/wiki/Kategorie:Raspberry_Pi]).</nowiki>
Das Frontend wurde mittels


<nowiki>update thirdparty [http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend http://fhem.svn.sourceforge.net/viewvc/fhem/trunk/fhem/www/frontend] frontend</nowiki>
== Bedienung ==
installiert.
Ziel des Frontends ist eine möglichst selbsterklärende Bedienung. Fragen und Probleme können jederzeit im Forum, am besten in {{Link2Forum|Topic=10439|LinkText=diesem Beitrag}} gestellt werden. Eine Anleitung folgt, sobald ich mehr Zeit dazu finde...
Zugriff auf den RPi mittels Putty ist gegeben.


Zugriffsberechtigungen der Ordner sind auch gegeben (Schreiben in /opt/fhem)
== Installation auf einem Raspberry Pi (Anleitung von "Puschel") ==
Diese Anleitung funktioniert auch auf einem BeagleBone Black mit Debian.


&lt;Befehl&gt; = diese Zeile wird am Putty-Prompt eingegeben (ohne &lt;&gt;)
===Hardwarevoraussetzungen===
* RasPi Model B
* Funktionierende Internetanbindung
===Softwarevoraussetzungen===
* Deutsches Tastaturlayout (j für Ja)
* Funktionsfähige FHEM-Installation auf RPi Wheezy, die mittels update auf den letzten Stand gebracht wurde (siehe auch: [[:Kategorie:Raspberry_Pi|Raspberry Pi]])
* Das Frontend wurde installiert mittels
:<code><nowiki>update all http://svn.code.sf.net/p/fhem/code/trunk/fhem/www/frontend/controls_frontend.txt</nowiki></code>
* Zugriff auf den RPi mittels Putty ist gegeben.
* Zugriffsberechtigungen der Ordner sind auch gegeben (Schreiben in /opt/fhem)


&lt;IP_des_RPi&gt; = IP-Adresse über der der RPi erreichbar ist
:<code>&lt;Befehl&gt;</code> = diese Zeile wird am Putty-Prompt eingegeben (ohne &lt;&gt;)
:<code>&lt;IP_des_RPi&gt;</code> = IP-Adresse über der der RPi erreichbar ist


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.
# Wir verbinden uns per Putty mit unserem RPi und loggen uns ein.
# Um uns das ständige sudo zu ersparen geben wir als erstes ein &lt;sudo bash&gt; ein.
# &lt;apt-get update&gt;
# &lt;apt-get upgrade&gt; und die Nachfrage mit „j“ beantworten
# &lt;apt-get install sqlite3&gt;
# &lt;apt-get install libdbi-perl libdbd-sqlite3-perl&gt;
# &lt;apt-get install –f&gt; (das "-" hier ggf. in der Putty-Sitzung überschreiben; unter Umständen stimmt der Hex-Code des Zeichens nach Copy/Paste nicht)


<nowiki>1. Wir verbinden uns per Putty mit unserem RPi und loggen uns ein.
Was haben wir bis hierher gemacht?
2. Um uns das ständige sudo zu ersparen geben wir als erstes ein &lt;sudo bash&gt; ein.</nowiki>
Und nun geht es los.


<nowiki>3. &lt;apt-get update&gt;
* Wir haben die Pakete für unser RPi neu eingelesen.
4. &lt;apt-get upgrade&gt; und die Nachfrage mit „j“ beantworten
* Wir haben unsere RPi-Paketinstallation auf den neuesten Stand gebracht.
5. &lt;apt-get install sqlite3&gt;
* Wir haben sqlite3 installiert.
6. &lt;apt-get install libdbi-perl libdbd-sqlite3-perl&gt;
* Wir haben die benötigten Bibliotheken installiert.
7. &lt;apt-get install –f&gt;</nowiki>
* Wir haben alle Abhängigkeiten aufgelöst und fehlende Pakete nachinstallieren lassen.
Was haben wir bis hierher gemacht?


<nowiki>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.</nowiki>
Nun bereiten wir unsere Datenbank vor.
Nun bereiten wir unsere Datenbank vor.


Zeile 176: Zeile 264:
Anschliessend geben wir am Putty-Promt &lt;sqlite3 fhem.db&gt; ein.
Anschliessend geben wir am Putty-Promt &lt;sqlite3 fhem.db&gt; ein.


Damit haben wir unsere Datenbank angelegt und diese fhem.db genannt. Nun zeigt unsere Prompt in Putty sqlite3&gt; an. Wir befinden uns also in unserer Datenbank.
Damit haben wir unsere Datenbank angelegt und diese fhem.db genannt. Nun zeigt unser Prompt in Putty sqlite3&gt; 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&amp;paste übernehmen.
In dieser Datenbank werden wir noch 2 TABLES anlegen – einmal current und einmal history. Dies könnt ihr einfach per copy&amp;paste übernehmen.


<nowiki>CREATE TABLE `history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
:<code>CREATE TABLE `history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));</code>
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>CREATE TABLE `current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));</code>
 
Und noch eine für das Frontend:
Und noch eine für das Frontend:
:<code>CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</code>


<nowiki>CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);</nowiki>
Nun können wir
Nun können wir
* mit <code>&lt;.tables&gt;</code> schauen, ob 3 Einträge auftauchen (current, history, frontend)
* mit <code>&lt;.exit&gt;</code> verlassen wir SQLite3 und kehren wieder auf unseren Putty-Prompt zurück.


<nowiki>a) mit &lt;.tables&gt; schauen ob 3 Einträge auftauchen (current, history, frontend)
Bevor wir nun in fhem DBLog definieren, müssen wir erst unsere db.conf anlegen. Dies geschieht mittels <code>&lt;nano db.conf&gt;</code>.
b) mit &lt;.exit&gt; verlassen wir SQLite3 wieder und kehren wieder auf unseren Putty-Prompt zurück.</nowiki>
Bevor wir nun in fhem DBLog definieren, müssen wir erstmal unsere db.conf anlegen.


Dies geschieht mittels &lt;nano db.conf&gt;.
Gefüllt wird diese Konfigurationsdatei mit
 
Gefüllt wird dieses Konfigfile mit


  <nowiki>&#160;%dbconfig= (
  <nowiki>&#160;%dbconfig= (
Zeile 204: Zeile 292:
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>&lt;chmod –R g+w fhem.db&gt;
  &lt;chmod -R g+w fhem.db&gt;
  &lt;chmod –R o+w fhem.db&gt;</nowiki>
  &lt;chmod -R o+w fhem.db&gt;
in der Putty-Eingabe da fhem gemeckert hat es kann nicht in die Datei schreiben.
in der Putty-Eingabe, da fhem gemeckert hat, dass es nicht in die Datei schreiben kann ("-" ggf wieder überschreiben nach Copy/Paste).


Nun also noch unser
Nun also noch unser


<nowiki>define myDbLog DbLog /opt/fhem/db.conf .*:.*</nowiki>
:<code>define myDbLog DbLog /opt/fhem/db.conf .*:.*</code>
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 FF 19.0.2) auf unser Frontend zugreifen:
Nun können wir in unserem Browser (getestet mit Firefox 19.0.2) auf unser Frontend zugreifen:


  <nowiki>[http:// http://]&lt;IP-des_RPi&gt;:8083/fhem/frontend/index.html</nowiki>
  <nowiki>http://&lt;IP-des_RPi&gt;: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==
* {{Link2Forum|Topic=10439|LinkText=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]]

Aktuelle Version vom 31. Januar 2018, 11:51 Uhr

Neues Charting Frontend
Zweck / Funktion
Chart Frontend
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Frontends
Modulname
Ersteller Johannes
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Diese Anleitung beschreibt die Installation und Konfiguration des neuen ExtJS-Frontends, das u.a. eine auf Javascript basierende Chartingfunktion bietet.

Frontend1.png
Frontend current.jpg
Frontendtable.jpg

Aktueller Funktionsumfang

Folgende Liste ist nur ein Auszug:

  • Anzeige von Charts mit mehreren, frei wählbaren Y-Achsen (FHEM Geräte und Readings wählbar)
  • Als Datenquellen können sowhl FileLogs als auch eine Datenbank (DbLog) verwendet werden
  • Ein Chart aus verschiedenen Datenquellen ist problemlos möglich
  • Charts können dynamisch (z.B. heutiger Tag, letzte Stunde,...) oder über einen festen Zeitraum angezeigt werden
  • Achsen können generalisiert werden, um auch größere Datenmengen im Browser mit akzeptabler Geschwindigkeit darzustellen
  • Achsen können mit Statistikfunktionen versehen werden, z.B. mit Durchschnittswerten für einen gewissen Zeitraum (Average per Hour, Max per day, ...) (Achtung, nur per DbLog!)
  • es 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
  • Achsen können individuell und bequem über die Oberfläche gestylt werden (Füllung, Form, Farbe, Strichbreite, Transparenz, etc)
  • Charts können gezoomt werden mit Hilfe der Maus durch Aufziehen einer Box direkt im Chart
  • Charts können im Frontend gespeichert, gelöscht, umbenannt und in Räume verschoben werden
  • Der Bereich "Database Tables" ermöglicht die Anzeige des gesamten Datenbankinhalts (wenn DbLog genutzt wird) 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

Das Frontend kann mit dem FileLog oder DbLog Modul (oder beiden) genutzt werden. Meine Empfehlung: Wer die Installation von DbLog nicht scheut, sollte auf jeden Fall in eine Datenbank loggen.

Nach derzeitigem Stand ist die Installation von DbLog inzwischen sogar neben PCs, Synologys und Raspberrys auch auf Fritzboxen möglich. Dazu bitte auch die Anleitung Cpan auf Fritzbox beachten.

Installation

Basisinstallation

1. FHEM auf den neuesten Stand bringen mit dem Befehl "update".
2. In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:

update all https://svn.fhem.de/fhem/trunk/fhem/www/frontend/controls_frontend.txt

Treten bei dem Befehl Fehler auf mit der Meldung "empty answer received", wie auch hier beschrieben http://forum.fhem.de/index.php/topic,10439.msg219066.html#msg219066 dann findet sich die Lösung hier: http://forum.fhem.de/index.php/topic,10439.msg219082.html#msg219082

3. Soll das Frontend nur mit FileLog genutzt werden, ist die Installation jetzt schon fertig und das Frontend kann aufgerufen werden über:

http://adressevonfhem:8083/fhem/frontend/index.html

4. Soll DbLog genutzt werden, müssen die folgenden Schritte durchgefürt werden:

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.

MySQL-Datenbank

Hinweis: nicht für Einplatinencomputer (wie z.B. Raspberry Pi, ODROID, Beagle etc.) empfohlen.

Installation der notwendigen Perl-Datenbank-Module:

apt-get install libdbi-perl libdbd-sqlite3-perl

Alternativ auch direkt über Perl möglich mit cpan (commandref/DbLog). Auf einer Synology kann der folgende Beitrag helfen: DBLog auf Synology

Die Datenbank benötigt die notwendigen Tabellen und Indices. Im fhem-Tarball (siehe Download-Möglichkeiten) sind im Verzeichnis

<Pfad/zu/>fhem/contrib/dblog

sind entsprechende Scripte zu finden. Diese können auf der Kommandozeile direkt an die Datenbank übergeben werden. Dieses Beispiel führt dies für MySQL aus

root@fhem:/opt/fhem/contrib/dblog# mysql -u root -p < db_create_mysql.sql 
Enter password: 
root@fhem:/opt/fhem/contrib/dblog#

Möchte man den Datenbank-Nutzer und das Datenbank-Nutzerpaßwort anpassen, ist die db_create_-Datei vorher mit einem Editor anzupassen.

Nach Eingabe kann die erfolgreiche Rückgabe geprüft werden:

root@fhem:/opt/fhem/contrib/dblog# mysql -u root -p
Enter password: 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| fhem               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql> use fhem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;
+----------------+
| Tables_in_fhem |
+----------------+
| current        |
| history        |
+----------------+
2 rows in set (0.00 sec) 

mysql>

Dabei wird 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, bei SQLite bleiben entsprechende Einträge entsprechend leer:

## for MySQL
################################################################
%dbconfig= (
        connection => "mysql:database=fhem;host=127.0.0.1;port=3306",
        user => "fhemuser",
        password => "fhempassword"
);
################################################################

Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden. Bei MySQL erfolgt dies durch

root@fhem:/opt/fhem# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.35-1ubuntu1 (Ubuntu) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> use fhem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT);

PostgreSQL-Datenbank

To be added

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);

SQLite-Datenbank

Installation der notwendigen Perl-Datenbank-Module:

apt-get install libdbi-perl libdbd-sqlite3-perl

Alternativ auch direkt über Perl möglich mit cpan (commandref/DbLog). Auf einer Synology kann der folgende Beitrag helfen: DBLog auf Synology

Die Datenbank benötigt die notwendigen Tabellen und Indices. Im fhem-Tarball (siehe Download-Möglichkeiten) sind im Verzeichnis

<Pfad/zu/>fhem/contrib/dblog

sind entsprechende Scripte zu finden. Diese können auf der Kommandozeile direkt an die Datenbank übergeben werden. Dieses Beispiel führt dies für SQLite aus:

root@fhem:/opt/fhem# sqlite3 fhem.db < contrib/dblog/db_create_sqlite.sql

Dabei wird 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, bei SQLite bleiben entsprechende Einträge entsprechend leer:

## for SQLite (username and password stay empty for SQLite)
################################################################
%dbconfig= (
        connection => "SQLite:dbname=/opt/fhem/fhem.db",
        user => "",
        password => ""
);
################################################################

Zuletzt muss in der Datenbank eine Tabelle für das Frontend erstellt werden. Für SQLite erfolgt dies durch:

root@fhem:/opt/fhem# sqlite3 fhem.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);

fhem.cfg Einträge

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.

Das Frontend Updaten

In FHEM oder über telnet den folgenden Befehl aufrufen und ein paar Minuten warten:

update all https://svn.fhem.de/fhem/trunk/fhem/www/frontend/controls_frontend.txt

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")

Diese Anleitung funktioniert auch auf einem BeagleBone Black mit Debian.

Hardwarevoraussetzungen

  • RasPi Model B
  • Funktionierende Internetanbindung

Softwarevoraussetzungen

  • Deutsches Tastaturlayout (j für Ja)
  • Funktionsfähige FHEM-Installation auf RPi Wheezy, die mittels update auf den letzten Stand gebracht wurde (siehe auch: Raspberry Pi)
  • Das Frontend wurde installiert mittels
update all http://svn.code.sf.net/p/fhem/code/trunk/fhem/www/frontend/controls_frontend.txt
  • 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.

  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.
  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> (das "-" hier ggf. in der Putty-Sitzung überschreiben; unter Umständen stimmt der Hex-Code des Zeichens nach Copy/Paste nicht)

Was haben wir bis hierher gemacht?

  • Wir haben die Pakete für unser 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 unser 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 ("-" ggf wieder überschreiben nach Copy/Paste).

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