2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-30 18:12:28 +00:00

93_DbLog: contrib 5.8.4

git-svn-id: https://svn.fhem.de/fhem/trunk@27265 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2023-02-22 21:28:24 +00:00
parent a133971e5e
commit 6b3509675c

View File

@ -38,7 +38,8 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch';
# Version History intern by DS_Starter:
my %DbLog_vNotesIntern = (
"5.8.4" => "20.02.2023 new attr plotInputFieldLength, improve Plot Editor ",
"5.8.4" => "20.02.2023 new attr plotInputFieldLength, improve Plot Editor, delete attr noNotifyDev ".
"move notifyRegexpChanged fron Define to initOnStart ",
"5.8.3" => "19.02.2023 adapt DbLog_configcheck, new get ... configCheck, commandref edited ",
"5.8.2" => "18.02.2023 adapt DbLog_configcheck, Forum: https://forum.fhem.de/index.php/topic,132163.msg1264320.html#msg1264320 ",
"5.8.1" => "13.02.2023 change field type of DbLogInclude, DbLogExclude to textField-long, configCheck evaluate collation ".
@ -192,7 +193,6 @@ sub DbLog_Initialize {
"exportCacheAppend:1,0 ".
"insertMode:1,0 ".
"noSupportPK:1,0 ".
"noNotifyDev:1,0 ".
"plotInputFieldLength ".
"showproctime:1,0 ".
"suppressAddLogV3:1,0 ".
@ -236,15 +236,14 @@ sub DbLog_Define {
if($DbLogMMDBI) {
$err = "Perl module ".$DbLogMMDBI." is missing. On Debian you can install it with: sudo apt-get install libdbi-perl";
Log3($name, 1, "DbLog $name - ERROR - $err");
Log3 ($name, 1, "DbLog $name - ERROR - $err");
return "Error: $err";
}
if ($storabs) {
$err = "Perl module ".$storabs." is missing. On Debian you can install it with: sudo apt-get install libstorable-perl";
Log3($name, 1, "DbLog $name - ERROR - $err");
Log3 ($name, 1, "DbLog $name - ERROR - $err");
return "Error: $err";
}
return "wrong syntax: define <name> DbLog configuration regexp" if(int(@a) != 4);
@ -261,7 +260,6 @@ sub DbLog_Define {
$hash->{HELPER}{MODMETAABSENT} = 1 if($modMetaAbsent); # Modul Meta.pm nicht vorhanden
DbLog_setVersionInfo ($hash); # Versionsinformationen setzen
notifyRegexpChanged ($hash, $regexp); # nur Events dieser Devices an NotifyFn weiterleiten, NOTIFYDEV wird gesetzt wenn möglich
$hash->{PID} = $$; # remember PID for plotfork
$data{DbLog}{$name}{cache}{index} = 0; # CacheIndex für Events zum asynchronen Schreiben in DB
@ -311,8 +309,8 @@ sub _DbLog_initOnStart {
readingsDelete ($hash, $r);
}
DbLog_setSchemeTable ($hash);
DbLog_setSchemeTable ($hash);
notifyRegexpChanged ($hash, $hash->{REGEXP}); # nur Events dieser Devices an NotifyFn weiterleiten, NOTIFYDEV wird gesetzt wenn möglich
DbLog_SBP_CheckAndInit ($hash);
my $rst = DbLog_SBP_sendConnectionData ($hash); # Verbindungsdaten an SubProzess senden
@ -418,8 +416,10 @@ sub DbLog_Attr {
my $hash = $defs{$name};
my $do = 0;
if ($aName eq "traceHandles") {
return;
if ($aName =~ /^(traceHandles|noNotifyDev)$/xs) {
my $msg = "$name - The attribute >$aName< is deprecated and is not set anymore.";
Log3 ($name, 1, "DbLog $name $msg");
return $msg;
}
if($cmd eq "set") {
@ -505,17 +505,6 @@ sub DbLog_Attr {
}
}
if($aName eq "noNotifyDev") {
my $regexp = $hash->{REGEXP};
if ($cmd eq "set" && $aVal) {
delete($hash->{NOTIFYDEV});
}
else {
notifyRegexpChanged($hash, $regexp);
}
}
if ($aName eq "disable") {
my $async = AttrVal($name, 'asyncMode', 0);
@ -7222,20 +7211,23 @@ sub DbLog_configcheck {
### Check Plot Erstellungsmodus
#######################################################################
$check .= "<u><b>Result of plot generation method check</u></b><br><br>";
my @webdvs = devspec2array("TYPE=FHEMWEB:FILTER=STATE=Initialized");
my ($forks,$lpseb) = (1,1);
my $wall = "";
$check .= "<u><b>Result of plot generation method check</u></b><br><br>";
my @webdvs = devspec2array("TYPE=FHEMWEB:FILTER=STATE=Initialized");
my $forks = 1;
my $lpseb = 1;
my $noemb = 1;
my $wall = "";
for my $web (@webdvs) {
my $pf = AttrVal ($web, 'plotfork', 0);
my $lps = AttrVal ($web, 'longpollSVG', 0);
my $pe = AttrVal ($web, 'plotEmbed', 0);
$forks = 0 if(!$pf);
$lpseb = 0 if($lps && $pe != 1);
$forks = 0 if(!$pf);
$lpseb = 0 if($lps && $pe != 1);
$noemb = 0 if($pf && !$pe);
if(!$pf || ($lps && $pe != 1)) {
if (!$pf || ($lps && $pe != 1) || ($pf && !$pe)) {
$wall .= "<b>".$web.": plotfork=".$pf." / plotEmbed=".$pe." / longpollSVG=".$lps."</b><br>";
}
else {
@ -7243,7 +7235,7 @@ sub DbLog_configcheck {
}
}
if (!$forks || !$lpseb) {
if (!$forks || !$lpseb || !$noemb) {
$rec = q{};
if (!$forks) {
@ -7253,6 +7245,10 @@ sub DbLog_configcheck {
if (!$lpseb) {
$check .= "WARNING - at least one of your FHEMWEB devices has attribute 'longpollSVG = 1' but not 'plotEmbed = 1' set. <br>";
}
if (!$noemb) {
$check .= "WARNING - at least one of your FHEMWEB devices has attribute 'plotEmbed' not set. <br>";
}
$check .= "<br>";
$check .= $wall;
@ -7266,6 +7262,12 @@ sub DbLog_configcheck {
"See also global attribute <a href=\"http://fhem.de/commandref.html#blockingCallMax\">blockingCallMax</a>. <br>"
}
if (!$noemb) {
$rec .= "You should set attribute 'plotEmbed = (1 | 2)' in relevant devices. ".
"If this attribute is not set, blocking situations may occure when creating plots. <br>".
"Refer to <a href=\"http://fhem.de/commandref.html#FHEMWEB-attr-plotEmbed\">plotEmbed</a> for further information.<br>";
}
if (!$lpseb) {
$rec .= "You have to set the attribute 'plotEmbed = 1' in FHEMWEB devices where 'longpollSVG' should be used. ".
"Refer to <a href=\"http://fhem.de/commandref.html#FHEMWEB-attr-longpollSVG\">longpollSVG</a> for further information.<br>";
@ -8445,7 +8447,7 @@ return $ret;
# Datenlieferung für SVG EDitor
#
# Beispiel Input Zeile: sysmon:ram:::$val=~s/^Total..([\d.]*).*/$1/eg
# 0 1 23 4
# 0 1 23 4
# $ret .= SVG_txt("par_${r}_0", "", $f[0], 40); # Device (Column bei FileLog)
# $ret .= SVG_txt("par_${r}_1", "", $f[1], 40); # Reading (RegExp bei FileLog)
# $ret .= SVG_txt("par_${r}_2", "", $f[2], 1); # Default not yet implemented
@ -8474,8 +8476,8 @@ sub DbLog_sampleDataFn {
my $dbh = $hash->{DBHU};
my $ccount = 0;
my $dblt = AttrVal ($dlName, 'DbLogType', 'History');
my $pifl = AttrVal ($dlName, 'plotInputFieldLength', $dblog_pifl);
my $pifl = AttrVal ($dlName, 'plotInputFieldLength', $dblog_pifl);
if ($dblt =~ m/Current|SampleFill/xs) {
$ccount = eval {$dbh->selectrow_array("select count(*) from $current");} || 0;
}
@ -8483,9 +8485,9 @@ sub DbLog_sampleDataFn {
if ($ccount) { # Table Current present, use it for sample data
$desc = "Device:Reading:".
"<br>Function"; # Beschreibung über Eingabezeile
my $query = "select device,reading from $current where device <> '' group by device,reading";
my $sth = $dbh->prepare( $query );
my $sth = $dbh->prepare( $query );
$sth->execute();
while (my @line = $sth->fetchrow_array()) {
@ -8495,17 +8497,17 @@ sub DbLog_sampleDataFn {
}
my $cols = join ",", sort { "\L$a" cmp "\L$b" } @colregs;
for (my $r = 0; $r < $max; $r++) {
my @f = split ":", ($dlog->[$r] ? $dlog->[$r] : ":::"), 4; # Beispiel Input Zeile: sysmon:ram:::$val=~s/^Total..([\d.]*).*/$1/eg
my $ret = "";
no warnings 'uninitialized'; # Forum:74690, bug unitialized
$ret .= SVG_sel("par_${r}_0", $cols, "$f[0]:$f[1]"); # par_<Zeile>_<Spalte>, <Auswahl>, <Vorbelegung>
use warnings;
$ret .= SVG_sel("par_${r}_2", ":", ":"); # nur ein Trenner -> wird zu ":::"
$f[3] =~ /^(:+)?(.*)/xs;
$ret .= SVG_txt("par_${r}_3", "<br>", "$2", $pifl); # RegExp (z.B. $val=~s/^Total..([\d.]*).*/$1/eg)
@ -8514,10 +8516,10 @@ sub DbLog_sampleDataFn {
}
else { # Table Current not present, so create an empty input field
push @example, '&lt;Device&gt;:&lt;Reading&gt;::[Function]';
$desc = "Device:Reading::".
"<br>Function"; # Beschreibung über Eingabezeile
for (my $r = 0; $r < $max; $r++) {
my @f = split ":", ($dlog->[$r] ? $dlog->[$r] : ":::"), 4;
my $ret = "";
@ -8525,10 +8527,10 @@ sub DbLog_sampleDataFn {
no warnings 'uninitialized'; # Forum:74690, bug unitialized
$ret .= SVG_txt("par_${r}_0", "", "$f[0]:$f[1]::", $pifl); # letzter Wert -> Breite der Eingabezeile
use warnings;
$f[3] =~ /^(:+)?(.*)/xs;
$ret .= SVG_txt("par_${r}_3", "<br>", "$2", $pifl); # RegExp (z.B. $val=~s/^Total..([\d.]*).*/$1/eg)
push @htmlArr, $ret;
}
}
@ -9862,12 +9864,12 @@ return;
</li>
</ul>
<br>
<ul>
<a id="DbLog-attr-convertTimezone"></a>
<li><b>convertTimezone [UTC | none] </b> <br><br>
<ul>
UTC - the local timestamp of the event will be converted to UTC. <br>
(default: none) <br><br>
@ -10205,17 +10207,6 @@ attr SMA_Energymeter DbLogValueFn
</li>
<br>
<ul>
<a id="DbLog-attr-noNotifyDev"></a>
<li><b>noNotifyDev [1|0] </b> <br><br>
<ul>
Enforces that NOTIFYDEV won't set and hence won't used. <br>
</ul>
</li>
</ul>
<br>
<ul>
<a id="DbLog-attr-noSupportPK"></a>
<li><b>noSupportPK [1|0] </b> <br><br>
@ -10225,13 +10216,13 @@ attr SMA_Energymeter DbLogValueFn
</li>
</ul>
<br>
<ul>
<a id="DbLog-attr-plotInputFieldLength"></a>
<li><b>plotInputFieldLength &lt;Ganzzahl&gt; </b> <br><br>
<ul>
Width of the Plot Editor input fields for Device:Reading and Function. <br>
If the drop-down list is used as input help for Device:Reading, the width of the field is
If the drop-down list is used as input help for Device:Reading, the width of the field is
set automatically. <br>
(default: 40)
</ul>
@ -10815,9 +10806,9 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-clearReadings"></a>
<b>set &lt;name&gt; clearReadings </b> <br><br>
<ul>
Leert Readings die von verschiedenen DbLog-Funktionen angelegt wurden.
<ul>
Leert Readings die von verschiedenen DbLog-Funktionen angelegt wurden.
</li>
</ul>
<br>
@ -10834,6 +10825,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-commitCache"></a>
<b>set &lt;name&gt; commitCache </b> <br><br>
<ul>
Im asynchronen Modus (<a href="#DbLog-attr-asyncMode">asyncMode=1</a>), werden die im Cache gespeicherten
Daten in die Datenbank geschrieben und danach der Cache geleert. <br>
@ -10845,10 +10837,11 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-configCheck"></a>
<b>set &lt;name&gt; configCheck </b> <br><br>
<ul>
Es werden einige wichtige Einstellungen geprüft und Empfehlungen gegeben falls potentielle Verbesserungen
identifiziert wurden. <br>
(<b>Hinweis:</b> Dieser Befehl ist abgekündigt und wird in den nächsten Versionen entfernt werden. Verwenden Sie stattdessen "get &lt;name&gt; configCheck".)
<ul>
Es werden einige wichtige Einstellungen geprüft und Empfehlungen gegeben falls potentielle Verbesserungen
identifiziert wurden. <br>
(<b>Hinweis:</b> Dieser Befehl ist abgekündigt und wird in den nächsten Versionen entfernt werden. Verwenden Sie stattdessen "get &lt;name&gt; configCheck".)
</li>
</ul>
<br>
@ -10856,6 +10849,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-count"></a>
<b>set &lt;name&gt; count </b> <br><br>
<ul>
Ermittelt die Anzahl der Datensätze in den Tabellen current und history und schreibt die Ergebnisse in die Readings
countCurrent und countHistory.
@ -10880,6 +10874,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-deleteOldDays"></a>
<b>set &lt;name&gt; deleteOldDays &lt;n&gt; </b> <br><br>
<ul>
Löscht Datensätze älter als &lt;n&gt; Tage in Tabelle history.
Die Anzahl der gelöschten Datens&auml;tze wird im Reading lastRowsDeleted protokolliert.
@ -10905,6 +10900,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-exportCache"></a>
<b>set &lt;name&gt; exportCache [nopurge | purgecache] </b> <br><br>
<ul>
Wenn DbLog im asynchronen Modus betrieben wird, kann der Cache mit diesem Befehl in ein Textfile geschrieben
werden. <br>
@ -10928,6 +10924,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-importCachefile"></a>
<b>set &lt;name&gt; importCachefile &lt;file&gt; </b> <br><br>
<ul>
Importiert ein mit "exportCache" geschriebenes File in die Datenbank. <br>
Die verfügbaren Dateien werden per Default im Verzeichnis (global->modpath)/log/ gesucht und eine Drop-Down Liste
@ -10954,6 +10951,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-listCache"></a>
<b>set &lt;name&gt; listCache </b> <br><br>
<ul>
Listet die im Memory Cache zwischengespeicherten Daten auf.
</li>
@ -10974,6 +10972,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-reduceLog"></a>
<b>set &lt;name&gt; reduceLog &lt;no&gt;[:&lt;nn&gt;] [average[=day]] [exclude=device1:reading1,device2:reading2,...] </b> <br><br>
<ul>
Reduziert historische Datensätze, die älter sind als &lt;no&gt; Tage und (optional) neuer sind als &lt;nn&gt; Tage
auf einen Eintrag (den ersten) pro Stunde je Device & Reading.<br>
@ -11005,6 +11004,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-reduceLogNbl"></a>
<b>set &lt;name&gt; reduceLogNbl &lt;no&gt;[:&lt;nn&gt;] [average[=day]] [exclude=device1:reading1,device2:reading2,...] </b> <br><br>
<ul>
Die Funktion ist identisch zu "set &lt;name&gt; reduceLog" und wird demnächst entfernt.
</ul>
@ -11014,7 +11014,8 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-reopen"></a>
<b>set &lt;name&gt; reopen [n] </b> <br><br>
<ul>
<ul>
Schließt die Datenbank und öffnet sie danach sofort wieder wenn keine Zeit [n] in Sekunden angegeben wurde. <br>
Wurde eine optionale Verzögerungszeit [n] in Sekunden angegeben, wird die Verbindung zur Datenbank geschlossen und
erst nach Ablauf von [n] Sekunden wieder neu verbunden. <br>
@ -11027,6 +11028,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-rereadcfg"></a>
<b>set &lt;name&gt; rereadcfg </b> <br><br>
<ul>
Die Konfigurationsdatei wird neu eingelesen. <br>
Nach dem Einlesen wird eine bestehende Datenbankverbindung beendet und mit den konfigurierten Verbindungsdaten
@ -11038,6 +11040,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-stopSubProcess"></a>
<b>set &lt;name&gt; stopSubProcess </b> <br><br>
<ul>
Ein laufender SubProzess wird beendet. <br>
Sobald durch eine Operation ein neuer SubProzess benötigt wird, erfolgt die automatische Neuinitialisierung
@ -11054,6 +11057,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-set-userCommand"></a>
<b>set &lt;name&gt; userCommand &lt;validSelectStatement&gt; </b> <br><br>
<ul>
Führt einfache SQL Select Befehle auf der Datenbank aus. <br>
Das Ergebnis des Statements wird in das Reading "userCommandResult" geschrieben.
@ -11079,7 +11083,8 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-get-configCheck"></a>
<b>get &lt;name&gt; configCheck </b> <br>
<b>get &lt;name&gt; configCheck </b> <br> <br><br>
<ul>
Es werden einige wichtige Einstellungen geprüft und Empfehlungen gegeben falls potentielle Verbesserungen
identifiziert wurden.
@ -11089,8 +11094,7 @@ attr SMA_Energymeter DbLogValueFn
<li>
<a id="DbLog-get-ReadingsMaxVal" data-pattern="ReadingsMaxVal.*"></a>
<b>get &lt;name&gt; ReadingsMaxVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b>
<br>
<b>get &lt;name&gt; ReadingsMaxVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b> <br><br>
<ul>
Ermittelt den Datensatz mit dem größten Wert der angegebenen Device / Reading Kombination aus der history Tabelle. <br>
@ -11112,8 +11116,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>
<a id="DbLog-get-ReadingsMinVal" data-pattern="ReadingsMinVal.*"></a>
<b>get &lt;name&gt; ReadingsMinVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b>
<br>
<b>get &lt;name&gt; ReadingsMinVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b> <br><br>
<ul>
Ermittelt den Datensatz mit dem kleinsten Wert der angegebenen Device / Reading Kombination aus der history Tabelle. <br>
@ -11135,8 +11138,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>
<a id="DbLog-get-ReadingsAvgVal"></a>
<b>get &lt;name&gt; ReadingsAvgVal &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b>
<br>
<b>get &lt;name&gt; ReadingsAvgVal &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b> <br><br>
<ul>
Ermittelt den Durchschnittswert der angegebenen Device / Reading Kombination aus der history Tabelle. <br>
@ -11157,8 +11159,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>
<a id="DbLog-get-ReadingsVal" data-pattern="ReadingsVal.*"></a>
<b>get &lt;name&gt; ReadingsVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b>
<br>
<b>get &lt;name&gt; ReadingsVal[Timestamp] &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b> <br><br>
<ul>
Liest den letzten (neuesten) in der history Tabelle gespeicherten Datensatz der angegebenen Device / Reading
@ -11181,8 +11182,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>
<a id="DbLog-get-ReadingsTimestamp"></a>
<b>get &lt;name&gt; ReadingsTimestamp &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b>
<br>
<b>get &lt;name&gt; ReadingsTimestamp &lt;Device&gt; &lt;Reading&gt; &lt;default&gt; </b> <br><br>
<ul>
Liest den Zeitstempel des letzten (neuesten) in der history Tabelle gespeicherten Datensatzes der angegebenen
@ -11203,8 +11203,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>
<a id="DbLog-get-retrieve"></a>
<b>get &lt;name&gt; retrieve &lt;querytype&gt; &lt;device|table&gt; &lt;reading&gt; &lt;from&gt; &lt;to&gt; &lt;offset&gt; &lt;limit&gt; </b>
<br>
<b>get &lt;name&gt; retrieve &lt;querytype&gt; &lt;device|table&gt; &lt;reading&gt; &lt;from&gt; &lt;to&gt; &lt;offset&gt; &lt;limit&gt; </b> <br><br>
<ul>
Liest Daten aus der Datenbank Tabelle history und gibt die Ergebnisse als JSON formatiert zurück. <br>
@ -11458,9 +11457,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li><b>get &lt;name&gt; &lt;in&gt; &lt;out&gt; &lt;from&gt;
&lt;to&gt; &lt;device&gt; &lt;querytype&gt; &lt;xaxis&gt; &lt;yaxis&gt; &lt;savename&gt; &lt;chartconfig&gt; &lt;pagingstart&gt; &lt;paginglimit&gt; </b>
<br>
<br>
&lt;to&gt; &lt;device&gt; &lt;querytype&gt; &lt;xaxis&gt; &lt;yaxis&gt; &lt;savename&gt; &lt;chartconfig&gt; &lt;pagingstart&gt; &lt;paginglimit&gt; </b> <br><br>
Liest Daten aus der Datenbank aus und gibt diese in JSON formatiert aus. Wird für das Charting Frontend
(<a href="https://wiki.fhem.de/wiki/Neues_Charting_Frontend">Wiki: Neues Charting Frontend</a>) genutzt.
@ -11583,6 +11580,7 @@ attr SMA_Energymeter DbLogValueFn
<a id="DbLog-attr-addStateEvent"></a>
<li><b>addStateEvent [0|1] </b> <br><br>
<ul>
Bekanntlich wird normalerweise bei einem Event mit dem Reading "state" der state-String entfernt, d.h.
der Event ist nicht zum Beispiel "state: on" sondern nur "on". <br>
Meistens ist es aber hilfreich in DbLog den kompletten Event verarbeiten zu können. Deswegen übernimmt DbLog per Default
@ -11599,6 +11597,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-asyncMode"></a>
<li><b>asyncMode [0|1] </b> <br><br>
<ul>
Dieses Attribut stellt den Verarbeitungsprozess ein nach dessen Verfahren das DbLog Device die Daten in die
Datenbank schreibt. <br>
@ -11641,6 +11640,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-cacheEvents"></a>
<li><b>cacheEvents [2|1|0] </b> <br><br>
<ul>
<ul>
<table>
@ -11662,6 +11662,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-cacheLimit"></a>
<li><b>cacheLimit &lt;n&gt; </b> <br><br>
<ul>
Im asynchronen Logmodus wird der Cache in die Datenbank weggeschrieben und geleert wenn die Anzahl &lt;n&gt; Datensätze
im Cache erreicht ist. <br>
@ -11676,6 +11677,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-cacheOverflowThreshold"></a>
<li><b>cacheOverflowThreshold &lt;n&gt; </b> <br><br>
<ul>
Legt im asynchronen Logmodus den Schwellenwert von &lt;n&gt; Datensätzen fest, ab dem der Cacheinhalt in ein File
exportiert wird anstatt die Daten in die Datenbank zu schreiben. <br>
@ -11697,6 +11699,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-colEvent"></a>
<li><b>colEvent &lt;n&gt; </b> <br><br>
<ul>
Die Feldlänge für das DB-Feld EVENT wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colEvent=0 wird das Datenbankfeld
@ -11711,6 +11714,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-colReading"></a>
<li><b>colReading &lt;n&gt; </b> <br><br>
<ul>
Die Feldlänge für das DB-Feld READING wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colReading=0 wird das Datenbankfeld
@ -11725,6 +11729,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-colValue"></a>
<li><b>colValue &lt;n&gt; </b> <br><br>
<ul>
Die Feldlänge für das DB-Feld VALUE wird userspezifisch angepasst. Mit dem Attribut kann der Default-Wert im Modul
verändert werden wenn die Feldlänge in der Datenbank manuell geändert wurde. Mit colValue=0 wird das Datenbankfeld
@ -11739,6 +11744,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-commitMode"></a>
<li><b>commitMode [basic_ta:on | basic_ta:off | ac:on_ta:on | ac:on_ta:off | ac:off_ta:on] </b> <br><br>
<ul>
Ändert die Verwendung der Datenbank Autocommit- und/oder Transaktionsfunktionen.
Wird Transaktion "aus" verwendet, werden im asynchronen Modus nicht gespeicherte Datensätze nicht an den Cache zurück
@ -11760,6 +11766,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-convertTimezone"></a>
<li><b>convertTimezone [UTC | none] </b> <br><br>
<ul>
UTC - der lokale Timestamp des Events wird nach UTC konvertiert. <br>
(default: none) <br><br>
@ -11774,6 +11781,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-DbLogType"></a>
<li><b>DbLogType [Current|History|Current/History|SampleFill/History] </b> <br><br>
<ul>
Dieses Attribut legt fest, welche Tabelle oder Tabellen in der Datenbank genutzt werden sollen. Ist dieses Attribut nicht gesetzt, wird
per default die Einstellung <i>history</i> verwendet. <br><br>
@ -11809,6 +11817,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-DbLogSelectionMode"></a>
<li><b>DbLogSelectionMode [Exclude|Include|Exclude/Include] </b> <br><br>
<ul>
Dieses für DbLog-Devices spezifische Attribut beeinflußt, wie die Device-spezifischen Attribute
<a href="#DbLog-attr-DbLogExclude">DbLogExclude</a> und <a href="#DbLog-attr-DbLogInclude">DbLogInclude</a>
@ -11841,6 +11850,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-DbLogInclude"></a>
<li><b>DbLogInclude Regex[:MinInterval][:force],[Regex[:MinInterval][:force]], ... </b> <br><br>
<ul>
Mit dem Attribut DbLogInclude werden die Readings definiert, die in der Datenbank gespeichert werden sollen. <br>
Die Definition der zu speichernden Readings erfolgt über einen regulären Ausdruck und alle Readings, die mit dem
@ -11886,6 +11896,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-DbLogExclude"></a>
<li><b>DbLogExclude Regex[:MinInterval][:force],[regex[:MinInterval][:force]] ... </b> <br><br>
<ul>
Mit dem Attribut DbLogExclude werden die Readings definiert, die <b>nicht</b> in der Datenbank gespeichert werden
sollen. <br>
@ -11933,6 +11944,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-DbLogValueFn"></a>
<li><b>DbLogValueFn {} </b> <br><br>
<ul>
Wird DbLog genutzt, wird in allen Devices das Attribut <i>DbLogValueFn</i> propagiert.
Dieses Attribut wird in den <b>Quellendevices</b> gesetzt und erlaubt die Veränderung der Werte vor dem Logging
@ -11971,6 +11983,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-dbSchema"></a>
<li><b>dbSchema &lt;schema&gt; </b> <br><br>
<ul>
Dieses Attribut ist setzbar für die Datenbanken MySQL/MariaDB und PostgreSQL. Die Tabellennamen (current/history) werden
durch das angegebene Datenbankschema ergänzt. Das Attribut ist ein advanced Feature und nomalerweise nicht nötig zu setzen.
@ -11981,7 +11994,7 @@ attr SMA_Energymeter DbLogValueFn
<br>
<ul>
<a id="DbLog-attr-defaultMinInterval"></a>
<a id="DbLog-attr-defaultMinInterval"></a>
<li><b>defaultMinInterval &lt;devspec&gt;::&lt;MinInterval&gt;[::force],[&lt;devspec&gt;::&lt;MinInterval&gt;[::force]] ... </b> <br><br>
<ul>
Mit diesem Attribut wird ein Standard Minimum Intervall für <a href="http://fhem.de/commandref_DE.html#devspec">devspec</a> festgelegt.
@ -12008,6 +12021,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-excludeDevs"></a>
<li><b>excludeDevs &lt;devspec1&gt;[#Reading],&lt;devspec2&gt;[#Reading],&lt;devspec...&gt; </b> <br><br>
<ul>
Die Device/Reading-Kombinationen "devspec1#Reading", "devspec2#Reading" bis "devspec..." werden vom Logging in die
Datenbank global ausgeschlossen. <br>
@ -12039,6 +12053,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-expimpdir"></a>
<li><b>expimpdir &lt;directory&gt; </b> <br><br>
<ul>
In diesem Verzeichnis wird das Cachefile beim Export angelegt bzw. beim Import gesucht. Siehe set-Kommandos
<a href="#DbLog-set-exportCache">exportCache</a> bzw. <a href="#DbLog-set-importCachefile">importCachefile</a>.
@ -12057,6 +12072,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-exportCacheAppend"></a>
<li><b>exportCacheAppend [1|0] </b> <br><br>
<ul>
Wenn gesetzt, wird beim Export des Cache ("set &lt;device&gt; exportCache") der Cacheinhalt an das neueste bereits vorhandene
Exportfile angehängt. Ist noch kein Exportfile vorhanden, wird es neu angelegt. <br>
@ -12069,6 +12085,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-insertMode"></a>
<li><b>insertMode [1|0] </b> <br><br>
<ul>
Schaltet den Insert-Modus der Datenbankschnittstelle um. <br><br>
@ -12088,32 +12105,24 @@ attr SMA_Energymeter DbLogValueFn
</li>
<br>
<ul>
<a id="DbLog-attr-noNotifyDev"></a>
<li><b>noNotifyDev [1|0] </b> <br><br>
<ul>
Erzwingt dass NOTIFYDEV nicht gesetzt und somit nicht verwendet wird.<br>
</ul>
</li>
</ul>
<br>
<ul>
<a id="DbLog-attr-noSupportPK"></a>
<li><b>noSupportPK [1|0] </b> <br><br>
<ul>
Deaktiviert die programmtechnische Unterstützung eines gesetzten Primary Key durch das Modul.<br>
</ul>
</li>
</ul>
<br>
<ul>
<a id="DbLog-attr-plotInputFieldLength"></a>
<li><b>plotInputFieldLength &lt;Ganzzahl&gt; </b> <br><br>
<ul>
Breite der Plot Editor Eingabefelder für Device:Reading und Funktion. <br>
Wird die Drop-Down Liste als Eingabehilfe für Device:Reading verwendet, wird die Breite des Feldes
Wird die Drop-Down Liste als Eingabehilfe für Device:Reading verwendet, wird die Breite des Feldes
automatisch eingestellt. <br>
(default: 40)
</ul>
@ -12124,6 +12133,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-showproctime"></a>
<li><b>showproctime [1|0] </b> <br><br>
<ul>
Wenn gesetzt, zeigt das Reading "sql_processing_time" die benötigte Abarbeitungszeit (in Sekunden) für die
SQL-Ausführung der durchgeführten Funktion.
@ -12138,6 +12148,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-showNotifyTime"></a>
<li><b>showNotifyTime [1|0] </b> <br><br>
<ul>
Wenn gesetzt, zeigt das Reading "notify_processing_time" die benötigte Abarbeitungszeit (in Sekunden) für die
Abarbeitung der DbLog Notify-Funktion. <br>
@ -12158,6 +12169,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-SQLiteCacheSize"></a>
<li><b>SQLiteCacheSize &lt;Anzahl Memory Pages für Cache&gt; </b> <br><br>
<ul>
Standardmäßig werden ca. 4MB RAM für Caching verwendet (page_size=1024bytes, cache_size=4000).<br>
Bei Embedded Devices mit wenig RAM genügen auch 1000 Pages - zu Lasten der Performance. <br>
@ -12170,6 +12182,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-SQLiteJournalMode"></a>
<li><b>SQLiteJournalMode [WAL|off] </b> <br><br>
<ul>
Moderne SQLite Datenbanken werden mit einem Write-Ahead-Log (<b>WAL</b>) geöffnet, was optimale Datenintegrität
und gute Performance gewährleistet.<br>
@ -12186,6 +12199,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-syncEvents"></a>
<li><b>syncEvents [1|0] </b> <br><br>
<ul>
es werden Events für Reading NextSync erzeugt. <br>
</ul>
@ -12196,6 +12210,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-syncInterval"></a>
<li><b>syncInterval &lt;n&gt; </b> <br><br>
<ul>
Wenn im DbLog-Device der asynchrone Modus eingestellt ist (asyncMode=1), wird mit diesem Attribut das Intervall
(Sekunden) zum Wegschreiben der zwischengespeicherten Daten in die Datenbank festgelegt. <br>
@ -12208,6 +12223,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-suppressAddLogV3"></a>
<li><b>suppressAddLogV3 [1|0] </b> <br><br>
<ul>
Wenn gesetzt werden verbose 3 Logeinträge durch die addLog-Funktion unterdrückt. <br>
</ul>
@ -12218,6 +12234,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-suppressUndef"></a>
<li><b>suppressUndef</b> <br><br>
<ul>
Unterdrückt alle undef Werte die durch eine Get-Anfrage, z.B. Plot, aus der Datenbank selektiert werden.
</ul>
@ -12228,6 +12245,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-timeout"></a>
<li><b>timeout &lt;n&gt; </b> <br><br>
<ul>
Setzt den Timeout-Wert für die Operationen im SubProzess in Sekunden. <br>
Ist eine gestartete Operation (Logging, Kommando) nicht innerhalb des Timeout-Wertes beendet,
@ -12241,6 +12259,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-traceFlag"></a>
<li><b>traceFlag &lt;ALL|SQL|CON|ENC|DBD|TXN&gt; </b> <br><br>
<ul>
Bestimmt das Tracing von bestimmten Aktivitäten innerhalb des Datenbankinterfaces und Treibers. Das Attribut ist nur
für den Fehler- bzw. Supportfall gedacht. <br><br>
@ -12267,6 +12286,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-traceLevel"></a>
<li><b>traceLevel &lt;0|1|2|3|4|5|6|7&gt; </b> <br><br>
<ul>
Schaltet die Trace-Funktion des Moduls ein. <br>
<b>Achtung !</b> Das Attribut ist nur für den Fehler- bzw. Supportfall gedacht. Es werden <b>sehr viele Einträge</b> in
@ -12296,6 +12316,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-useCharfilter"></a>
<li><b>useCharfilter [0|1] </b> <br><br>
<ul>
wenn gesetzt, werden nur ASCII Zeichen von 32 bis 126 im Event akzeptiert. (default: 0) <br>
Das sind die Zeichen " A-Za-z0-9!"#$%&'()*+,-.\/:;<=>?@[\\]^_`{|}~". <br>
@ -12308,6 +12329,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-valueFn"></a>
<li><b>valueFn {} </b> <br><br>
<ul>
Dieses Attribut wird im <b>DbLog-Device</b> gesetzt und erlaubt die Veränderung der Werte vor dem Logging
oder den Ausschluß des Datensatzes vom Logging. <br><br>
@ -12344,6 +12366,7 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<a id="DbLog-attr-verbose4Devs"></a>
<li><b>verbose4Devs &lt;device1&gt;,&lt;device2&gt;,&lt;device..&gt; </b> <br><br>
<ul>
Mit verbose Level 4/5 werden nur Ausgaben bezüglich der in diesem Attribut aufgeführten Devices im Logfile
protokolliert. Ohne dieses Attribut werden mit verbose 4/5 Ausgaben aller relevanten Devices im Logfile protokolliert.