From 1666e8024c34b7e893be767a22d20e31fa321c30 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sun, 7 Oct 2018 11:16:14 +0000 Subject: [PATCH] 93_DbRep: direct help for attributes git-svn-id: https://svn.fhem.de/fhem/trunk@17474 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/93_DbRep.pm | 437 +++++++++++++++++++++++++++--------------- 2 files changed, 286 insertions(+), 152 deletions(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index b0f4fd8ef..3cbb86304 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # 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. + - change: 93_DbRep: direct help for attributes - bugfix: 72_XiaomiDevice: set incorrect fan speed to 0 - bugfix: 38_netatmo: increased timeouts to counter server issues, logging - bugfix: 88_HMCCU: Detection of non standard addresses diff --git a/fhem/FHEM/93_DbRep.pm b/fhem/FHEM/93_DbRep.pm index 1a4a92a46..f52b3bac6 100644 --- a/fhem/FHEM/93_DbRep.pm +++ b/fhem/FHEM/93_DbRep.pm @@ -42,6 +42,7 @@ use warnings; # Versions History intern our %DbRep_vNotesIntern = ( + "8.2.0" => "05.10.2018 direct help for attributes ", "8.1.0" => "02.10.2018 new get versionNotes command ", "8.0.1" => "20.09.2018 DbRep_getMinTs improved", "8.0.0" => "11.09.2018 get filesize in DbRep_WriteToDumpFile corrected, restoreMySQL for clientSide dumps, minor fixes ", @@ -260,6 +261,7 @@ our %DbRep_vNotesIntern = ( # Versions History extern: our %DbRep_vNotesExtern = ( + "8.2.0" => "05.10.2018 direct help for attributes ", "8.1.0" => "01.10.2018 new get versionNotes command ", "8.0.0" => "11.09.2018 get filesize in DbRep_WriteToDumpFile corrected, restoreMySQL for clientSide dumps, minor fixes ", "7.20.0" => "04.09.2018 deviceRename can operate a Device name with blank, e.g. 'current balance' as old device name ", @@ -360,6 +362,7 @@ our %DbRep_vNotesExtern = ( # Hint Hash our %DbRep_vHintsExt = ( + "2" => "Rules of german weather service for calculation of average temperatures. ", "1" => "Some helpful FHEM-Wiki Entries" ); @@ -4772,7 +4775,7 @@ sub fetchrows_ParseDone($) { ReadingsBulkUpdateValue($hash, "number_fetched_rows", ($nrows>$limit)?$nrows-1:$nrows); ReadingsBulkUpdateTimeState($hash,$brt,$rt,($nrows-$limit>0)? - "done - Warning: present rows exceed specified limit, adjust attribute limit":"done"); + "done - Warning: present rows exceed specified limit, adjust attribute limit":"done"); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -5021,7 +5024,7 @@ sub delseqdoubl_ParseDone($) { my $rnam = ($opt =~ /adviceRemain/)?"number_rows_to_remain":($opt =~ /adviceDelete/)?"number_rows_to_delete":"number_rows_deleted"; ReadingsBulkUpdateValue($hash, "$rnam", "$nrows"); ReadingsBulkUpdateTimeState($hash,$brt,$rt,($l >= $limit)? - "done - Warning: not all items are shown, adjust attribute limit if you want see more":"done"); + "done - Warning: not all items are shown, adjust attribute limit if you want see more":"done"); readingsEndUpdate($hash, 1); delete($hash->{HELPER}{RUNNING_PID}); @@ -9571,19 +9574,6 @@ return; timestamp-attributes which are set. The reading to evaluate must be specified by attribute "reading".
By attribute "averageCalcForm" the calculation variant for average determination will be configured. - At the moment the following methods are implemented:

- - -
Is no or the option "display" specified, the results are only displayed. Using option "writeToDB" the calculated results are stored in the database with a new reading @@ -10135,7 +10125,7 @@ return; Note:
Although the module is designed non-blocking, a huge number of selection result (huge number of rows) can overwhelm the browser session respectively FHEMWEB. - Due to the sample space can be limited by attribute "limit". + Due to the sample space can be limited by attribute "limit". Of course ths attribute can be increased if your system capabilities allow a higher workload.


@@ -10453,7 +10443,7 @@ return; (Standby-database).
Here the "<DbLog-Device Standby>" is the DbLog-Device what is connected to the Standby-database.

- All the datasets which are determined by timestamp-attributes + All the datasets which are determined by timestamp-attributes or respectively the attributes "device", "reading" are transmitted.
The datasets are transmitted in time slices accordingly to the adjusted aggregation. If the attribute "aggregation" has value "no" or "month", the datasets are transmitted @@ -10671,18 +10661,35 @@ return $ret;

+
  • executeBeforeProc - you can specify a FHEM-command which should be executed before dump.
    Perl functions have to be enclosed in {} .

    @@ -10799,14 +10822,13 @@ sub bdump {
  • +
  • expimpfile - Path/filename for data export/import.

    The filename may contain wildcards which are replaced by corresponding values (see subsequent table). Furthermore filename can contain %-wildcards of the POSIX strftime function of the underlying OS (see your strftime manual).
    - About POSIX wildcard usage please see also explanations in Filelog.
    -
    -
    - + Mit dem Attribut "averageCalcForm" wird die Berechnungsvariante zur Mittelwertermittlung definiert. Ist keine oder die Option "display" angegeben, werden die Ergebnisse nur angezeigt. Mit der Option "writeToDB" werden die Berechnungsergebnisse mit einem neuen Readingnamen in der Datenbank gespeichert.
    @@ -11968,7 +12017,7 @@ sub bdump { Auch wenn das Modul bezüglich der Datenbankabfrage nichtblockierend arbeitet, kann eine zu große Ergebnismenge (Anzahl Zeilen bzw. Readings) die Browsersesssion bzw. FHEMWEB blockieren. Aus diesem Grund wird die Ergebnismenge mit dem - Attribut "limit" begrenzt. Bei Bedarf kann dieses Attribut + Attribut "limit" begrenzt. Bei Bedarf kann dieses Attribut geändert werden, falls eine Anpassung der Selektionsbedingungen nicht möglich oder gewünscht ist.


  • @@ -12301,7 +12350,7 @@ sub bdump { Datenbank (Standby-Datenbank) übertragen. Dabei ist "<DbLog-Device Standby>" das DbLog-Device, welches mit der Standby-Datenbank verbunden ist.

    - Es werden alle Datensätze übertragen, die durch Timestamp-Attribute + Es werden alle Datensätze übertragen, die durch Timestamp-Attribute bzw. die Attribute "device", "reading" bestimmt sind.
    Die Datensätze werden dabei in Zeitscheiben entsprechend der eingestellten Aggregation übertragen. Hat das Attribut "aggregation" den Wert "no" oder "month", werden die Datensätze automatisch @@ -12527,16 +12576,39 @@ return $ret;


    - + +
  • disable - deaktiviert das Modul

  • - + +
  • dumpComment - User-Kommentar. Er wird im Kopf des durch den Befehl "dumpMyQL clientSide" erzeugten Dumpfiles eingetragen.

  • - +
  • dumpCompress - wenn gesetzt, werden die Dumpfiles nach "dumpMySQL" bzw. "dumpSQLite" komprimiert

  • - + +
  • dumpDirLocal - Zielverzeichnis für die Erstellung von Dumps mit "dumpMySQL clientSide". default: "{global}{modpath}/log/" auf dem FHEM-Server.
    Ebenfalls werden in diesem Verzeichnis alte Backup-Files durch die interne Versionsverwaltung von "dumpMySQL" gesucht und gelöscht wenn die gefundene Anzahl den Attributwert "dumpFilesKeep" überschreitet. Das Attribut dient auch dazu ein lokal gemountetes Verzeichnis "dumpDirRemote" DbRep bekannt zu machen.

  • - + +
  • dumpDirRemote - Zielverzeichnis für die Erstellung von Dumps mit "dumpMySQL serverSide". default: das Home-Dir des MySQL-Servers auf dem MySQL-Host

  • - -
  • dumpMemlimit - erlaubter Speicherverbrauch für SQL-Script zur Generierungszeit (default: 100000 Zeichen). + + +
  • dumpMemlimit - erlaubter Speicherverbrauch für das Dump SQL-Script zur Generierungszeit (default: 100000 Zeichen). Bitte den Parameter anpassen, falls es zu Speicherengpässen und damit verbundenen Performanceproblemen kommen sollte.

  • - + +
  • dumpSpeed - Anzahl der abgerufenen Zeilen aus der Quelldatenbank (default: 10000) pro Select durch "dumpMySQL ClientSide". Dieser Parameter hat direkten Einfluß auf die Laufzeit und den Ressourcenverbrauch zur Laufzeit.

  • +
  • dumpFilesKeep - Es wird die angegebene Anzahl Dumpfiles im Dumpdir belassen (default: 3). Sind mehr (ältere) Dumpfiles vorhanden, werden diese gelöscht nachdem ein neuer Dump erfolgreich erstellt wurde. Das globale Attribut "archivesort" wird berücksichtigt.

  • - + +
  • executeAfterProc - Es kann ein FHEM-Kommando angegeben werden welches nach dem Dump ausgeführt werden soll.
    Funktionen sind in {} einzuschließen.

    @@ -12620,7 +12705,8 @@ sub adump {
  • - + +
  • executeBeforeProc - Es kann ein FHEM-Kommando angegeben werden welches vor dem Dump ausgeführt werden soll.
    Funktionen sind in {} einzuschließen.

    @@ -12644,12 +12730,12 @@ sub bdump {
  • +
  • expimpfile - Pfad/Dateiname für Export/Import in/aus einem File.

    Der Dateiname kann Platzhalter enthalten die gemäß der nachfolgenden Tabelle ersetzt werden. Weiterhin können %-wildcards der POSIX strftime-Funktion des darunterliegenden OS enthalten sein (siehe auch strftime Beschreibung).
    - Zur POSIX Wildcardverwendung siehe auch die Erläuterungen zu Filelog.

    +
    + + + Zur POSIX Wildcardverwendung siehe auch die Erläuterungen zu Filelog.

    +
  • fetchMarkDuplicates - Markierung von mehrfach vorkommenden Datensätzen im Ergebnis des "fetchrows" Kommandos

  • +
  • fetchRoute [descent | ascent] - bestimmt die Leserichtung des fetchrows-Befehl.



  • - -
  • ftpUse - FTP Transfer nach dem Dump wird eingeschaltet (ohne SSL Verschlüsselung). Das erzeugte + + +
  • ftpUse - FTP Transfer nach einem Dump wird eingeschaltet (ohne SSL Verschlüsselung). Das erzeugte Datenbank Backupfile wird non-blocking zum angegebenen FTP-Server (Attribut "ftpServer") übertragen.

  • - -
  • ftpUseSSL - FTP Transfer mit SSL Verschlüsselung nach dem Dump wird eingeschaltet. Das erzeugte + + +
  • ftpUseSSL - FTP Transfer mit SSL Verschlüsselung nach einem Dump wird eingeschaltet. Das erzeugte Datenbank Backupfile wird non-blocking zum angegebenen FTP-Server (Attribut "ftpServer") übertragen.

  • - -
  • ftpUser - User zur Anmeldung am FTP-Server, default: "anonymous".

  • - + + +
  • ftpUser - User zur Anmeldung am FTP-Server nach einem Dump, default: "anonymous".

  • + +
  • ftpDebug - Debugging der FTP Kommunikation zur Fehlersuche.

  • - -
  • ftpDir - Verzeichnis des FTP-Servers in welches das File übertragen werden soll (default: "/").

  • - + + +
  • ftpDir - Verzeichnis des FTP-Servers in welches das File nach einem Dump übertragen werden soll + (default: "/").

  • + +
  • ftpDumpFilesKeep - Es wird die angegebene Anzahl Dumpfiles im <ftpDir> belassen (default: 3). Sind mehr - (ältere) Dumpfiles vorhanden, werden diese gelöscht nachdem ein neuer Dump erfolgreich - übertragen wurde.

  • - + (ältere) Dumpfiles vorhanden, werden diese gelöscht nachdem ein neuer Dump erfolgreich + übertragen wurde.
    + +
  • ftpPassive - setzen wenn passives FTP verwendet werden soll

  • - + +
  • ftpPort - FTP-Port, default: 21

  • - + +
  • ftpPwd - Passwort des FTP-Users, default nicht gesetzt

  • - -
  • ftpServer - Name oder IP-Adresse des FTP-Servers. notwendig !

  • - -
  • ftpTimeout - Timeout für die FTP-Verbindung in Sekunden (default: 30).

  • - - + + +
  • ftpServer - Name oder IP-Adresse des FTP-Servers zur Übertragung von Files nach einem Dump.

  • + + +
  • ftpTimeout - Timeout für eine FTP-Verbindung in Sekunden (default: 30).

  • + +
  • limit - begrenzt die Anzahl der resultierenden Datensätze im select-Statement von "fetchrows", bzw. der anzuzeigenden Datensätze der Kommandos "delSeqDoublets adviceDelete", "delSeqDoublets adviceRemain" (default 1000). Diese Limitierung soll eine Überlastung der Browsersession und ein blockieren von FHEMWEB verhindern. Bei Bedarf entsprechend ändern bzw. die Selektionskriterien (Zeitraum der Auswertung) anpassen.

  • - + +
  • optimizeTablesBeforeDump - wenn "1", wird vor dem Datenbankdump eine Tabellenoptimierung ausgeführt (default: 0). Dadurch verlängert sich die Laufzeit des Dump.


  • - + +
  • reading - Abgrenzung der DB-Selektionen auf ein bestimmtes oder mehrere Readings. Mehrere Readings werden als Komma separierte Liste angegeben.
    SQL Wildcard (%) wird in einer Liste als normales ASCII-Zeichen gewertet.
    @@ -12749,18 +12855,27 @@ sub bdump { attr <name> reading etotal,etoday


    - + +
  • readingNameMap - der Name des ausgewerteten Readings wird mit diesem String für die Anzeige überschrieben

  • +
  • readingPreventFromDel - Komma separierte Liste von Readings die vor einer neuen Operation nicht gelöscht werden sollen

  • - + +
  • role - die Rolle des DbRep-Device. Standard ist "Client". Die Rolle "Agent" ist im Abschnitt - DbRep-Agent beschrieben.

  • - + "DbRep-Agent" beschrieben.
    + + + Siehe auch Abschnitt DbRep-Agent. +
    + +
  • seqDoubletsVariance - akzeptierte Abweichung (+/-) für das Kommando "set <name> delSeqDoublets".
    - Der Wert des Attributs beschreibt die Abweichung bis zu der aufeinanderfolgende numerische Werte (VALUE) von - Datensätze als gleich angesehen und gelöscht werden sollen. "seqDoubletsVariance" ist ein absoluter Zahlenwert, + Der Wert des Attributs beschreibt die Abweichung bis zu der aufeinanderfolgende numerische + Werte (VALUE) von Datensätze als gleich angesehen und gelöscht werden sollen. + "seqDoubletsVariance" ist ein absoluter Zahlenwert, der sowohl als positive als auch negative Abweichung verwendet wird.



  • - + +
  • showproctime - wenn gesetzt, zeigt das Reading "sql_processing_time" die benötigte Abarbeitungszeit (in Sekunden) für die SQL-Ausführung der durchgeführten Funktion. Dabei wird nicht ein einzelnes SQl-Statement, sondern die Summe aller notwendigen SQL-Abfragen innerhalb der jeweiligen Funktion betrachtet.

  • - + +
  • showStatus - grenzt die Ergebnismenge des Befehls "get <name> dbstatus" ein. Es können SQL-Wildcard (%) verwendet werden.


  • - + +
  • showVariables - grenzt die Ergebnismenge des Befehls "get <name> dbvars" ein. Es können SQL-Wildcard (%) verwendet werden.


  • - + +
  • showSvrInfo - grenzt die Ergebnismenge des Befehls "get <name> svrinfo" ein. Es können SQL-Wildcard (%) verwendet werden.


  • - + +
  • showTableInfo - grenzt die Ergebnismenge des Befehls "get <name> tableinfo" ein. Es können SQL-Wildcard (%) verwendet werden.


  • -
  • sqlResultFieldSep - legt den verwendeten Feldseparator (default: "|") im Ergebnis des Kommandos "set ... sqlCmd" fest.

  • - + +
  • sqlResultFieldSep - legt den verwendeten Feldseparator (default: "|") im Ergebnis des Kommandos + "set ... sqlCmd" fest.

  • + +
  • sqlCmdHistoryLength - aktiviert die Kommandohistorie von "sqlCmd" und legt deren Länge fest

  • - + +
  • sqlResultFormat - legt die Formatierung des Ergebnisses des Kommandos "set <name> sqlCmd" fest. Mögliche Optionen sind:


    - + +
  • timeYearPeriod - Mit Hilfe dieses Attributes wird eine jährliche Zeitperiode für die Datenbankselektion bestimmt. Die Zeitgrenzen werden zur Ausführungszeit dynamisch berechnet. Es wird immer eine Jahresperiode bestimmt. Eine unterjährige Angabe ist nicht möglich.
    @@ -12874,8 +12999,10 @@ sub bdump {

    +
  • timestamp_begin - der zeitliche Beginn für die Datenselektion (*)

  • - + +
  • timestamp_end - das zeitliche Ende für die Datenselektion. Wenn nicht gesetzt wird immer die aktuelle Datum/Zeit-Kombi für das Ende der Selektion eingesetzt. (*)

  • @@ -12920,9 +13047,11 @@ sub bdump { Wird das Attribut "timeDiffToNow" gesetzt, werden die eventuell gesetzten anderen Zeit-Attribute ("timestamp_begin","timestamp_end","timeYearPeriod") gelöscht. - Das Setzen von "timestamp_begin" bzw. "timestamp_end" bedingt die Löschung von anderen Zeit-Attribute falls sie vorher gesetzt waren. + Das Setzen von "timestamp_begin" bzw. "timestamp_end" bedingt die Löschung von anderen Zeit-Attribute falls sie vorher + gesetzt waren.

    +
  • timeDiffToNow - der Selektionsbeginn wird auf den Zeitpunkt "<aktuelle Zeit> - <timeDiffToNow>" gesetzt (z.b. werden die letzten 24 Stunden in die Selektion eingehen wenn das Attribut auf "86400" gesetzt wurde). Die Timestampermittlung erfolgt dynamisch zum Ausführungszeitpunkt.

  • @@ -12943,17 +13072,20 @@ sub bdump { # die Startzeit wird auf "aktuelle Zeit - 1,5 Jahre gesetzt


    - + +
  • timeOlderThan - das Selektionsende wird auf den Zeitpunkt "<aktuelle Zeit> - <timeOlderThan>" gesetzt. Dadurch werden alle Datensätze bis zu dem Zeitpunkt "<aktuelle Zeit> - <timeOlderThan>" berücksichtigt (z.b. wenn auf 86400 gesetzt, werden alle Datensätze die älter als ein Tag sind berücksichtigt). Die Timestampermittlung erfolgt dynamisch zum Ausführungszeitpunkt.
    Es gelten die gleichen Eingabeformate wie für das Attribut "timeDiffToNow".

  • - + +
  • timeout - das Attribut setzt den Timeout-Wert für die Blocking-Call Routinen in Sekunden (Default: 86400)

  • - + +
  • userExitFn - stellt eine Schnittstelle zur Ausführung eigenen Usercodes zur Verfügung.
    Um die Schnittstelle zu aktivieren, wird zunächst die aufzurufende Subroutine in 99_myUtls.pm nach folgendem Muster erstellt:
    @@ -12996,7 +13128,8 @@ sub bdump {


  • - + +
  • valueFilter - Regulärer Ausdruck zur Filterung von Datensätzen innerhalb bestimmter Funktionen. Der Regex auf den gesamten selektierten Datensatz (inkl. Device, Reading usw.) angewendet. Bitte vergleichen sie die Erläuterungen zu den entsprechenden Set-Kommandos.