DB-Log und SVG-plot

Begonnen von pc1246, 28 September 2017, 08:39:16

Vorheriges Thema - Nächstes Thema

DS_Starter

#15
Moin Christoph, moin zusammen,

ZitatEs sind aber auch neu x doppelte Eintraege da, das war ja vorher nicht.
Ich habe dir/euch eine neue DbLog-Version angehängt. In dieser Version werden in der Dropdown-Liste doppelte Einträge vermieden auch wenn sie wegen eines fehlenden Schlüssels in der current-Tabelle enthalten sind. Lade sie runter, benenne sie nach 93_DbLog um, fhem restart und dann sollte es passen. Wenn es bei dir/euch genauso gut klappt wie bei mir checke ich die neue Version ein.

ZitatWenn ich auf der Syno eine DB anlegen will, dann faengt das Problem schon an. Ich denke ich nehme phpadmin, aber allein schon der Typ der DB ist mir nicht klar.
Die Syno bringt alles mit was du zum Betrieb von MySQL brauchst. Zur Administration ist phpMyAdmin sehr gut geeignet und benutze ich auch. Am Anfang ist die Bedienung sicher etwas gewöhnungsbedürftig.
Was den Typ der DB betrifft .... lass dich nicht verwirren. Zunächst ist es wichtig zu wissen dass MySQL und MariaDB zumindest in unserem Kontext gleichgesetzt werden können. Das stimmt zwar nicht wirklich, aber für uns können wir sagen MySQL=MariaDB. Synology liefert MariaDB aus. Im neueren DSM gibt es die MariaDB 5 (altes Release) und MariaDB 10 (neu). Beide Versionen kann man parallel verwenden. Ich plädiere für MariaDB 10. 
Achtung: In diesem Fall ändert sich der Port bei in der db.conf in 3307 (bei Synology-Verwendung) !

ZitatKann man denn in SQLite auch die Schluessel vergeben
Ja, kann man, aber wie schon Deckoffizier schrieb geht es bei SQLite nur während des Anlegens der Datenbank. MySQL ist da pflegeleichter. Einen primary Key (PK) kann man jederzeit hinzufügen/ändern/löschen.

ZitatWie ist nochmal die richtige Einstellung fuer die DB, current, history oder current/history? Ich verstehe, wo die entsprechenden Daten herkommen, und was sie bewirken, aber wozu kann/muss ich das einstellen?
Diese Dropdown-Liste ist eine Hilfestellung. Aber wenn man SVGs ein paar mal über diesen Weg erstellt hat, weiß man wie die Zeile mit der Device:Reading-Kombination editiert werden muss. Manchmal ist es auch notwendig, zum Beispiel falls man dort Regex mit einfließen lassen möchte oder die gewünschte Device:Reading-Kombi in der Dropdown nicht vorhanden ist.  Dann ist es hilfreich die Verwendung der current-Tabelle abzuschalten, denn nur in diesem Fall ist die Zeile "offen". Man wählt somit nur "history" im Attribut DbLogType aus.
Ein Nebeneffekt ist, dass die current dann nicht mehr beschrieben wird was zur Performancesteigerung beitragen kann. Aus diesem Grund ist sie per default auch nicht eingeschaltet.
Die Kombi current/history erklärt sich von selbst ... es wird in beide Tabelle geschrieben.
Nur das Attr DbLogType=current zu setzen ist im Allgemeinen nicht sinnvoll, weil in diesem Fall nichts mehr geloggt wird, d.h. die Tabelle "history" wird nicht mehr beschrieben. Möglicherweise möchte man aber für einen gewissen Zeitraum das Logging mal ausschalten, dann wäre dieses Attribut eine Möglichkeit von weiteren (disable, Regex ändern, etc. )

Wenn du dir den Inhalt der current Tabelle mal anschauen bzw. kommunizieren willst kannst du in deinem DbRep-Device auch eingeben:

set <name>  sqlCmd select Timestamp,Device,Reading from current;

Dann wird dir der gesamte Inhalt der current ausgegeben. Mit dem Attr sqlResultFormat=table wird der Inhalt als gut lesebare Tabelle erstellt.

Wenn du auf MySQL/MariaDB der Synology wechseln möchtest (ich würde es empfehlen), würde ich folgendes Verfahren vorschlagen:

1. Installiere die Pakete MariaB 10 und phpMyadmin auf der Syno. Schau dass du mit phpAdmin dich anmelden kannst und mache dich etwas mit dem Handling vertraut.
2. Erstelle die DB und die Tabellen mit Hilfe der Scripte aus ./contrib/dblog bzw. mit Hilfe v. Wiki:

   Melde dich auf der Syno im Linux an und rufe das Commandline-Tool für MySQL auf:
  mysql -h <Syno-IP> --port=3307 -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 769
Server version: 10.0.30-MariaDB Source distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>


Jetzt kannst du folgende Beispielskripts ausführen und die DB mit Tabellen/Index erstellen:

CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'fhempassword';
CREATE TABLE `fhem`.`history` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(64), UNIT varchar(32));
CREATE TABLE `fhem`.`current` (TIMESTAMP TIMESTAMP, DEVICE varchar(64), TYPE varchar(64), EVENT varchar(512), READING varchar(64), VALUE varchar(64), UNIT varchar(32));
GRANT SELECT, INSERT, DELETE, UPDATE ON `fhem`.* TO 'fhemuser'@'%';
CREATE INDEX Search_Idx ON `history` (DEVICE, READING, TIMESTAMP);


Willst du den Primary Key auf beiden Tabellen noch anlegen führst du aus:

ALTER TABLE  `fhem`.`history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
ALTER TABLE`fhem`. `current` ADD PRIMARY KEY (DEVICE, READING);


Dann hast du eine frische, leere Datanbank.

3. Erstelle dir auf dem FHEM-Rechner eine neue Konfig, z.b. maria10.conf und passe sie an. Installiere dir die benötigten MySQL-Perl-Dateien. In der neuesten 93_DbLog findest du mit "help 93_DbLog" gleich am Anfang die benötigten Angaben dazu.

4. Erstelle die ein weiteres/neues DbLog-Device und logge dir zunächst erstmal nur ein Device über die Angabe im Regex z.B.

   define LogMaria DbLog ./maria10.conf (KS300):.*

5. Versuche damit "warm" zu werden und mit phpAdmin die Tabellen/Daten anzuschauen, SVGs zu erstellen, das Backup mit den Synology-Tools (oder DbRep) einzurichten, etc. Vielleicht auch mal ein Restore zu machen damit man einfach ein Gefühl für die DB und das Handling bekommt.

6. als nächsten Schritt kannst du die Daten nach und nach mit DbRep in die neue DB migrieren und das Logging erweitern, die SVGs umstellen.

Für diesen ganzen Umstellungsprozess auf die Syno würde ich dir aber empfehlen einen neuen Thread im Forum "Automatisierung" aufzumachen weil das nicht mehr zum Thema passt. Und ganz wichtig ... nicht verzagen ! Irgendwann platzt der Knoten und dann wirst du (vermutlich) Freude daran haben dass alles funktioniert  :D

PS: Bitte testet die neue Version und gebt Feedback.

Grüße
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

pc1246

Moin Heiko
Vielen Dank fuer die ausfuehrliche Antwort. Ich hoffe ich habe heute noch Zeit das zu probieren.
Kurz noch zum Anlegen der DB mitphpadmin, wenn man eine neue DB anlegen will, dann soll man eine collation (?) auswaehlen, und da scheitere ich dann, da ich nicht weiss, was ich da von den wenigen Moeglichkeiten auswaehlen soll!

Kurz noch an Hans-Juergen, das mit den doppelten Eintraegen passiert in den dropdowns der SVGs und durch das Eintragen von den eventon... usw. wuerden es hoechstens weniger werden, aber sie wuerden nicht verschwinden.

Ich glaube ich habe beim erstenmal Erstellen irgendein Tutorial verwendet, wo warscheinlich die Keys schon implementiert waren!?

Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

DS_Starter

Hallo Christoph,

Zitat..wenn man eine neue DB anlegen will, dann soll man eine collation (?) auswaehlen...
Nimm "utf8_bin", ist quasi der Standard.
Das ist dann gleichbedeutend mit dem Script:

Zitat
CREATE DATABASE `fhem` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
...

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

pc1246

Hallo Heiko

Danke, ich meinte das auch irgendwo gesehen zu haben, hatte aber gestern dann keine Lust mehr. Jetzt kommen ja ein paar freie Tage. Morgen kurz meinen Sohn nach Ilmenau verfrachten, und dann habe ich Zeit.
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

DS_Starter

ZitatMorgen kurz meinen Sohn nach Ilmenau verfrachten ...

Na dann grüß Ilmenau ... meinem alten Studienort  :)

LG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Deckoffizier

Hallo Heiko,

Prima Erklärung und gut Verständlich Geschrieben ganz Großes DANKE!

Vorweg Deine neue Version macht weiterhin Problemlos.

Warum ich so spät antworte....
Der Wechsel,Kampf mit Maria :-) auf meinem Raspberry3  hat sich bald 10 Stunden hingezogen.
Nix mit einfach nur apt-get install mariadb.

Upgrade auf jessie und und und,es fehlte immer irgendwas und Hauptproblem richtiger Eintrag in apt sources list für mariadb.
Wichtig dran zu denken erst als root die fhem Datenbank,Tabellen in MariaDB anzulegen, hatte erst versucht es Nutzer nun gut meine Dummheit.
PHPAdmin macht sich soweit auch ganz gut.

Jetzt geht es erstmal wieder auf Anfang in Punkto Feintuning Log Reduzierung.
Plots für Heizung etc. liefen ja soweit weiter und mussten nicht neu angelegt werden.

Alles Gute und Grüße

Hans-Jürgen


FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

DS_Starter

ZitatPrima Erklärung und gut Verständlich Geschrieben ganz Großes DANKE!
gerne  :)

ZitatVorweg Deine neue Version macht weiterhin Problemlos.
sehr schön, danke für die Rückmeldung.
Dann checke ich die Version auch mal ein ...

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

pc1246

Hallo Jungs
Die Ilmenau Reise war eigentlich problemlos, aber 3,5Stunden eine Richtung sind ja auch mal kein Pappenstiel.
BTW: Gruesse zurueck an Heiko.
Nun musste ich aber leider erst einmal andere Primaten setzen, da mein Geschirrspueler meinte, er duerfe mal eben nach 17 Jahren den Geist aufgeben.
Morgen geht es dann aber frisch ans Werk, und wenn Deckoffizier das geschafft hat, dann muss ich das auch hinbekommen!
Danke nochmals und schoenen Feiertag
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

DS_Starter

ZitatBTW: Gruesse zurueck an Heiko.
vielen Dank  :D

ZitatMorgen geht es dann aber frisch ans Werk, und wenn Deckoffizier das geschafft hat, dann muss ich das auch hinbekommen!
Klar, kriegst du hin ! Wir lassen doch niemanden hängen  :)

wünschen ebenfalls einen schönen Feiertag,

LG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

pc1246

Moin
Ich antworte jetzt doch mal hier! Also eigentlich war ich ganz zuversichtlich, aber der letzte Schritt schlaegt fehl!
Error on reading ./maria.conf from database!
%dbconfig= (
    connection => "mysql:database=fhem;host=192.168.178.200;port=3306",       
    user => "fhemuser",                                         
    password => "xxx",
    utf8 => 1
);

Und nun stehe ich wieder an!
Gruss Christoph

P.S.: @Deckoffizier: Ich bin weiterhin bei wheezy, ein apt-get update hat die Paketverknuepfungen aktualisiert!
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

DS_Starter

Hallo Christoph,

deine Fehlermeldung deutet darauf hin dass du configDB verwendest, richtig ?

In diesem Fall musst du deine erstellte maria.conf in die configDB laden. Das machst du mit

configdb fileimport ./maria.conf

Lese dir dazu mal die Hilfe durch -> "help configDB".

Doch bevor du das tust prüfe bitte nochmal den angegebenen Post 3306. Auf Synology hat MariaDB 5 den Port 3306 und MariaDB 10 den Port 3307. Ich weiß nun nicht welche Version du benutzt.
Du kannst auch wie ich weiter vorn geschreiben habe zunächst den Connect testen mit:

mysql -h <Syno-IP> --port=3307 -u root -p

Den Befehl kannst du so auch vom FHEM-Rechner aus starten und muss die Verbindung herstellen. Port und User natürlich anpassen, als User kannst du root bzw. deinen neu auf der DB angelegten "fhemuser" verwenden.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

pc1246

Hallo Heiko
Ja ich nutze config.db. Und der Port ist richtig, da meine Syno eine Xpeno ist und ich noch auf DSM5.2 bin!
Da ich zwischenzeitlich schon festgestellt hatte, Du hattest das ja schon geschrieben, dass ich mit
mysql -h <Syno-IP> --port=3307 -u root -p
die connection testen kann, habe ich schon eine exzessive Suche hinter mir. Es geht naemlich nicht. Nicht mal lokal, nur mit
mysql -h localhost --port=3307 -u root -p
Und dann auch nur mit dem user root!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

pc1246

Man bin ich ein Vollpfosten
Wer lesen kann ist glasklar im Vorteil. Eine Connection geht natuerlich auch nur mit dem richtigen Port!
Jetzt geht erstmal alles. Jetzt muss nur noch was von der KS300 kommen!
Danke und Gruss
Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

DS_Starter

Oooch, jetzt hatte ich schon soviel geschrieben ...  ;)

Dann lösche ich es nicht und schreibe dir trotzdem....

Ich habe dir ein Screenshot anghängt. Gehe in phpMyAdmin in die Userverwaltung. Dort siehst du für die einzelnen User unter "Hostname" von welchem Host aus sie sich verbinden können.  Das "%" steht für jeden Host.
Du kannst deinen User bzw. root editieren und bei Hostname "%" eintragen. So kannst du dich von überall her verbinden. Wenn alles klappt und du etwas mehr durchsteigst kannst du es wieder beschränken (Security)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

ZitatJetzt muss nur noch was von der KS300 kommen!
Ja, jetzt kommt deine Regex im DbLog-DEF ins Spiel und dass dein KS300 die Events generiert die du loggen möchtest.

Klappt denn eigentlich meine neueste Version dass die doppelten Einträge im Dropdown bei der SVG-Erstellung auch bei dir ?
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter