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?
Es gibt viele Beiträge und Meinungen dazu. Such einfach im Forum.
zB http://forum.fhem.de/index.php/topic,45296.0/topicseen.html
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.
Ob es ordentlich funktioniert hängt mMn eher von sinnvollen Logeinstellungen als von der Hardware / Logtyp ab.
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.
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.
gibts da ne gescheite anleitung? best practice?
Was fehlt Dir denn an Informationen, die nicht in der command reference zu finden sind?
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
Dazu hilft dir google sehr gut. Gefühlt gibt es 20000 Anleitungen.
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
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.
ok also reicht sudo apt-get install mysql-server mysql-client php5-mysql
Ja.
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 .*:.*
Zitat von: masterpete23 am 09 Dezember 2015, 12:02:03
ok also reicht sudo apt-get install mysql-server mysql-client php5-mysql
ist mehr als ausreichend, eigentlich braucht man nur mysql-server zu installieren
wie connectest du von wo auf deinen mysql server um das abzusetzen?
##### 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);
Lokal auf dem Rechner: mysql -uroot -p
Kann ich da auch copy n Paste via putty ohne Probleme machen?
Ja.
ok
habe etwas geschafft aber manches nicht.
sql installiert und konfiguriert check
conf datei gefüllt - ja (aber evtl falsch)
nachdefine logdb DbLog ./db.conf .*:.*
kam 5 mal
2015.12.10 08:26:21 3: Connecting to database mysql:database=fhem;host=127.0.0.1;port=3306 with user fhem
Danach ist fhem abgestürzt
Dann ist die db.conf nicht korrekt oder die Berechtigungen der DB nicht ok.
Verbinde Dich mal mit dem mysql client mit der DB:
mysql -u<dein-fhem-user> -p
use <deine-db>;
SELECT * FROM histoty;
Geht nicht Ohne - p komm ich rein aber mit Passwort nicht. Werde nochmal die dB droppen heute abend
Gesendet von meinem Huawei Honor 7
Zitat von: masterpete23 am 10 Dezember 2015, 10:03:29
ok
habe etwas geschafft aber manches nicht.
sql installiert und konfiguriert check
conf datei gefüllt - ja (aber evtl falsch)
nachdefine logdb DbLog ./db.conf .*:.*
kam 5 mal
2015.12.10 08:26:21 3: Connecting to database mysql:database=fhem;host=127.0.0.1;port=3306 with user fhem
Danach ist fhem abgestürzt
falls du es wie in der anleitung angelegt hast sollte der user 'fhemuser' heißen, nicht 'fhem'
Zitat von: masterpete23 am 10 Dezember 2015, 14:14:56
Geht nicht Ohne - p komm ich rein aber mit Passwort nicht. Werde nochmal die dB droppen heute abend
Dann hast Du wahrscheinlich beim "CREATE USER" den "IDENTIFIED BY" Parameter nicht (richtig) angegeben. Lies dich noch ein wenig in mqsql ein, dann klappt das schon. Du fährst ja auch kein Auto ohne Führerschein - hoffe ich zumindest ;)
Ja denke ich auch. Nachher wenn Zeit ist.
Logt fhem weiter in files wenn ich nur das dblog define? Oder stellt er dann sofort um?
DBLog ist ein Modul wie FileLog auch, die nichts von einander wissen und unabhängig voneinander funktionieren.
also befehle nun mit fhemuser und password ausgeführt - login nicht möglich
root@raspi3:~# mysql -u fhemuser -p
Enter password:
ERROR 1045 (28000): Access denied for user 'fhemuser'@'localhost' (using password: YES)
mysql> CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on fhem.* to fhemuser@'localhost';
Query OK, 0 rows affected (0.00 sec)
wo ist der fehler?
als passwort für den user 'fhem' wurde 'password' gesetzt (in der anleitung war es 'mypwd'), damit klappt es nicht?
in meiner anleitung war übrigens folgender teil redundant:
# access user
grant all on fhem.* to fhemuser@'localhost';
die rechte wurde aber vorher bereits durch 'GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';' gesetzt, sollte daher nicht geschadet haben.
ich habe die hochkomma immer mitgeschrieben - copy n paste via putty.
weiß nicht wo der Fehler ist?!
so geht es scheinbar mit fhemuser statt root
http://www.debian-administration.org/article/442/Resetting_a_forgotten_MySQL_root_password
hochkomma nur beim anlegen vom user und passwort in mysql, beim login dann ohne
Ja so habe ich das auch gemacht.
Was solls es geht.
nun muss ich nur noch überlegen, was ich alles loggen will / sollte