93_DbRep: contrib 8.29.1
git-svn-id: https://svn.fhem.de/fhem/trunk@20497 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
##########################################################################################################
|
||||
# $Id: 93_DbRep.pm 20379 2019-10-18 20:49:04Z DS_Starter $
|
||||
# $Id: 93_DbRep.pm 20481 2019-11-09 07:14:24Z DS_Starter $
|
||||
##########################################################################################################
|
||||
# 93_DbRep.pm
|
||||
#
|
||||
@@ -58,7 +58,8 @@ no if $] >= 5.017011, warnings => 'experimental::smartmatch';
|
||||
|
||||
# Version History intern
|
||||
our %DbRep_vNotesIntern = (
|
||||
"8.29.0" => "08.11.2019 add option FullDay for timeDiffToNow and timeOlderThan ",
|
||||
"8.29.1" => "11.11.2019 commandref revised, implement central \$today variable ",
|
||||
"8.29.0" => "08.11.2019 add option FullDay for timeDiffToNow and timeOlderThan, Forum: https://forum.fhem.de/index.php/topic,53584.msg991139.html#msg991139 ",
|
||||
"8.28.2" => "18.10.2019 change SQL selection in deldoublets_DoParse due to Incompatible change of MySQL 8.0.13, Forum: https://forum.fhem.de/index.php/topic,104593.msg985007.html#msg985007 ",
|
||||
"8.28.1" => "09.10.2019 fix warnings line 5173 ",
|
||||
"8.28.0" => "30.09.2019 seqDoubletsVariance - separate specification of positive and negative variance possible, Forum: https://forum.fhem.de/index.php/topic,53584.msg959963.html#msg959963 ",
|
||||
@@ -169,6 +170,8 @@ our %DbRep_vNotesIntern = (
|
||||
|
||||
# Version History extern:
|
||||
our %DbRep_vNotesExtern = (
|
||||
"8.29.0" => "08.11.2019 add option FullDay for timeDiffToNow and timeOlderThan, Forum: https://forum.fhem.de/index.php/topic,53584.msg991139.html#msg991139 ",
|
||||
"8.28.0" => "30.09.2019 seqDoubletsVariance - separate specification of positive and negative variance possible, Forum: https://forum.fhem.de/index.php/topic,53584.msg959963.html#msg959963 ",
|
||||
"8.25.0" => "29.08.2019 If a list of devices in attribute \"device\" contains a SQL wildcard (\%), this wildcard is now "
|
||||
."dissolved into separate devices if they are still existing in your FHEM configuration. "
|
||||
."Please see <a href=\"https://forum.fhem.de/index.php/topic,101756.0.html\">this Forum Thread</a> "
|
||||
@@ -323,8 +326,10 @@ our %DbRep_vHintsExt_de = (
|
||||
"1" => "Hilfreiche Hinweise zu DbRep im <a href=\"https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Praxisbeispiele_.2F_Hinweise_und_L.C3.B6sungsans.C3.A4tze_f.C3.BCr_verschiedene_Aufgaben\">FHEM-Wiki</a>."
|
||||
);
|
||||
|
||||
# foreward declaration
|
||||
sub DbRep_Main($$;$);
|
||||
sub DbLog_cutCol($$$$$$$); # DbLog-Funktion nutzen um Daten auf maximale Länge beschneiden
|
||||
our $today; # zentral von FHEM bereitgestellt (z.B. 2019-11-11)
|
||||
|
||||
# Standard Feldbreiten falls noch nicht getInitData ausgeführt
|
||||
my %dbrep_col = ("DEVICE" => 64,
|
||||
@@ -2232,7 +2237,7 @@ sub DbRep_createTimeArray($$$) {
|
||||
$wdadd = 172800 if($wd eq "Sa"); # wenn Start am "Sa" dann nächste Grenze +2 Tage
|
||||
$wdadd = 86400 if($wd eq "So"); # wenn Start am "So" dann nächste Grenze +1 Tage
|
||||
|
||||
Log3 ($name, 5, "DbRep $name - weekday of start for selection: $wd -> wdadd: $wdadd") if($wdadd);
|
||||
Log3 ($name, 5, "DbRep $name - weekday start for selection: $wd -> wdadd: $wdadd") if($wdadd);
|
||||
|
||||
my $aggsec;
|
||||
if ($aggregation eq "hour") {
|
||||
@@ -10835,12 +10840,12 @@ sub DbRep_setVersionInfo($) {
|
||||
if($modules{$type}{META}{x_prereqs_src} && !$hash->{HELPER}{MODMETAABSENT}) {
|
||||
# META-Daten sind vorhanden
|
||||
$modules{$type}{META}{version} = "v".$v; # Version aus META.json überschreiben, Anzeige mit {Dumper $modules{SMAPortal}{META}}
|
||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 93_DbRep.pm 20379 2019-10-18 20:49:04Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
if($modules{$type}{META}{x_version}) { # {x_version} ( nur gesetzt wenn $Id: 93_DbRep.pm 20481 2019-11-09 07:14:24Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
$modules{$type}{META}{x_version} =~ s/1.1.1/$v/g;
|
||||
} else {
|
||||
$modules{$type}{META}{x_version} = $v;
|
||||
}
|
||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 93_DbRep.pm 20379 2019-10-18 20:49:04Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
return $@ unless (FHEM::Meta::SetInternals($hash)); # FVERSION wird gesetzt ( nur gesetzt wenn $Id: 93_DbRep.pm 20481 2019-11-09 07:14:24Z DS_Starter $ im Kopf komplett! vorhanden )
|
||||
if(__PACKAGE__ eq "FHEM::$type" || __PACKAGE__ eq $type) {
|
||||
# es wird mit Packages gearbeitet -> Perl übliche Modulversion setzen
|
||||
# mit {<Modul>->VERSION()} im FHEMWEB kann Modulversion abgefragt werden
|
||||
@@ -11237,7 +11242,8 @@ return;
|
||||
|
||||
<b>Examples: </b><br>
|
||||
my $ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00",""); <br>
|
||||
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")}
|
||||
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")} <br>
|
||||
attr <name> userReadings todayPowerIn {DbReadingsVal("Rep.LogDB1","SMA_Energymeter:Bezug_Wirkleistung_Zaehler",$today."_00:00:00",0)}
|
||||
<br><br>
|
||||
|
||||
The command syntax for the FHEM command is: <br><br>
|
||||
@@ -13395,8 +13401,10 @@ sub bdump {
|
||||
|
||||
<a name="timeDiffToNow"></a>
|
||||
<li><b>timeDiffToNow </b> - the <b>begin time </b> of data selection will be set to the timestamp <b>"<current time> -
|
||||
<timeDiffToNow>"</b> dynamically (e.g. if set to 86400, the last 24 hours are considered by data
|
||||
selection). The time period will be calculated dynamically at execution time.
|
||||
<timeDiffToNow>"</b> dynamically. The time period will be calculated dynamically at
|
||||
execution time. Optional can with the additional entry "FullDay" the selection start time
|
||||
and the selection end time be expanded to the begin / end of the involved days
|
||||
(take only effect if adjusted time difference is >= 1 day).
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
@@ -13413,6 +13421,8 @@ sub bdump {
|
||||
# the start time is set to "current time - 1 year and 2,5 hours" <br>
|
||||
<code>attr <name> timeDiffToNow y:1.5</code> <br>
|
||||
# the start time is set to "current time - 1.5 years" <br>
|
||||
<code>attr <name> timeDiffToNow d:8 FullDay </code> <br>
|
||||
# the start time is set to "current time - 8 days", the selection time period is expanded to the begin / end of the involved days <br>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
@@ -13424,9 +13434,10 @@ sub bdump {
|
||||
<a name="timeOlderThan"></a>
|
||||
<li><b>timeOlderThan </b> - the <b>end time</b> of data selection will be set to the timestamp <b>"<aktuelle Zeit> -
|
||||
<timeOlderThan>"</b> dynamically. Always the datasets up to timestamp
|
||||
"<current time> - <timeOlderThan>" will be considered (e.g. if set to
|
||||
86400, all datasets older than one day are considered). The time period will be calculated dynamically at
|
||||
execution time.
|
||||
"<current time> - <timeOlderThan>" will be considered. The time period will be calculated dynamically at
|
||||
execution time. Optional can with the additional entry "FullDay" the selection start time
|
||||
and the selection end time be expanded to the begin / end of the involved days
|
||||
(take only effect if adjusted time difference is >= 1 day).
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
@@ -13443,6 +13454,9 @@ sub bdump {
|
||||
# the selection end time is set to "current time - 1 year and 2,5 hours" <br>
|
||||
<code>attr <name> timeOlderThan y:1.5</code> <br>
|
||||
# the selection end time is set to "current time - 1.5 years" <br>
|
||||
<code>attr <name> timeOlderThan d:8 FullDay </code> <br>
|
||||
# the end time is set to "current time - 8 days", the selection time period is expanded to the begin / end of the involved days <br>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
@@ -13679,7 +13693,8 @@ sub bdump {
|
||||
|
||||
<b>Beispiele: </b><br>
|
||||
$ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00",""); <br>
|
||||
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")}
|
||||
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")} <br>
|
||||
attr <name> userReadings todayPowerIn {DbReadingsVal("Rep.LogDB1","SMA_Energymeter:Bezug_Wirkleistung_Zaehler",$today."_00:00:00",0)}
|
||||
<br><br>
|
||||
|
||||
Die Befehlssyntax als FHEM Kommando ist: <br><br>
|
||||
@@ -15868,13 +15883,13 @@ sub bdump {
|
||||
|
||||
<a name="timeDiffToNow"></a>
|
||||
<li><b>timeDiffToNow </b> - der <b>Selektionsbeginn</b> wird auf den Zeitpunkt <b>"<aktuelle Zeit> - <timeDiffToNow>"</b>
|
||||
gesetzt. Die Timestampermittlung erfolgt dynamisch zum Ausführungszeitpunkt. Optional kann mit der Zusatzangabe
|
||||
"FullDay" der Selektionsbeginn und das Selektionsende auf Beginn / Ende des jeweiligen Tages erweitert werden
|
||||
(wirkt nur wenn Zeitdifferenz >= 1 Tag).
|
||||
gesetzt. Die Timestampermittlung erfolgt dynamisch zum Ausführungszeitpunkt. Optional kann mit
|
||||
der Zusatzangabe "FullDay" der Selektionsbeginn und das Selektionsende auf Beginn / Ende der
|
||||
jeweiligen Selektionstage erweitert werden (wirkt nur wenn eingestellte Zeitdifferenz ist >= 1 Tag).
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<b>Eingabeformat Beispiel:</b> <br>
|
||||
<b>Eingabeformat Beispiele:</b> <br>
|
||||
<code>attr <name> timeDiffToNow 86400 </code> <br>
|
||||
# die Startzeit wird auf "aktuelle Zeit - 86400 Sekunden" gesetzt <br>
|
||||
<code>attr <name> timeDiffToNow d:2 h:3 m:2 s:10 </code> <br>
|
||||
@@ -15888,7 +15903,7 @@ sub bdump {
|
||||
<code>attr <name> timeDiffToNow y:1.5</code> <br>
|
||||
# die Startzeit wird auf "aktuelle Zeit - 1,5 Jahre gesetzt <br>
|
||||
<code>attr <name> timeDiffToNow d:8 FullDay </code> <br>
|
||||
# die Startzeit wird auf "aktuelle Zeit - 8 Tage gesetzt, der Selektionszeitraum wird auf Beginn / Ende des jeweiligen Tages erweitert <br>
|
||||
# die Startzeit wird auf "aktuelle Zeit - 8 Tage gesetzt, der Selektionszeitraum wird auf Beginn / Ende der beteiligten Tage erweitert <br>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
@@ -15902,12 +15917,12 @@ sub bdump {
|
||||
gesetzt. Dadurch werden alle Datensätze bis zu dem Zeitpunkt "<aktuelle
|
||||
Zeit> - <timeOlderThan>" berücksichtigt. Die Timestampermittlung erfolgt
|
||||
dynamisch zum Ausführungszeitpunkt. Optional kann mit der Zusatzangabe
|
||||
"FullDay" der Selektionsbeginn und das Selektionsende auf Beginn / Ende des jeweiligen Tages erweitert werden
|
||||
(wirkt nur wenn Zeitdifferenz >= 1 Tag).
|
||||
"FullDay" der Selektionsbeginn und das Selektionsende auf Beginn / Ende der jeweiligen
|
||||
Selektionstage erweitert werden (wirkt nur wenn eingestellte Zeitdifferenz ist >= 1 Tag).
|
||||
<br><br>
|
||||
|
||||
<ul>
|
||||
<b>Eingabeformat Beispiel:</b> <br>
|
||||
<b>Eingabeformat Beispiele:</b> <br>
|
||||
<code>attr <name> timeOlderThan 86400</code> <br>
|
||||
# das Selektionsende wird auf "aktuelle Zeit - 86400 Sekunden" gesetzt <br>
|
||||
<code>attr <name> timeOlderThan d:2 h:3 m:2 s:10</code> <br>
|
||||
@@ -15921,7 +15936,7 @@ sub bdump {
|
||||
<code>attr <name> timeOlderThan y:1.5</code> <br>
|
||||
# das Selektionsende wird auf "aktuelle Zeit - 1,5 Jahre gesetzt <br>
|
||||
<code>attr <name> timeOlderThan d:8 FullDay </code> <br>
|
||||
# die Startzeit wird auf "aktuelle Zeit - 8 Tage gesetzt, der Selektionszeitraum wird auf Beginn / Ende des jeweiligen Tages erweitert <br>
|
||||
# das Selektionsende wird auf "aktuelle Zeit - 8 Tage gesetzt, der Selektionszeitraum wird auf Beginn / Ende der beteiligten Tage erweitert <br>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
Reference in New Issue
Block a user