DbLog auf Raspberry Pi 2: MySql sinnvoll?

Begonnen von EliDu, 08 Dezember 2015, 18:56:49

Vorheriges Thema - Nächstes Thema

EliDu

Hi, ich bin gerade dabei FHEM auf einem Raspberry Pi 2 aufzusetzen und möchte von Anfang an DbLog einsetzen. Ich würde am liebsten MySQL auf dem Raspi2 als Datenbankserver nutzen, da ich ein paar Tools zur Datenauswertung parallel zu FHEM laufen lassen will. Die Frage ist aber, ob MySQL auf einem Raspi 2 nicht zu viele Ressourcen verschligen würde und ich besser Sqlite nehmen sollte. Auf meinem alten Raspi 1 B+ verbraucht FHEM in Ruhe unter 10% CPU, geht dann aber schnell mal auf 100% wenn zB das Webinterface aufgerufen wird. Hat jemand Erfahrungen mit der Kombi Raspi2+FHEM+DbLog+MySQL?

dev0


EliDu

Danke für den Link. Ich hatte schon hier im Forum gesucht bzw gegoogelt, aber es findet sich leider wenig dem speziellen Setup. Daher hoffe ich, dass jemand sowas schon mal aufgesetzt hat und seine Erfahrungen berichtet.

dev0

Ob es ordentlich funktioniert hängt mMn eher von sinnvollen Logeinstellungen als von der Hardware / Logtyp ab.

EliDu

Das stimmt auf jeden Fall, werde das so weit einschränken wie es geht. Habe jetzt MqSQL laufen und eine jungfäuliche FHEM Installation loggt damit. Bisher merkt man keinerlei Unterschied zu Sqlite oder Textdatei-Logs - kommt aber natürlich auch kaum was an Events rein. Das Schöne ist, dass jetzt komfortabel über Netzwerk auf den Datenbankserver zugegriffen werden kann. Die Zugriffe scheinen dem Raspi2 nicht schwer zu fallen. Mal schauen ob das dann immer noch einigermaßen performant ist wenn die Datenmengen größer werden.

dev0

Zitat von: EliDu am 08 Dezember 2015, 22:34:37
werde das so weit einschränken wie es geht.
Man muss sich einfach nur überlegen ob man z.B. Temperaturwerte wirklich im Minutentakt braucht oder ob 15 Minuten nicht auch ausreichend sind. Es mag Situationen geben, in denen man minutengenaue Daten, zumindest von den letzen Tagen, gerne hätte. Dazu könnte man dann eine 2. dblog Instanz aufsetzen, die dann zusätzlich loggt, aber die Daten nach x Tagen verwirft. Es gibt wohl mittlerweile auch die Möglichkeit Daten mit dblog im Nachhinein auszudünnen. Das mag nützlich sein, wenn man z.B. Wetterdaten der letzten 10 Jahre aufheben möchte und doch im Minutentakt aufgezeichnet hat.

masterpete23

gibts da ne gescheite anleitung? best practice?

dev0

Was fehlt Dir denn an Informationen, die nicht in der command reference zu finden sind?

masterpete23

WO müsste ich denn lesen - das hier?
http://fhem.de/commandref_DE.html#DbLog
Das Problem ist eher davor auf die raspi ne saubere sql zu bekommen

marvin78

Dazu hilft dir google sehr gut. Gefühlt gibt es 20000 Anleitungen.

masterpete23

ja dann sind wir wieder hier http://forum.fhem.de/index.php/topic,45369.msg371955.html#msg371955
best practice. Dafür ist das Forum ja da, dass einer sagt so und so wäre es für raspi und fhem am besten

marvin78

Dann bin ich raus. Warum soll ich nochmal aufschreiben, was schon geschrieben steht? ;)

MySQL installieren und konfigurieren geht nach Standardvorgehensweise (im Web tausendfach beschrieben). Zu DBLog gibt es dann im Wiki und hier im Forum sehr viel. Auch die commandref zu DBLog ist sehr gut geschrieben.

masterpete23

ok also reicht sudo apt-get install mysql-server mysql-client php5-mysql

marvin78


EliDu

#14
Da ich mir gerade selber die Vorgehensweise gegoogelt und aufgeschrieben habe ist hier meine kleine Anleitung für Raspbian+DbLog+MySQL:
##### setup mysql:
# install mysql on raspbian
sudo apt-get mysql-server

##### in mysql:
#setup database and tables
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE INDEX Search_Idx ON `fhem`.`history` (DEVICE, READING, TIMESTAMP);
# check
show databases;
use fhem;

# create user and set access rights
CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'mypwd';
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';

exit;

#### back in raspbian:
sudo service mysql restart


##### setup fhem:
# create db_mysql.cnf , adjust chmod if necessary
%dbconfig= (
    connection => "mysql:database=fhem;host=127.0.0.1;port=3306",
    user => "fhemuser",
    password => "mypwd",
);

# in fhem.cfg
define logdb DbLog ./db_mysql.conf .*:.*