93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

DS_Starter

Hi Joe,

ZitatTesten kann ich das nicht, da ich meine Tabellen aus Performancegründen nicht in UTF8 erstellt habe.

Stimmt nicht ganz. Wenn du das neue Modul bei dir einspielst und alles bleibt beim Alten ist es auch ok.  ;)

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

SabineT

Bei mir wird das °C jetzt richtig in der DB gespeichert!

DS_Starter

Habe soeben die V2.17.1 eingecheckt.
Im contrib/dblog-Verzeichnis ist die Beispiel-db.conf ebenfalls um diesen optionalen Parameter ergänzt.

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

JoeALLb

Noch ein Gedanke: Würde es nicht sinn machen, die Frage der Verbindung ob "UTF8" oder nicht abhängig davon zu machen, wie die Datenbank angelegt ist?
Ich frage mich gerade, was bei unterschiedlichen kombinationen als Ergebnis herauskommt. Wenn ich jetzt die Verbindung auf UTF8 umstelle, aber eine ASCI-Datenbank habe, wird
vermutlich nichts schönes dabei heraus kommen. umgekehrt hatten fast alle bisher eine UTF8-Datenbank befüllt jedoch mit einer ASCI-Datenbankverbindung.
Auch diese Unicodezeichen sind bis jetzt nicht sauber in die Datenbank abgelegt worden.
Durch die neue Option haben wir zwei verschiedene Stellen, die "zusammenpassen" müssen.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hi Joe,

ja, schön wäre es die Steuerung so zu machen. Allerdings habe ich dafür noch keine Lösung gefunden, weil diese Entscheidung bereits sehr frühzeitig bei der Anlage des DB-Handle erfolgen muß (beim FHEM-Start). Dieser Paramater muß an dieser Stelle mitgegeben werden.
Deswegen war ich auch mit dem ersten Attribut-Ansatz gescheitert.
Für den asynchronen Modus, der ja immer wieder einen einen neuen DBH erhält, wäre es wahrscheinlich mit entsprechenden Aufwand möglich. Beim synchronen Modus ist das komplizierter wenn nicht unmöglich.

Also ich denke dass der User, der sich Gedanken um so etwas macht, auch in der Lage ist die von dir beschriebenen Abhängigkeiten zu berücksichtigen.
Wenn der User kein "Problem" damit hat, kann er ja wie bisher in den allermeisten Fällen mit dem Standardsetup weiter machen.

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

JoeALLb

Ich verstehe... ;-)
Dann ändere ich meine Gedanken ab in folgenden nachrangigen Wunsch für später:
Eine Funktion wie "set sql checkConfig", die dann auf gewisse Ungereimtheiten prüft und diese ausgibt.
Dort könnten wir zB auf Unicode, aber auch auf die alten Spaltenbreiten, auf fehlende Indexe, etc. hinweisen. Das wäre denk vom Aufwand her eher überschaubar,
hätte kein Fehlerpotential (da es den Livebetrieb nicht beeinflusst) und diese Information könnte bei einem Supportfall direkt angefragt werden.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Gute Idee Joe, du hast aber auch immer wieder etwas im Ärmel dass mir nicht langweilig werden kann.  ;)
Schreib's Mal auf deine Liste ...

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

DS_Starter

#322
Hallo zusammen,

es hat mich natürlich gereizt den von Joe angeregten configCheck einzubauen. Hier der erste Wurf mit V2.18.0.
Implementiert ist "set ... configCheck" für MySQL und PostgreSQL.
Viel ist dazu nicht anzumerken.

Probierts mal aus und gerne wieder Verbesserungsvorschläge und Ergänzungen.

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

JoeALLb

Hallo Heiko,

Bin gespannt, herzlichen Dank :D
Leider bin ich im Ausland und komm erst Sonntag Abend heim zum testen....


schöne Grüße
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hi Joe,

ja kein Stress. Es gibt ja auch noch andere Mitstreiter. Und vllt. habe ich bis dahin noch etwas mehr gemacht, mal schauen wie das WE wird.

Bis dann ...
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

MichaelT

Zitat von: DS_Starter am 23 Juni 2017, 16:25:24
Hallo zusammen,

es hat mich natürlich gereizt den von Joe angeregten configCheck einzubauen. Hier der erste Wurf mit V2.18.0.
Implementiert ist "set ... configCheck" für MySQL und PostgreSQL.
Viel ist dazu nicht anzumerken.

Probierts mal aus und gerne wieder Verbesserungsvorschläge und Ergänzungen.

Grüße
Heiko

Morgen Heiko,

zur Info, habe die 2.18.0 bei mir in einer STD-Konfiguration am laufen.



Result of connection check

Connection to database fhem successfully done.
Recommendation: settings o.k.

Result of encoding check

Encoding used by Client (connection): LATIN1
Encodung used by fhem: UTF8
Recommendation: Both parameters should be identical. You can adjust the usage of UTF8 connection by setting the UTF8 parameter in file './db.conf' to the right value.

Result of table 'history' check

Column width set in fhem: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by logdb: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: The relation between column width in table history and the field width used in device logdb don't meet the requirements. Please make sure that the width of database field definition is equal or larger than the field width used by the module. Compare the given results.
You can change the column width in database by a statement like 'alter table history modify VALUE varchar(128);' (example for changing field 'VALUE'). The field width used by the module can be done by setting attributes 'colEvent', 'colReading', 'colValue',

Result of table 'current' check

Column width set in fhem: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by logdb: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: The relation between column width in table current and the field width used in device logdb don't meet the requirements. Please make sure that the width of database field definition is equal or larger than the field width used by the module. Compare the given results.
You can change the column width in database by a statement like 'alter table current modify VALUE varchar(128);' (example for changing field 'VALUE'). The field width used by the module can be done by setting attributes 'colEvent', 'colReading', 'colValue',

Result of check 'Search_Idx' availability

'Search_Idx' exists and contains fields 'DEVICE', 'READING', 'TIMESTAMP'.
Recommendation: settings o.k.

Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

DS_Starter

Hi Michael,

das sind doch schonmal hilfreiche Ergebnisse, sieht alles richtig gelaufen aus. (was ist STD ??)

Zitat
Result of encoding check

Encoding used by Client (connection): LATIN1
Encodung used by fhem: UTF8
Recommendation: Both parameters should be identical. You can adjust the usage of UTF8 connection by setting the UTF8 parameter in file './db.conf' to the right value.

Das bedeutet dass in deiner DB "°C" als "°C" zu sehen sein wird wenn du zB. mit phpMyAdmin oder DbRep dir die Einträge anschaust.
Die UTF8 Unterstützung kannst du mit dem UTF8-Paramater in der Konfigdatei einschalten.

Zitat
Column width set in fhem: 'DEVICE' = 32, 'TYPE' = 32, 'EVENT' = 512, 'READING' = 32, 'VALUE' = 64, 'UNIT' = 32
Column width used by logdb: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32

Die Spaltenbreite für 'DEVICE',  'READING', 'VALUE' ist in der DB zu klein. Füher (bis letztes Jahr irgendwann) waren das richtige Werte. Dann wurden die Defaultwerte erhöht. Es würde zu Fehlern kommen wenn Werte in den Spalten gespeichert werden sollen die diese Größen überschreiten. Entweder in der Tabelle history bzw. current die Spaltenbreite auf den jetzt akzuellen Wert setzen (best way) oder im Modul über die Attribute begrenzen.

Das wären so die Handlungsempfehlungen die aus dem Check rauspurzeln.
Prima !

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

MichaelT

Hallo Heiko,

STD=Standard, heisst "nichts besonders" ;)

Ja, mit der Länge hatte ich damals nichts angepasst. Utf8 latin1 habe bisher nicht bemerkt.

Werde ich jatzt wohl mal anpassen.

Schönes Wochende. Danke für deine Weiterentwicklung.
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

DS_Starter

Hallo zusammen,

In der angehängten V 2.18.1 habe ich die Checks noch etwas erweitert, verfeinert und auch die Commandref bereits angepasst.

VG
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

JoeALLb

Hallo Heiko,

habe gerade V2.18.1.pm getestet und zeigt bei mir ebenfalls korrekte und brauchbare Ergebnisse an.
Kleiner gedanken noch: Sollte man beim Index ggf. auch auf den DbRep-Index prüfen, wenn das Modul DbRep genutzt wird?

Ansonsten lasse ich es jetzt mal bbei mir laufen! Herzlichen Dank,

Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270