diff --git a/fhem/CHANGED b/fhem/CHANGED
index e65ecdd94..abee18c85 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -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.
+ - change: 98_DOIFtools: add help labels in commandref for attr, set and get
+ add MODEL to statistics report, check DOIF excludes Perl mode
- new: 98_MSwitch.pm: Multi Switch Modul
- feature: 93_DbRep: V7.19.0, attribute "valueFilter" to filter datasets in
fetchrows
diff --git a/fhem/FHEM/98_DOIFtools.pm b/fhem/FHEM/98_DOIFtools.pm
index 9b29d6bca..d616b5553 100644
--- a/fhem/FHEM/98_DOIFtools.pm
+++ b/fhem/FHEM/98_DOIFtools.pm
@@ -1078,12 +1078,11 @@ sub DOIFtools_Define($$$)
my @Liste = devspec2array("TYPE=DOIFtools");
if (@Liste > 1) {
CommandDelete(undef,$pn);
- # CommandSave(undef,undef);
return "Only one instance of DOIFtools is allowed per FHEM installation. Delete the old one first.";
}
- $hash->{STATE} = "initialized";
$hash->{logfile} = AttrVal($pn,"DOIFtoolsLogDir",AttrVal("global","logdir","./log/"))."$hash->{TYPE}Log-%Y-%j.log";
DOIFtoolsCounterReset($pn);
+ readingsSingleUpdate($hash,"state","initialized",0);
return undef;
}
@@ -1294,6 +1293,8 @@ sub DOIFtools_Get($@)
my $ret="";
my @ret=();
my @doifList = devspec2array("TYPE=DOIF");
+ my @doifListFHEM = devspec2array("TYPE=DOIF" and "MODEL=FHEM");
+ my @doifListPerl = devspec2array("TYPE=DOIF" and "MODEL=Perl");
my @ntL =();
my $dL = join(",",sort @doifList);
my $DE = AttrVal("global", "language", "") eq "DE" ? 1 : 0;
@@ -1454,6 +1455,15 @@ sub DOIFtools_Get($@)
$ret .= sprintf("%".($typlen+$evtlen-7)."s","Rate: ").sprintf("%-10s",">= $compRate\n\n");
}
$ret .= "
".sprintf("-"x($typlen+$evtlen+33))."
";
+ # model statistics
+ if ($DE) {
+ $ret .= "".sprintf("%-30s","DOIF-Modelle").sprintf("%-12s","Anzahl")."\n";
+ } else {
+ $ret .= "".sprintf("%-30s","Models of DOIF").sprintf("%-12s","Number")."\n";
+ }
+ $ret .= sprintf("-"x42)."\n";
+ $ret .= sprintf("%-30s","FHEM").sprintf("%-12s","".@doifListFHEM)."\n";
+ $ret .= sprintf("%-30s","Perl").sprintf("%-12s","".@doifListPerl)."\n\n";
# attibute statistics
if ($DE) {
$ret .= "".sprintf("%-30s","genutzte Attribute in DOIF").sprintf("%-12s","Anzahl")."\n";
@@ -1483,7 +1493,7 @@ sub DOIFtools_Get($@)
} elsif ($arg eq "checkDOIF") {
my @coll = ();
my $coll = "";
- foreach my $di (@doifList) {
+ foreach my $di (@doifListFHEM) {
$coll = DOIFtoolsCheckDOIFcoll($hash,$di);
push @coll, $coll if($coll);
}
@@ -1493,11 +1503,11 @@ sub DOIFtools_Get($@)
} else {
$ret .= "\n \n" if (@coll);
}
- foreach my $di (@doifList) {
+ foreach my $di (@doifListFHEM) {
$ret .= DOIFtoolsCheckDOIF($hash,$di);
}
- $ret = $DE ? ($ret ? "Empfehlung gefunden für:\n\n$ret" : "Keine Empfehlung gefunden.") : ($ret ? "Found recommendation for:\n\n$ret" : "No recommendation found.");
+ $ret = $DE ? ($ret ? "Empfehlung gefunden für MODEL FHEM:\n\n$ret" : "Keine Empfehlung gefunden.") : ($ret ? "Found recommendation for MODEL FHEM:\n\n$ret" : "No recommendation found.");
return $ret;
} elsif ($arg eq "runningTimerInDOIF") {
@@ -1731,7 +1741,7 @@ DOIFtools contains tools to support DOIF.
access from DOIFtools to existing DOIFtoolsLog logfiles
show event monitor in device detail view and optionally in DOIFs detail view
convert events to DOIF operands, a selected operand is copied to clipboard and the DEF editor will open
- check definitions and offer recommendations
+ check definitions and offer recommendations for DOIF MODEL FHEM
create shortcuts
optionally create a menu entry
show a list of running wait timer
@@ -1770,7 +1780,7 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Ist der Event-Monitor in DOIF geöffnet, dann kann die Definition des DOIF geändert werden.
Ist der Event-Monitor in DOIFtools geöffnet, dann kann die Definition eines DOIF erzeugt werden.
- prüfen der DOIF Definitionen mit Empfehlungen.
+ prüfen der Definitionen mit Empfehlungen für DOIF-Modus FHEM.
erstellen von Shortcuts
optionalen Menüeintrag erstellen
Liste der laufenden Wait-Timer anzeigen
@@ -1819,39 +1829,50 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Set
+
set <name> deleteReadingInTargetDOIF <readings to delete name>
deleteReadingInTargetDOIF löscht die benutzerdefinierten Readings im Ziel-DOIF
+
set <name> targetDOIF <target name>
targetDOIF vor dem Löschen der Readings muss das Ziel-DOIF gesetzt werden.
+
set <name> deleteReadingInTargetDevice <readings to delete name>
deleteReadingInTargetDevice löscht sichtbare Readings, ausser state im Ziel-Gerät. Bitte den Gefahrenhinweis zum Befehl deletereading beachten!
+
set <name> targetDevice <target name>
targetDevice vor dem Löschen der Readings muss das Ziel-Gerät gesetzt werden.
+
set <name> sourceAttribute <readingList>
sourceAttribute vor dem Erstellen einer ReadingsGroup muss das Attribut gesetzt werden aus dem die Readings gelesen werden, um die ReadingsGroup zu erstellen und zu beschriften. Default, readingsList
+
set <name> statisticsDeviceFilterRegex <regular expression as device filter>
statisticsDeviceFilterRegex setzt einen Filter auf Gerätenamen, nur die gefilterten Geräte werden im Bericht ausgewertet. Default, ".*".
+
set <name> statisticsTYPEs <List of TYPE used for statistics generation>
statisticsTYPEs setzt eine Liste von TYPE für die Statistikdaten erfasst werden, bestehende Statistikdaten werden gelöscht. Default, "".
+
set <name> statisticsShowRate_ge <integer value for event rate>
statisticsShowRate_ge setzt eine Event-Rate, ab der ein Gerät in die Auswertung einbezogen wird. Default, 0.
+
set <name> specialLog <0|1>
specialLog 1 DOIF-Listing bei Status und Wait-Timer Aktualisierung im Debug-Logfile. Default, 0.
+
set <name> doStatistics <enabled|disabled|deleted>
doStatistics
deleted setzt die Statistik zurück und löscht alle stat_ Readings.
disabled pausiert die Statistikdatenerfassung.
enabled startet die Statistikdatenerfassung.
+
set <name> recording_target_duration <hours>
recording_target_duration gibt an wie lange Daten erfasst werden sollen. Default, 0 die Dauer ist nicht begrenzt.
@@ -1861,27 +1882,35 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Get
+
get <name> DOIF_to_Log <DOIF names for logging>
DOIF_to_Log erstellt eine FileLog-Definition, die für alle angegebenen DOIF-Definitionen loggt. Der Reguläre Ausdruck wird aus den, direkt in den DOIF-Greräte angegebenen und den wahrscheinlich verbundenen Geräten, ermittelt.
+
get <name> checkDOIF
- checkDOIF führt eine einfache Syntaxprüfung durch und empfiehlt Änderungen.
+ checkDOIF führt eine einfache Syntaxprüfung durch und empfiehlt Änderungen für DOIF-Modus FHEM.
+
get <name> readingsGroup_for <DOIF names to create readings groups>
readingsGroup_for erstellt readingsGroup-Definitionen für die angegebenen DOIF-namen. sourceAttribute verweist auf das Attribut, dessen Readingsliste als Basis verwendet wird. Die Eingabeelemente im Frontend werden mit den Readingsnamen beschriftet.
+
get <name> userReading_nextTimer_for <DOIF names where to create real date timer readings>
userReading_nextTimer_for erstellt userReadings-Attribute für Timer-Readings mit realem Datum für Timer, die mit Wochentagangaben angegeben sind, davon ausgenommen sind indirekte Wochentagsangaben.
+
get <name> statisticsReport
statisticsReport erstellt einen Bericht aus der laufenden Datenerfassung.
Die Statistik kann genutzt werden, um Geräte mit hohen Ereignisaufkommen zu erkennen. Bei einer hohen Rate, sollte im Interesse der Systemperformance geprüft werden, ob die Events eingeschränkt werden können. Werden keine Events eines Gerätes weiterverarbeitet, kann das Attribut event-on-change-reading auf none oder eine andere Zeichenfolge, die im Gerät nicht als Readingname vorkommt, gesetzt werden.
+
get <name> runningTimerInDOIF
runningTimerInDOIF zeigt eine Liste der laufenden Timer. Damit kann entschieden werden, ob bei einem Neustart wichtige Timer gelöscht werden und der Neustart ggf. verschoben werden sollte. Zeigt nachrichtlich das Ergebnis von blockinginfo an.
+
get <name> SetAttrIconForDOIF <DOIF names for setting the attribute icon to helper_doif>
SetAttrIconForDOIF setzt für die ausgewählten DOIF das Attribut icon auf helper_doif.
+
get <name> linearColorGradient <start color number>,<end color number>,<minimal value>,<maximal value>,<step width>
linearColorGradient erzeugt eine Tabelle mit linear abgestuften Farbnummern und RGB-Werten.
<start color number>, ist eine HTML-Farbnummer, Beispiel: #0000FF für Blau.
@@ -1892,6 +1921,7 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Beispiel: get DOIFtools linearColorGradient #0000FF,#FF0000,7,30,0.5
+
get <name> modelColorGradient <minimal value>,<middle value>,<maximal value>,<step width>,<color model>
modelColorGradient erzeugt eine Tabelle mit modellbedingt abgestuften Farbnummern und RGB-Werten, siehe FHEM-Wiki Farbskala mit Color::pahColor
<minimal value>, der Minimalwert auf den die Startfarbnummer skaliert wird, Beispiel: 7.
@@ -1904,6 +1934,7 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
get DOIFtools modelColorGradient 7,20,30,1,0
get DOIFtools modelColorGradient 0,50,100,5,[255,255,0,127,255,0,0,255,0,0,255,255,0,127,255]
+
get <name> hsvColorGradient <HUE start value>,<HUE end value>,<minimal value>,<maximal value>,<step width>,<saturation>,<lightness>
hsvColorGradient erzeugt eine Tabelle über HUE-Werte abgestufte Farbnummern und RGB-Werten.
<Hue start value>, der HUE-Startwert, Beispiel: 240 für Blau.
@@ -1923,45 +1954,59 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Attribute
+
attr <name> DOIFtoolsExecuteDefinition <0|1>
DOIFtoolsExecuteDefinition 1 führt die erzeugten Definitionen aus. Default 0, zeigt die erzeugten Definitionen an, sie können mit Raw definition importiert werden.
+
attr <name> DOIFtoolsExecuteSave <0|1>
DOIFtoolsExecuteSave 1, die Definitionen werden automatisch gespeichert. Default 0, der Benutzer kann die Definitionen speichern.
+
attr <name> DOIFtoolsTargetGroup <group names for target>
DOIFtoolsTargetGroup gibt die Gruppen für die zu erstellenden Definitionen an. Default, die Gruppe der Ursprungs Definition.
+
attr <name> DOIFtoolsTargetRoom <room names for target>
DOIFtoolsTargetRoom gibt die Räume für die zu erstellenden Definitionen an. Default, der Raum der Ursprungs Definition.
+
attr <name> DOIFtoolsReadingsPrefix <user defined prefix>
DOIFtoolsReadingsPrefix legt den Präfix der benutzerdefinierten Readingsnamen für die Zieldefinition fest. Default, DOIFtools bestimmt den Präfix.
+
attr <name> DOIFtoolsEventMonitorInDOIF <1|0>
DOIFtoolsEventMonitorInDOIF 1, die Anzeige des Event-Monitors wird in DOIF ermöglicht. Default 0, kein Zugriff auf den Event-Monitor im DOIF.
+
attr <name> DOIFtoolsEMbeforeReadings <1|0>
DOIFtoolsEMbeforeReading 1, die Anzeige des Event-Monitors wird in DOIF direkt über den Readings angezeigt. Default 0, anzeige des Event-Monitors über den Internals.
+
attr <name> DOIFtoolsHideGetSet <0|1>
DOIFtoolsHideModulGetSet 1, verstecken der Set- und Get-Shortcuts. Default 0.
+
attr <name> DOIFtoolsNoLookUp <0|1>
DOIFtoolsNoLookUp 1, es werden keine Lookup-Fenster in DOIFtools geöffnet. Default 0.
+
attr <name> DOIFtoolsNoLookUpInDOIF <0|1>
DOIFtoolsNoLookUpInDOIF 1, es werden keine Lookup-Fenster in DOIF geöffnet. Default 0.
+
attr <name> DOIFtoolsHideModulShortcuts <0|1>
DOIFtoolsHideModulShortcuts 1, verstecken der DOIFtools Shortcuts. Default 0.
+
attr <name> DOIFtoolsHideStatReadings <0|1>
DOIFtoolsHideStatReadings 1, verstecken der stat_ Readings. Das Ändern des Attributs löscht eine bestehende Event-Aufzeichnung. Default 0.
+
attr <name> DOIFtoolsEventOnDeleted <0|1>
DOIFtoolsEventOnDeleted 1, es werden Events für alle stat_ erzeugt, bevor sie gelöscht werden. Damit könnten die erfassten Daten geloggt werden. Default 0.
+
attr <name> DOIFtoolsMyShortcuts <shortcut name>,<command>, ...
DOIFtoolsMyShortcuts <Bezeichnung>,<Befehl>,... anzeigen eigener Shortcuts, siehe globales Attribut menuEntries.
Zusätzlich gilt, wenn ein Eintrag mit ## beginnt und mit ,, endet, wird er als HTML interpretiert.
@@ -1969,9 +2014,11 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
attr DOIFtools DOIFtoolsMyShortcuts ##<br>My Shortcuts:,,list DOIFtools,fhem?cmd=list DOIFtools
attr <name> DOIFtoolsMenuEntry <0|1>
+
DOIFtoolsMenuEntry 1, erzeugt einen Menüeintrag im FHEM-Menü. Default 0.
attr <name> DOIFtoolsLogDir <path to DOIFtools logfile>
+
DOIFtoolsLogDir <path>, gibt den Pfad zum Logfile an Default ./log oder der Pfad aus dem Attribut global logdir.
disabledForIntervals pausiert die Statistikdatenerfassung.