2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-25 16:05:19 +00:00

93_DbLog: contrib 5.7.0

git-svn-id: https://svn.fhem.de/fhem/trunk@27122 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2023-01-25 21:51:45 +00:00
parent b46442210b
commit 87a5f3a0c4

View File

@ -9002,6 +9002,8 @@ return;
<li>-: identical to "history"</li>
</ul>
</li>
<br>
<li>&lt;out&gt;<br>
A dummy parameter for FileLog compatibility. Setting by default to <code>-</code>
to check the output for plot-computing.<br>
@ -9014,48 +9016,81 @@ return;
<li>-: default</li>
</ul>
</li>
<br>
<li>&lt;from&gt; / &lt;to&gt;<br>
Used to select the data. Please use the following timeformat or
an initial substring of it:<br>
<ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
<ul>
<code>YYYY-MM-DD_HH24:MI:SS</code>
</ul>
</li>
<br>
<li>&lt;column_spec&gt;<br>
For each column_spec return a set of data separated by
a comment line on the current connection.<br>
<br>
Syntax: &lt;device&gt;:&lt;reading&gt;:&lt;default&gt;:&lt;fn&gt;:&lt;regexp&gt; <br>
<br>
<ul>
<li>&lt;device&gt;<br>
The name of the device. Case sensitive. Using a the joker "%" is supported.</li>
The name of the device. Case sensitive. Using a the joker "%" is supported.
</li>
<br>
<li>&lt;reading&gt;<br>
The reading of the given device to select. Case sensitive. Using a the joker "%" is supported.
</li>
<br>
<li>&lt;default&gt;<br>
no implemented yet
</li>
<br>
<li>&lt;fn&gt;
One of the following:
<ul>
<li>int<br>
Extract the integer at the beginning of the string. Used e.g.
for constructs like 10%</li>
for constructs like 10%
</li>
<br>
<li>int&lt;digit&gt;<br>
Extract the decimal digits including negative character and
decimal point at the beginning og the string. Used e.g.
for constructs like 15.7&deg;C</li>
for constructs like 15.7&deg;C
</li>
<br>
<li>delta-h / delta-d<br>
Return the delta of the values for a given hour or a given day.
Used if the column contains a counter, as is the case for the
KS300 rain column.</li>
KS300 rain column.
</li>
<br>
<li>delta-ts<br>
Replaced the original value with a measured value of seconds since
the last and the actual logentry.
</li>
</ul></li>
<br>
</ul>
</li>
<li>&lt;regexp&gt;<br>
The string is evaluated as a perl expression. The regexp is executed
before &lt;fn&gt; parameter.<br>
Note: The string/perl expression cannot contain spaces,
as the part after the space will be considered as the
next column_spec.<br>
<br>
<b>Keywords</b>
<li>$val is the current value returned from the Database.</li>
<li>$ts is the current timestamp returned from the Database.</li>
@ -9063,28 +9098,55 @@ return;
<li>This Logentry will not print out and not used in the following processing
if $val contains th keyword "ignore". </li>
</li>
</ul></li>
</ul>
</li>
</ul>
<br><br>
Examples:
<ul>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code></li>
<li><code>get myDbLog current ALL - - %:temperature</code></li><br>
<li>
<code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code>
</li>
<br>
<li><code>get myDbLog current ALL - - %:temperature</code><br>
you will get all actual readings "temperature" from all logged devices.
Be careful by using "history" as inputfile because a long execution time will be expected!
</li>
<br>
<li><code>get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1</code><br>
like from 10am until 08pm at 10.11.2012</li>
<li><code>get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature</code></li>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d</code></li>
like from 10am until 08pm at 10.11.2012
</li>
<br>
<li>
<code>get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature</code>
</li>
<br>
<li>
<code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d</code>
</li>
<br>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 MyFS20:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg</code><br>
return 1 for all occurance of on* (on|on-for-timer etc) and 0 for all off*</li>
return 1 for all occurance of on* (on|on-for-timer etc) and 0 for all off*
</li>
<br>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg</code><br>
Example of OWAD: value like this: <code>"A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"</code><br>
and output for port B is like this: <code>2012-11-20_10:23:54 66.647</code></li>
and output for port B is like this: <code>2012-11-20_10:23:54 66.647</code>
</li>
<br>
<li><code>get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/</code><br>
Setting up a "Counter of Uptime". The function delta-ts gets the seconds between the last and the
actual logentry. The keyword "hide" will hide the logentry of "on" because this time
is a "counter of Downtime"</li>
is a "counter of Downtime"
</li>
</ul>
</li>
@ -9102,17 +9164,27 @@ return;
<ul>
<li>&lt;name&gt;<br>
The name of the defined DbLog, like it is given in fhem.cfg.</li>
<br>
<li>&lt;in&gt;<br>
A dummy parameter for FileLog compatibility. Always set to <code>-</code></li>
<br>
<li>&lt;out&gt;<br>
A dummy parameter for FileLog compatibility. Set it to <code>webchart</code>
to use the charting related get function.
</li>
<br>
<li>&lt;from&gt; / &lt;to&gt;<br>
Used to select the data. Please use the following timeformat:<br>
<ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
<br>
<li>&lt;device&gt;<br>
A string which represents the device to query.</li>
<br>
<li>&lt;querytype&gt;<br>
A string which represents the method the query should use. Actually supported values are: <br>
<code>getreadings</code> to retrieve the possible readings for a given device<br>
@ -9128,20 +9200,33 @@ return;
<code>monthstats</code> to get statistics for a given value (yaxis) for a month.<br>
<code>yearstats</code> to get statistics for a given value (yaxis) for a year.<br>
</li>
<br>
<li>&lt;xaxis&gt;<br>
A string which represents the xaxis</li>
<br>
<li>&lt;yaxis&gt;<br>
A string which represents the yaxis</li>
<br>
<li>&lt;savename&gt;<br>
A string which represents the name a chart will be saved with</li>
<br>
<li>&lt;chartconfig&gt;<br>
A jsonstring which represents the chart to save</li>
<br>
<li>&lt;pagingstart&gt;<br>
An integer used to determine the start for the sql used for query 'getTableData'</li>
<br>
<li>&lt;paginglimit&gt;<br>
An integer used to set the limit for the sql used for query 'getTableData'</li>
<br>
</ul>
<br><br>
<b>Examples:</b>
<ul>
<li><code>get logdb - webchart "" "" "" getcharts</code><br>
@ -10692,6 +10777,7 @@ attr SMA_Energymeter DbLogValueFn
<li>-: identisch wie "history"</li>
</ul>
</li>
<br>
<li>&lt;out&gt;<br>
Ein Parameter um eine Kompatibilität zum Filelog herzustellen.
@ -10705,29 +10791,45 @@ attr SMA_Energymeter DbLogValueFn
<li>-: default</li>
</ul>
</li>
<br>
<li>&lt;from&gt; / &lt;to&gt;<br>
Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
Zeitformat oder ein Teilstring davon zu benutzen:<br>
<ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
<ul>
<code>YYYY-MM-DD_HH24:MI:SS</code>
</ul>
</li>
<br>
<li>&lt;column_spec&gt;<br>
Für jede column_spec Gruppe wird ein Datenset zurückgegeben welches
durch einen Kommentar getrennt wird. Dieser Kommentar repräsentiert
die column_spec. <br>
<br>
Syntax: &lt;device&gt;:&lt;reading&gt;:&lt;default&gt;:&lt;fn&gt;:&lt;regexp&gt; <br>
<br>
<ul>
<li>&lt;device&gt;<br>
Der Name des Devices. Achtung: Gross/Kleinschreibung beachten!<br>
Es kann ein % als Jokerzeichen angegeben werden.</li>
Es kann ein % als Jokerzeichen angegeben werden.
</li>
<br>
<li>&lt;reading&gt;<br>
Das Reading des angegebenen Devices zur Datenselektion.<br>
Es kann ein % als Jokerzeichen angegeben werden.<br>
Achtung: Gross/Kleinschreibung beachten!
</li>
<br>
<li>&lt;default&gt;<br>
Zur Zeit noch nicht implementiert.
</li>
<br>
<li>&lt;fn&gt;
Angabe einer speziellen Funktion:
<ul>
@ -10750,7 +10852,10 @@ attr SMA_Energymeter DbLogValueFn
Ermittelt die vergangene Zeit zwischen dem letzten und dem aktuellen Logeintrag
in Sekunden und ersetzt damit den originalen Wert.
</li>
</ul></li>
</ul>
</li>
<br>
<li>&lt;regexp&gt;<br>
Diese Zeichenkette wird als Perl Befehl ausgewertet.
Die regexp wird vor dem angegebenen &lt;fn&gt; Parameter ausgeführt.
@ -10759,8 +10864,10 @@ attr SMA_Energymeter DbLogValueFn
enthalten da diese sonst als &lt;column_spec&gt; Trennung
interpretiert werden und alles nach dem Leerzeichen als neue
&lt;column_spec&gt; gesehen wird. <br>
<br>
<b>Schlüsselwörter</b>
<li>$val ist der aktuelle Wert die die Datenbank für ein Device/Reading ausgibt.</li>
<li>$ts ist der aktuelle Timestamp des Logeintrages.</li>
<li>Wird als $val das Schlüsselwort "hide" zurückgegeben, so wird dieser Logeintrag nicht
@ -10768,36 +10875,51 @@ attr SMA_Energymeter DbLogValueFn
<li>Wird als $val das Schlüsselwort "ignore" zurückgegeben, so wird dieser Logeintrag
nicht für eine Folgeberechnung verwendet.</li>
</li>
</ul></li>
</ul>
</li>
</ul>
<br><br>
<b>Beispiele:</b>
<ul>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code></li>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code></li><br>
<li><code>get myDbLog current ALL - - %:temperature</code></li><br>
<li><code>get myDbLog current ALL - - %:temperature</code> <br>
Damit erhält man alle aktuellen Readings "temperature" von allen in der DB geloggten Devices.
Achtung: bei Nutzung von Jokerzeichen auf die history-Tabelle kann man sein FHEM aufgrund langer Laufzeit lahmlegen!
</li>
<br>
<li><code>get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1</code><br>
gibt Daten aus von 10Uhr bis 20Uhr am 10.11.2012</li>
gibt Daten aus von 10Uhr bis 20Uhr am 10.11.2012
</li>
<br>
<li><code>get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature</code></li>
<li><code>get myDbLog - all 2012-11-10 2012-11-20 KS300:temperature</code>
</li>
<br>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d</code></li>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature KS300:rain::delta-h KS300:rain::delta-d</code>
</li>
<br>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 MyFS20:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg</code><br>
gibt 1 zurück für alle Ausprägungen von on* (on|on-for-timer etc) und 0 für alle off*</li>
gibt 1 zurück für alle Ausprägungen von on* (on|on-for-timer etc) und 0 für alle off*
</li>
<br>
<li><code>get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg</code><br>
Beispiel von OWAD: Ein Wert wie z.B.: <code>"A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"</code><br>
und die Ausgabe ist für das Reading B folgende: <code>2012-11-20_10:23:54 66.647</code></li>
und die Ausgabe ist für das Reading B folgende: <code>2012-11-20_10:23:54 66.647</code>
</li>
<br>
<li><code>get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/</code><br>
Realisierung eines Betriebsstundenzählers. Durch delta-ts wird die Zeit in Sek zwischen den Log-
Einträgen ermittelt. Die Zeiten werden bei den on-Meldungen nicht ausgegeben welche einer Abschaltzeit
entsprechen würden.</li>
entsprechen würden.
</li>
<br>
</ul>
</li>
</ul>
@ -10814,24 +10936,36 @@ attr SMA_Energymeter DbLogValueFn
<ul>
<li>&lt;name&gt;<br>
Der Name des definierten DbLogs, so wie er in der fhem.cfg angegeben wurde.</li>
Der Name des definierten DbLogs, so wie er in der fhem.cfg angegeben wurde.
</li>
<br>
<li>&lt;in&gt;<br>
Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
Dieser Parameter ist immer auf <code>-</code> zu setzen.</li>
Dieser Parameter ist immer auf <code>-</code> zu setzen.
</li>
<br>
<li>&lt;out&gt;<br>
Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
Dieser Parameter ist auf <code>webchart</code> zu setzen um die Charting Get Funktion zu nutzen.
</li>
<br>
<li>&lt;from&gt; / &lt;to&gt;<br>
Wird benutzt um den Zeitraum der Daten einzugrenzen. Es ist das folgende
Zeitformat zu benutzen:<br>
<ul><code>YYYY-MM-DD_HH24:MI:SS</code></ul></li>
<ul>
<code>YYYY-MM-DD_HH24:MI:SS</code>
</ul>
</li>
<br>
<li>&lt;device&gt;<br>
Ein String, der das abzufragende Device darstellt.</li>
Ein String, der das abzufragende Device darstellt.
</li>
<br>
<li>&lt;querytype&gt;<br>
Ein String, der die zu verwendende Abfragemethode darstellt. Zur Zeit unterstützte Werte sind: <br>
@ -10848,26 +10982,39 @@ attr SMA_Energymeter DbLogValueFn
<code>monthstats</code> um Statistiken für einen Wert (yaxis) für einen Monat abzufragen.<br>
<code>yearstats</code> um Statistiken für einen Wert (yaxis) für ein Jahr abzufragen.<br>
</li>
<br>
<li>&lt;xaxis&gt;<br>
Ein String, der die X-Achse repräsentiert</li>
Ein String, der die X-Achse repräsentiert
</li>
<br>
<li>&lt;yaxis&gt;<br>
Ein String, der die Y-Achse repräsentiert</li>
Ein String, der die Y-Achse repräsentiert
</li>
<br>
<li>&lt;savename&gt;<br>
Ein String, unter dem ein Chart in der Datenbank gespeichert werden soll</li>
Ein String, unter dem ein Chart in der Datenbank gespeichert werden soll
</li>
<br>
<li>&lt;chartconfig&gt;<br>
Ein jsonstring der den zu speichernden Chart repräsentiert</li>
Ein jsonstring der den zu speichernden Chart repräsentiert
</li>
<br>
<li>&lt;pagingstart&gt;<br>
Ein Integer um den Startwert für die Abfrage 'getTableData' festzulegen</li>
Ein Integer um den Startwert für die Abfrage 'getTableData' festzulegen
</li>
<br>
<li>&lt;paginglimit&gt;<br>
Ein Integer um den Limitwert für die Abfrage 'getTableData' festzulegen</li>
Ein Integer um den Limitwert für die Abfrage 'getTableData' festzulegen
</li>
<br>
</ul>
<br><br>
<br>
<b>Beispiele:</b>
<ul>