DbLog - neue Version mit Support MariaDB Perl Treiber und Netzwerk-Kompression

Begonnen von DS_Starter, 12 März 2024, 18:56:35

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo zusammen,

in meinem contrib (siehe Fußtext) liegt die Version 5.10.0 mit neuen Features zunächst zum Test für interessierte User.
Ihr könnt die Datei in euer ../FHEM Verzeichnis herunterladen und danach FHEM neu starten.

Mit dieser Version kann jetzt der Perl MariaDB Treiber (DBD::MariaDB) verwendet/aktiviert werden.
Außerdem kann die Netzwerkkommunikation zwischen Client und Server (für MySQL/MariaDB) mit Kompression betrieben werden.

Dazu gibt es entsprechende Schlüssel in der .conf Datei (Infos auch in der Modulhilfe):

    ####################################################################################
    #%dbconfig= (
    #    connection => "mysql:database=fhem;host=<database host>;port=3306",
    #    # if want communication over socket-file instead of TCP/IP transport, use:
    #    # connection => "mysql:database=fhem;mysql_socket=</path/socket-file>",
    #    user => "fhemuser",
    #    password => "fhempassword",
    #    # optional enable UTF-8 support
    #    # (full UTF-8 support exists from DBD::mysql version 4.032, but installing version 4.042 is highly suggested)
    #    utf8 => 1,
    #    # optional enable communication compression between client and server
    #    compression => 1   
    #);
    ####################################################################################
    #
    ## for MariaDB
    ####################################################################################
    #%dbconfig= (
    #    connection => "MariaDB:database=fhem;host=<database host>;port=3306",
    #    # if want communication over socket-file instead of TCP/IP transport, use:
    #    # connection => "MariaDB:database=fhem;mariadb_socket=</path/socket-file>",
    #    user => "fhemuser",
    #    password => "fhempassword",
    #    # optional enable communication compression between client and server
    #    compression => 1
    #);
    ####################################################################################

Für die Benutzung des MariaDB Treibers mit Netzwerkkompression wäre bespielhaft zu setzen:

%dbconfig= (
    connection => "MariaDB:database=fhem;host=<database host>;port=3306",
    user => "fhemuser",
    password => "fhempassword",
    compression => 1
);

Ein "set ... rereadcfg" nicht vergessen!

Die aktuell eingecheckte DbRep Version 8.53.5 erkennt die in DbLog gesetzten Parameter und passt die eigene Datenbankverbindung entsprechend an.
Die Netzwerkkompression könnte bei beschränkten Netzwerkverbindungen oder den Betrieb der Datenbank bei einem Online-Provider interessant sein.

Weitere Ergänzungen sind:

- der disable Zustand ist überarbeitet (es läuft kein Timer mehr im Hintergrund)
- gesteigerte Performance der Event-Verarbeitung bei gesetztem Attr excludeDevs
- Fix Label immer vom Vortag bei delta-d (siehe https://forum.fhem.de/index.php?topic=136930.0)
- in der Detailanzeige verfügbar sind Klick-Links
  -> zur Erzeugung eines SVG Devices
  -> zur Anzeige des Configuration File Content
  -> zur Ausführung des Confiuration Check
  -> zum direkten Sprung in das Standardforum DbLog
 
- die Klick-Links sind als Icons oder Text (Attribut headerLinks) umschaltbar. Die Textsprache ist von
  der globalen Einstellung 'language' abhängig gestaltet.


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

DS_Starter

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

RalfRog

Hallo
Ans produktive System will ich nicht ran und habe mal auf dem Testsystem DbLog aktiviert (mit MariaDB). Modul muss ich noch aktualisieren.
Bin jetzt nur nicht so der Datenbanktester ;)

Zitat von: DS_Starter am 12 März 2024, 18:56:35...(Infos auch in der Modulhilfe)...
Dazu muss natürlich das Modul erstmal installiert sein (oder im Sourcetext schauen).
 
MariaDB:   sudo apt-get install [mariadb-server] mariadb-client libdbd-mariadb-perlDie "libdbd-mariadb-perl" musste ich nicht installieren - sie war schon da. Vermutlich bei der Installation der MariaDB? Die hat man ja schon installiert da man sie nutzt.
  • kleiner Vorabhinweis auf die erforderliche "libdbd-mariadb-perl" wäre ggfs. praktisch (ok kann man sich auch denken...).

Beim check der db.conf ist mir aufgefallen, dass die Version der "db.conf" im contrib/dblog recht alt ist und auch nicht dem aktuellen Text/Inhalt in der Hilfe entspricht.
  • Vielleicht magst du mal eine aktualisierte Version hochladen (wenn das Modul fertig ist).

=> Welche Vorteile bringt die Nutzung des DBD::MariaDB Treibers statt mySQL?
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RalfRog

Hi
Hab das Modul aus dem Contrib geladen (Blöderweise hab ich DbRep nicht aktualisiert, macht aber vermutlich für den Fehler nichts).
Wenn ich mySQL in der db.conf wieder aktiviere gehts ("set ... rereadcfg").

im LOG
024.03.15 19:19:05.359 2: DBLogging - ERROR: DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Connection error: port cannot be specified when host is localhost or embedded at ./FHEM/93_DbLog.pm line 2558.
    hier die db.conf zurück geändert
2024.03.15 19:22:32.505 3: DBLogging - Rereadcfg requested.
2024.03.15 19:22:32.515 3: DBLogging - new DB connection parameters are transmitted ...
2024.03.15 19:22:32.721 3: DBLogging - Database disconnected by request. Stored DB params in SubProcess were deleted.
2024.03.15 19:22:32.763 3: DBLogging - DB connection parameters are stored in SubProcess
2024.03.15 19:22:32.768 3: DBLogging - DB connection parameters are initialized in the SubProcess
2024.03.15 19:24:02.156 3: DBLogging - Rereadcfg requested.
2024.03.15 19:24:52.050 3: DBLogging - Rereadcfg requested.
2024.03.15 19:24:52.057 3: DBLogging - new DB connection parameters are transmitted ...
2024.03.15 19:24:52.132 3: DBLogging - Database disconnected by request. Stored DB params in SubProcess were deleted.
2024.03.15 19:24:52.185 3: DBLogging - DB connection parameters are stored in SubProcess
2024.03.15 19:24:52.222 3: DBLogging - DB connection parameters are initialized in the SubProcess

Schau mal der Screenshot - soll das so?  => control_hamburger_s@grey



FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

betateilchen

Zitat# connection => "MariaDB:database=fhem;mariadb_socket=</patch/socket-file>",

Vermutlich müsste es /path/socket-file heißen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

ZitatVermutlich müsste es /path/socket-file heißen.
Ja klar ... Schreibfehler.

ZitatSchau mal der Screenshot - soll das so?  => control_hamburger_s@grey
Nein, da gibt es normal ein Icon. Schau ich nochmal ob es das in den ausgelieferten Icons evtl. nicht gibt.


ZitatBeim check der db.conf ist mir aufgefallen, dass die Version der "db.conf" im contrib/dblog recht alt ist und auch nicht dem aktuellen Text/Inhalt in der Hilfe entspricht.

    Vielleicht magst du mal eine aktualisierte Version hochladen (wenn das Modul fertig ist).
Ja, sobald ich in den checkin gehe, aktualisiere ich auch die Vorlage(n) im contrib.

Zitat=> Welche Vorteile bringt die Nutzung des DBD::MariaDB Treibers statt mySQL?
Nichts direkt. Wir haben aber letztens hier festgestellt, dass die Unterstützung von MySQL in den Linux Distributionen zurückgeht und MariaDB zunehmend ausgeliefert wird.
Weiterhin scheint der Treiber (https://metacpan.org/pod/DBD::MariaDB) aktiv weiterentwickelt zu werden. Ist recht neu von Sept. 2023 der letzte Stand.

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

betateilchen

Das Icon control_hamburger_s gibt es im aktuellen Auslieferungsstand von FHEM nicht.
Eine gleichnamige SVG Datei habe ich mir zwar aus dem Internet geholt, da funktioniert aber das Füllen mit grau noch nicht wie gewünscht.

Ich habe gerade meine bestehende mysql Verbindung an einen externen Server bei AWS umgestellt.
Dazu habe ich lediglich die 93_DbLog.pm aus dem contrib nach ./FHEM verlinkt, die Konfigurationszeile entsprechend von mysql auf mariadb geändert und FHEM neu gestartet.

Hat auf Anhieb fehlerfrei funktioniert und scheint auch zu laufen. Zumindest werden fleißig Werte in die Datenbank geschrieben und können auch von SVG verwendet werden, hier ein Auszug aus dem preprocessed input eines SVG plots.

2024-03-15_20:10:02 146000
Die Datenbank wird übrigens von zwei FHEM Installationen parallel benutzt - eine benutzt jetzt mariadb (zum Schreiben und Lesen), die andere (nur zum Lesen) arbeitet mit mysql.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 15 März 2024, 20:15:29Die Datenbank wird übrigens von zwei FHEM Installationen parallel benutzt - eine benutzt jetzt mariadb (zum Schreiben und Lesen), die andere (nur zum Lesen) arbeitet mit mysql.

Inzwischen greifen beide FHEM Installationen parallel mit MariaDB auf die Datenbank zu.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Nighthawk

Hallo Heiko,

danke, das Problem mit den falschen Werten im Label (vom Vortag) sind damit behoben.

Gruß
Alex

DS_Starter

@RalfRog,

hier meine cfg zum Vergleich

%dbconfig= (
    connection => "MariaDB:database=fhemtest1;host=192.168.2.44;port=3306",
    user => "xxxxx",
    password => "xxxxxx",
    compression => 1
);
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

betateilchen

ZitatERROR: DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Connection error: port cannot be specified when host is localhost or embedded

Das ist ein uraltes Problem in mysql Umgebungen. Mach mal bitte ein

select user,host from mysql.user where user='fhemuser' or user='';
und poste die Ausgabe.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 15 März 2024, 20:24:10Inzwischen greifen beide FHEM Installationen parallel mit MariaDB auf die Datenbank zu.

Funktioniert auch mit der socket-Verbindung, darauf hatte ich jetzt noch eine der Installationen umgestellt.

Und das icon hab ich jetzt auch  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Ich werde Wuppi mal bitten das Icon einzuchecken. Das pass eigentlich sehr gut für den Zweck.
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

betateilchen

Ich wünsche mir, diese icons auf Wunsch abschalten zu können und stattdessen Text-Links zu bekommen.
Diese icons durchbrechen an dieser Stelle meines Erachtens jeglichen vorhandenen Standard.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

ZitatIch wünsche mir, diese icons auf Wunsch abschalten zu können und stattdessen Text-Links zu bekommen.
Mach ich.

ZitatDiese icons durchbrechen an dieser Stelle meines Erachtens jeglichen vorhandenen Standard.
Naja, man kann ja auch mal ein wenig neuen Pep ins Spiel bringen ... warum auch nicht...
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