mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
93_DbLog: V2.17.1, optional UTF-8 support for MySQL database (additional parameter in db.conf neccesary for activation)
git-svn-id: https://svn.fhem.de/fhem/trunk@14548 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ae606b2e52
commit
3e7f9c492f
@ -1,5 +1,7 @@
|
||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||
# Do not insert empty lines here, update check depends on it.
|
||||
- feature: 93_DbLog: V2.17.1, optional UTF-8 support for MySQL database
|
||||
(additional parameter in db.conf neccesary for activation)
|
||||
- feature: YAMAHA_AVR: new set commands / readings to control HDMI outputs
|
||||
(only for models with two HDMI outputs)
|
||||
- featere: exclude_from_update can check the source too (Forum #73275)
|
||||
|
@ -10,12 +10,14 @@
|
||||
#
|
||||
# reduceLog() created by Claudiu Schuster (rapster)
|
||||
#
|
||||
# redesigned 2017 by DS_Starter with credits by
|
||||
# redesigned 2016/2017 by DS_Starter with credits by
|
||||
# JoeAllb, DeeSpe
|
||||
#
|
||||
############################################################################################################################################
|
||||
# Versions History done by DS_Starter & DeeSPe:
|
||||
#
|
||||
# 2.17.1 17.06.2017 fix log-entries "utf8 enabled" if SVG's called, commandref revised, enable UTF8 for DbLog_get
|
||||
# 2.17.0 15.06.2017 enable UTF8 for MySQL (entry in configuration file necessary)
|
||||
# 2.16.11 03.06.2017 execmemcache changed for SQLite avoid logging if deleteOldDaysNbl or reduceLogNbL is running
|
||||
# 2.16.10 15.05.2017 commandref revised
|
||||
# 2.16.9.1 11.05.2017 set userCommand changed -
|
||||
@ -128,8 +130,9 @@ eval "use DBI;1" or my $DbLogMMDBI = "DBI";
|
||||
use Data::Dumper;
|
||||
use Blocking;
|
||||
use Time::HiRes qw(gettimeofday tv_interval);
|
||||
use Encode qw(encode_utf8);
|
||||
|
||||
my $DbLogVersion = "2.16.11";
|
||||
my $DbLogVersion = "2.17.1";
|
||||
|
||||
my %columns = ("DEVICE" => 64,
|
||||
"TYPE" => 64,
|
||||
@ -230,7 +233,7 @@ sub DbLog_Define($@)
|
||||
$hash->{cache}{index} = 0;
|
||||
|
||||
# read configuration data
|
||||
my $ret = _DbLog_readCfg($hash);
|
||||
my $ret = DbLog_readCfg($hash);
|
||||
return $ret if ($ret); # return on error while reading configuration
|
||||
|
||||
# set used COLUMNS
|
||||
@ -490,7 +493,7 @@ sub DbLog_Set($@) {
|
||||
$dbh->commit() if(!$dbh->{AutoCommit});
|
||||
$dbh->disconnect();
|
||||
}
|
||||
$ret = _DbLog_readCfg($hash);
|
||||
$ret = DbLog_readCfg($hash);
|
||||
return $ret if $ret;
|
||||
DbLog_ConnectPush($hash);
|
||||
$ret = "Rereadcfg executed.";
|
||||
@ -1653,6 +1656,7 @@ sub DbLog_PushAsync(@) {
|
||||
my $dbpassword = $attr{"sec$name"}{secret};
|
||||
my $DbLogType = AttrVal($name, "DbLogType", "History");
|
||||
my $supk = AttrVal($name, "noSupportPK", 0);
|
||||
my $utf8 = defined($hash->{UTF8})?$hash->{UTF8}:0;
|
||||
my $errorh = 0;
|
||||
my $errorc = 0;
|
||||
my $error = 0;
|
||||
@ -1666,7 +1670,7 @@ sub DbLog_PushAsync(@) {
|
||||
# Background-Startzeit
|
||||
my $bst = [gettimeofday];
|
||||
|
||||
eval {$dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 1 });};
|
||||
eval {$dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 1, mysql_enable_utf8 => $utf8 });};
|
||||
|
||||
if ($@) {
|
||||
$error = encode_base64($@,"");
|
||||
@ -2049,7 +2053,7 @@ sub DbLog_implode_datetime($$$$$$) {
|
||||
###################################################################################
|
||||
# Verbindungen zur DB aufbauen
|
||||
###################################################################################
|
||||
sub _DbLog_readCfg($){
|
||||
sub DbLog_readCfg($){
|
||||
my ($hash)= @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
@ -2082,6 +2086,11 @@ sub _DbLog_readCfg($){
|
||||
Log3 $hash->{NAME}, 3, "Only Mysql, Postgresql, Oracle, SQLite are fully supported.";
|
||||
Log3 $hash->{NAME}, 3, "It may cause SQL-Erros during generating plots.";
|
||||
}
|
||||
|
||||
if($hash->{DBMODEL} eq "MYSQL") {
|
||||
$hash->{UTF8} = defined($dbconfig{utf8})?$dbconfig{utf8}:0;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2092,9 +2101,10 @@ sub DbLog_ConnectPush($;$$) {
|
||||
my $dbconn = $hash->{dbconn};
|
||||
my $dbuser = $hash->{dbuser};
|
||||
my $dbpassword = $attr{"sec$name"}{secret};
|
||||
my $utf8 = defined($hash->{UTF8})?$hash->{UTF8}:0;
|
||||
|
||||
Log3 $hash->{NAME}, 3, "DbLog $name: Creating Push-Handle to database $dbconn with user $dbuser" if(!$get);
|
||||
my $dbhp = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0 });
|
||||
my $dbhp = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, mysql_enable_utf8 => $utf8 });
|
||||
|
||||
if(!$dbhp) {
|
||||
RemoveInternalTimer($hash, "DbLog_ConnectPush");
|
||||
@ -2106,6 +2116,7 @@ sub DbLog_ConnectPush($;$$) {
|
||||
}
|
||||
|
||||
Log3 $hash->{NAME}, 3, "DbLog $name: Push-Handle to db $dbconn created" if(!$get);
|
||||
Log3 $hash->{NAME}, 3, "DbLog $name: UTF8 support enabled" if($utf8 && $hash->{DBMODEL} eq "MYSQL" && !$get);
|
||||
readingsSingleUpdate($hash, 'state', 'connected', 1) if(!$get);
|
||||
|
||||
$hash->{DBHP}= $dbhp;
|
||||
@ -2127,9 +2138,10 @@ sub DbLog_ConnectNewDBH($) {
|
||||
my $dbconn = $hash->{dbconn};
|
||||
my $dbuser = $hash->{dbuser};
|
||||
my $dbpassword = $attr{"sec$name"}{secret};
|
||||
my $utf8 = defined($hash->{UTF8})?$hash->{UTF8}:0;
|
||||
my $dbh;
|
||||
|
||||
eval { $dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0 }); };
|
||||
eval { $dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, mysql_enable_utf8 => $utf8 }); };
|
||||
|
||||
if($@) {
|
||||
Log3($name, 2, "DbLog $name: - $@");
|
||||
@ -2191,11 +2203,10 @@ sub DbLog_ExecSQL1($$$)
|
||||
# outfile: [-|ALL|INT|WEBCHART]
|
||||
#
|
||||
################################################################
|
||||
sub
|
||||
DbLog_Get($@)
|
||||
{
|
||||
sub DbLog_Get($@) {
|
||||
my ($hash, @a) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
my $utf8 = defined($hash->{UTF8})?$hash->{UTF8}:0;
|
||||
my $dbh;
|
||||
|
||||
return dbReadings($hash,@a) if $a[1] =~ m/^Readings/;
|
||||
@ -2701,6 +2712,8 @@ DbLog_Get($@)
|
||||
return @ReturnArray;
|
||||
|
||||
} else {
|
||||
$retval = Encode::encode_utf8($retval) if($utf8);
|
||||
# Log3 $name, 5, "DbLog $name -> Result of get:\n$retval";
|
||||
return $retval;
|
||||
}
|
||||
}
|
||||
@ -4035,8 +4048,50 @@ sub checkUsePK ($$){
|
||||
<br><br>
|
||||
|
||||
Log events to a database. The database connection is defined in
|
||||
<code><configfilename></code> (see sample configuration file
|
||||
<code>contrib/dblog/db.conf</code>). The configuration is stored in a separate file
|
||||
<code><configfilename></code>
|
||||
|
||||
In <code>contrib/dblog</code> an example configuration and scripts to create needed tables in the
|
||||
different databases are provided. <br><br>
|
||||
|
||||
The <b>configuration file</b> should be copied e.g. to /opt/fhem and has the following structure you have to customize
|
||||
suitable to your conditions (decomment the appropriate raws and adjust it): <br><br>
|
||||
|
||||
<pre>
|
||||
####################################################################################
|
||||
# database configuration file
|
||||
#
|
||||
## for MySQL
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "mysql:database=fhem;host=db;port=3306",
|
||||
# user => "fhemuser",
|
||||
# password => "fhempassword",
|
||||
# # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
|
||||
# utf8 => 1,
|
||||
#);
|
||||
####################################################################################
|
||||
#
|
||||
## for PostgreSQL
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "Pg:database=fhem;host=localhost",
|
||||
# user => "fhemuser",
|
||||
# password => "fhempassword"
|
||||
#);
|
||||
####################################################################################
|
||||
#
|
||||
## for SQLite (username and password stay empty for SQLite)
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "SQLite:dbname=/opt/fhem/fhem.db",
|
||||
# user => "",
|
||||
# password => ""
|
||||
#);
|
||||
####################################################################################
|
||||
</pre>
|
||||
<br>
|
||||
|
||||
The configuration is stored in a separate file
|
||||
to avoid storing the password in the main configuration file and to have it
|
||||
visible in the output of the <a href="../docs/commandref.html#list">list</a> command.
|
||||
<br><br>
|
||||
@ -4303,7 +4358,7 @@ sub checkUsePK ($$){
|
||||
<li><code>get myDbLog - - 2012-11-10 2012-11-20 KS300:temperature</code></li>
|
||||
<li><code>get myDbLog current ALL - - %:temperature</code></li><br>
|
||||
you will get all actual readings "temperature" from all logged devices.
|
||||
Be carful by using "history" as inputfile because a long execution time will be expected!
|
||||
Be careful by using "history" as inputfile because a long execution time will be expected!
|
||||
<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>
|
||||
@ -4766,9 +4821,50 @@ sub checkUsePK ($$){
|
||||
<br><br>
|
||||
|
||||
Speichert Events in eine Datenbank. Die Datenbankverbindungsparameter werden
|
||||
definiert in <code><configfilename></code>. (Vergleiche
|
||||
Beipspielkonfigurationsdatei in <code>contrib/dblog/db.conf</code>).<br>
|
||||
Die Konfiguration ist in einer sparaten Datei abgelegt um das Datenbankpasswort
|
||||
definiert in <code><configfilename></code>. <br>
|
||||
|
||||
In <code>contrib/dblog</code> sind eine Beispielkonfiguation und Scripts zum Anlegen der benötigten Tabellen
|
||||
der verschiedenen Datenbanktypen bereitgestellt. <br><br>
|
||||
|
||||
Die <b>Konfigurationsdatei</b> wird z.B. nach /opt/fhem kopiert und hat folgenden Aufbau, den man an seine Umgebung
|
||||
anpassen muß (entsprechende Zeilen entkommentieren und anpassen): <br><br>
|
||||
|
||||
<pre>
|
||||
####################################################################################
|
||||
# database configuration file
|
||||
#
|
||||
## for MySQL
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "mysql:database=fhem;host=db;port=3306",
|
||||
# user => "fhemuser",
|
||||
# password => "fhempassword",
|
||||
# # optional enable(1) / disable(0) UTF-8 support (at least V 4.042 is necessary)
|
||||
# utf8 => 1,
|
||||
#);
|
||||
####################################################################################
|
||||
#
|
||||
## for PostgreSQL
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "Pg:database=fhem;host=localhost",
|
||||
# user => "fhemuser",
|
||||
# password => "fhempassword"
|
||||
#);
|
||||
####################################################################################
|
||||
#
|
||||
## for SQLite (username and password stay empty for SQLite)
|
||||
####################################################################################
|
||||
#%dbconfig= (
|
||||
# connection => "SQLite:dbname=/opt/fhem/fhem.db",
|
||||
# user => "",
|
||||
# password => ""
|
||||
#);
|
||||
####################################################################################
|
||||
</pre>
|
||||
<br>
|
||||
|
||||
Die Konfiguration ist in einer sparaten Datei abgelegt um das Datenbankpasswort
|
||||
nicht in Klartext in der FHEM-Haupt-Konfigurationsdatei speichern zu müssen.
|
||||
Ansonsten wäre es mittels des <a href="../docs/commandref.html#list">list</a>
|
||||
Befehls einfach auslesbar.
|
||||
@ -4967,7 +5063,7 @@ sub checkUsePK ($$){
|
||||
<to> <column_spec> </code>
|
||||
<br><br>
|
||||
Liesst Daten aus der Datenbank. Wird durch die Frontends benutzt um Plots
|
||||
zu generieren ohne selbst auf die Datenank zugreifen zu mössen.
|
||||
zu generieren ohne selbst auf die Datenank zugreifen zu müssen.
|
||||
<br>
|
||||
<ul>
|
||||
<li><in><br>
|
||||
@ -5040,19 +5136,21 @@ sub checkUsePK ($$){
|
||||
</li>
|
||||
</ul></li>
|
||||
<li><regexp><br>
|
||||
Diese Zeichenkette wird als Perl Befehl ausgewertet. Die regexp wird vor dem angegebenen <fn> Parameter ausgeföhrt.
|
||||
Diese Zeichenkette wird als Perl Befehl ausgewertet.
|
||||
Die regexp wird vor dem angegebenen <fn> Parameter ausgeführt.
|
||||
<br>
|
||||
Bitte zur Beachtung: Diese Zeichenkette darf keine Leerzeichen
|
||||
enthalten da diese sonst als <column_spec> Trennung
|
||||
interpretiert werden und alles nach dem Leerzeichen als neue
|
||||
<column_spec> gesehen wird.<br>
|
||||
<b>Schlüsselwörter</b>
|
||||
|
||||
<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
|
||||
ausgegeben, trotzdem aber för die Zeitraumberechnung verwendet.</li>
|
||||
ausgegeben, trotzdem aber für die Zeitraumberechnung verwendet.</li>
|
||||
<li>Wird als $val das Schlüsselwort "ignore" zurückgegeben, so wird dieser Logeintrag
|
||||
nicht för eine Folgeberechnung verwendet.</li>
|
||||
nicht für eine Folgeberechnung verwendet.</li>
|
||||
</li>
|
||||
</ul></li>
|
||||
|
||||
@ -5061,22 +5159,29 @@ sub checkUsePK ($$){
|
||||
<b>Beispiele:</b>
|
||||
<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 current ALL - - %:temperature</code></li><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><code>get myDbLog - - 2012-11-10_10 2012-11-10_20 KS300:temperature::int1</code><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>
|
||||
<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>
|
||||
<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>
|
||||
<li><code>get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data:::$val=~s/.*B:\s([-\.\d]+).*/$1/eg</code><br>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
</ul>
|
||||
<br><br>
|
||||
</ul>
|
||||
@ -5092,20 +5197,25 @@ sub checkUsePK ($$){
|
||||
<ul>
|
||||
<li><name><br>
|
||||
Der Name des definierten DbLogs, so wie er in der fhem.cfg angegeben wurde.</li>
|
||||
<li><in><br>
|
||||
|
||||
<li><in><br>
|
||||
Ein Dummy Parameter um eine Kompatibilität zum Filelog herzustellen.
|
||||
Dieser Parameter ist immer auf <code>-</code> zu setzen.</li>
|
||||
<li><out><br>
|
||||
|
||||
<li><out><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>
|
||||
<li><from> / <to><br>
|
||||
|
||||
<li><from> / <to><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>
|
||||
<li><device><br>
|
||||
|
||||
<li><device><br>
|
||||
Ein String, der das abzufragende Device darstellt.</li>
|
||||
<li><querytype><br>
|
||||
|
||||
<li><querytype><br>
|
||||
Ein String, der die zu verwendende Abfragemethode darstellt. Zur Zeit unterstützte Werte sind: <br>
|
||||
<code>getreadings</code> um für ein bestimmtes device alle Readings zu erhalten<br>
|
||||
<code>getdevices</code> um alle verfügbaren devices zu erhalten<br>
|
||||
@ -5120,17 +5230,23 @@ sub checkUsePK ($$){
|
||||
<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>
|
||||
<li><xaxis><br>
|
||||
|
||||
<li><xaxis><br>
|
||||
Ein String, der die X-Achse repräsentiert</li>
|
||||
<li><yaxis><br>
|
||||
|
||||
<li><yaxis><br>
|
||||
Ein String, der die Y-Achse repräsentiert</li>
|
||||
<li><savename><br>
|
||||
|
||||
<li><savename><br>
|
||||
Ein String, unter dem ein Chart in der Datenbank gespeichert werden soll</li>
|
||||
<li><chartconfig><br>
|
||||
|
||||
<li><chartconfig><br>
|
||||
Ein jsonstring der den zu speichernden Chart repräsentiert</li>
|
||||
<li><pagingstart><br>
|
||||
|
||||
<li><pagingstart><br>
|
||||
Ein Integer um den Startwert für die Abfrage 'getTableData' festzulegen</li>
|
||||
<li><paginglimit><br>
|
||||
|
||||
<li><paginglimit><br>
|
||||
Ein Integer um den Limitwert für die Abfrage 'getTableData' festzulegen</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
@ -5138,16 +5254,21 @@ sub checkUsePK ($$){
|
||||
<ul>
|
||||
<li><code>get logdb - webchart "" "" "" getcharts</code><br>
|
||||
Liefert alle gespeicherten Charts aus der Datenbank</li>
|
||||
<li><code>get logdb - webchart "" "" "" getdevices</code><br>
|
||||
|
||||
<li><code>get logdb - webchart "" "" "" getdevices</code><br>
|
||||
Liefert alle verfügbaren Devices aus der Datenbank</li>
|
||||
<li><code>get logdb - webchart "" "" ESA2000_LED_011e getreadings</code><br>
|
||||
|
||||
<li><code>get logdb - webchart "" "" ESA2000_LED_011e getreadings</code><br>
|
||||
Liefert alle verfügbaren Readings aus der Datenbank unter Angabe eines Gerätes</li>
|
||||
<li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh</code><br>
|
||||
|
||||
<li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e timerange TIMESTAMP day_kwh</code><br>
|
||||
Liefert Chart-Daten, die auf folgenden Parametern basieren: 'xaxis', 'yaxis', 'device', 'to' und 'from'<br>
|
||||
Die Ausgabe erfolgt als JSON, z.B.: <code>[{'TIMESTAMP':'2013-02-11 00:10:10','VALUE':'0.22431388090756'},{'TIMESTAMP'.....}]</code></li>
|
||||
<li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e savechart TIMESTAMP day_kwh tageskwh</code><br>
|
||||
|
||||
<li><code>get logdb - webchart 2013-02-11_00:00:00 2013-02-12_00:00:00 ESA2000_LED_011e savechart TIMESTAMP day_kwh tageskwh</code><br>
|
||||
Speichert einen Chart unter Angabe eines 'savename' und seiner zugehörigen Konfiguration</li>
|
||||
<li><code>get logdb - webchart "" "" "" deletechart "" "" 7</code><br>
|
||||
|
||||
<li><code>get logdb - webchart "" "" "" deletechart "" "" 7</code><br>
|
||||
Löscht einen zuvor gespeicherten Chart unter Angabe einer id</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
|
@ -8,6 +8,8 @@
|
||||
# connection => "mysql:database=fhem;host=db;port=3306",
|
||||
# user => "fhemuser",
|
||||
# password => "fhempassword",
|
||||
# # optional enable(1) / disable(0) UTF-8 support of MySQL (at least V 4.042 necessary)
|
||||
# utf8 => 1,
|
||||
#);
|
||||
################################################################
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user