diff --git a/fhem/CHANGED b/fhem/CHANGED
index 1e796e734..113ae735c 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,8 @@
# 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.
+ - update: 98_DOIFtools.pm: filter mentioned in event report
+ Event monitor toggles instead on/off
+ some shortcuts for get and set commands, hideable by attribute
- new: 98_mark: new command mark added
to mark devices TEMPORARY or VOLATILE
- bufix: 00_MQTT: fixed delete MQTT device
diff --git a/fhem/FHEM/98_DOIFtools.pm b/fhem/FHEM/98_DOIFtools.pm
index 45f9c6b58..05a4d3d97 100644
--- a/fhem/FHEM/98_DOIFtools.pm
+++ b/fhem/FHEM/98_DOIFtools.pm
@@ -62,18 +62,17 @@ sub DOIFtools_Initialize($)
$data{FWEXT}{"/DOIFtools_logWrapper"}{CONTENTFUNC} = "DOIFtools_logWrapper";
my $oldAttr = "target_room:noArg target_group:noArg executeDefinition:noArg executeSave:noArg eventMonitorInDOIF:noArg readingsPrefix:noArg";
- $hash->{AttrList} = "DOIFtoolsExecuteDefinition:1,0 DOIFtoolsTargetRoom DOIFtoolsTargetGroup DOIFtoolsExecuteSave:1,0 DOIFtoolsReadingsPrefix DOIFtoolsEventMonitorInDOIF:1,0 DOIFtoolsHideModulShortcuts:1,0 DOIFtoolsMyShortcuts:textField-long DOIFtoolsMenuEntry:1,0 DOIFtoolsHideStatReadings:1,0 disabledForIntervals ".$oldAttr;
+ $hash->{AttrList} = "DOIFtoolsExecuteDefinition:1,0 DOIFtoolsTargetRoom DOIFtoolsTargetGroup DOIFtoolsExecuteSave:1,0 DOIFtoolsReadingsPrefix DOIFtoolsEventMonitorInDOIF:1,0 DOIFtoolsHideModulShortcuts:1,0 DOIFtoolsHideGetSet:1,0 DOIFtoolsMyShortcuts:textField-long DOIFtoolsMenuEntry:1,0 DOIFtoolsHideStatReadings:1,0 disabledForIntervals ".$oldAttr;
}
-
sub DOIFtools_dO ($$$$){return "";}
# FW_detailFn for DOIF injecting event monitor
sub DOIFtools_eM($$$$) {
my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn.
my $ret = "";
# Event Monitor
- $ret .= "
Event monitor:
on ";
- $ret .= "
off";
+ my $a0 = ReadingsVal($d,".eM", "off") eq "on" ? "off" : "on";
+ $ret .= "
Event monitor:
toggle ";
$ret .= "
";
my $a = "";
@@ -170,8 +169,8 @@ sub DOIFtools_fhemwebFn($$$$) {
$ret .= "";
}
# Event Monitor
- $ret .= "
Event monitor:
on ";
- $ret .= "
off ";
+ my $a0 = ReadingsVal($d,".eM", "off") eq "on" ? "off" : "on";
+ $ret .= "
Event monitor:
toggle ";
$ret .= "Shortcuts: " if (!AttrVal($d,"DOIFtoolsHideModulShortcuts",0) or AttrVal($d,"DOIFtoolsMyShortcuts",""));
if (!AttrVal($d,"DOIFtoolsHideModulShortcuts",0)) {
$ret .= "
reload DOIFtools " if(ReadingsVal($d,".debug",""));
@@ -191,7 +190,64 @@ sub DOIFtools_fhemwebFn($$$$) {
}
}
}
- $ret .= "
";
+ if (!AttrVal($d, "DOIFtoolsHideGetSet", 0)) {
+ $ret .= "
";
+ my $a1 = ReadingsVal($d,"doStatistics", "disabled") =~ "disabled|deleted" ? "enabled" : "disabled";
+ my $a2 = ReadingsVal($d,"specialLog", 0) ? 0 : 1;
+ # set doStatistics enabled/disabled
+ $ret .= "
";
+ # set doStatistics deleted
+ $ret .= "
";
+ # set specialLog 0/1
+ $ret .= "
";
+ $ret .= "
";
+ # get statisticsReport
+ $ret .= "
";
+ # get checkDOIF
+ $ret .= "
";
+ # get runningTimerInDOIF
+ $ret .= "
";
+ }
+ $ret .= "
";
my $a = "";
if (ReadingsVal($d,".eM","off") eq "on") {
$ret .= "";
@@ -707,6 +763,7 @@ sub DOIFtools_Set($@)
readingsSingleUpdate($hash,"statisticsDeviceFilterRegex", $value,0);
}
} else {
+ my $hardcoded = "doStatistics:disabled,enabled,deleted specialLog:0,1";
if (ReadingsVal($pn,"targetDOIF","")) {
my $tn = ReadingsVal($pn,"targetDOIF","");
my @rL = ();
@@ -714,9 +771,9 @@ sub DOIFtools_Set($@)
push @rL, $key if ($key !~ "^(Device|state|error|cmd|e_|timer_|wait_|matched_|last_cmd|mode)");
}
my $rL = join(",",@rL);
- return "unknown argument $arg for $pn, choose one of statisticsTYPEs:multiple-strict,.*,$tL doStatistics:disabled,enabled,deleted sourceAttribute:readingList targetDOIF:$dL deleteReadingsInTargetDOIF:multiple-strict,$rL recording_target_duration:0,1,6,12,24,168 specialLog:0,1 statisticsDeviceFilterRegex statisticsShowRate_ge";
+ return "unknown argument $arg for $pn, choose one of statisticsTYPEs:multiple-strict,.*,$tL sourceAttribute:readingList targetDOIF:$dL deleteReadingsInTargetDOIF:multiple-strict,$rL recording_target_duration:0,1,6,12,24,168 statisticsDeviceFilterRegex statisticsShowRate_ge ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"");
} else {
- return "unknown argument $arg for $pn, choose one of statisticsTYPEs:multiple-strict,.*,$tL doStatistics:disabled,enabled,deleted sourceAttribute:readingList targetDOIF:$dL recording_target_duration:0,1,6,12,24,168 specialLog:0,1 statisticsDeviceFilterRegex statisticsShowRate_ge";
+ return "unknown argument $arg for $pn, choose one of statisticsTYPEs:multiple-strict,.*,$tL sourceAttribute:readingList targetDOIF:$dL recording_target_duration:0,1,6,12,24,168 statisticsDeviceFilterRegex statisticsShowRate_ge ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"");
}
}
return $ret;
@@ -846,6 +903,10 @@ sub DOIFtools_Get($@)
$ret .= sprintf("%43s","Events/Gerät: ").sprintf("%-10s",int($evtsum/$i + 0.5))."\n\n" if ($i);
fhem("count",1) =~ m/(\d+)/;
$ret .= sprintf("%43s","Geräte total: ").sprintf("%-10s","$1\n\n");
+ $ret .= sprintf("%43s","
Filter\n");
+ $ret .= sprintf("%42s","TYPE: ").sprintf("%-10s",ReadingsVal($pn,"statisticsTYPEs","")."\n");
+ $ret .= sprintf("%35s","NAME: ").sprintf("%-10s",ReadingsVal($pn,"statisticsDeviceFilterRegex",".*")."\n");
+ $ret .= sprintf("%35s","Rate: ").sprintf("%-10s",">= ".ReadingsVal($pn,"statisticsShowRate_ge","0")."\n\n");
$ret .= "
".sprintf("-"x71)."
";
# attibute statistics
$ret .= "
".sprintf("%-30s","gesetzte Attribute in DOIF").sprintf("%-12s","Anzahl")."\n";
@@ -895,7 +956,8 @@ sub DOIFtools_Get($@)
return $ret;
} else {
- return "unknown argument $arg for $pn, choose one of checkDOIF:noArg statisticsReport:noArg readingsGroup_for:multiple-strict,$dL DOIF_to_Log:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL runningTimerInDOIF:noArg ";
+ my $hardcoded = "checkDOIF:noArg statisticsReport:noArg runningTimerInDOIF:noArg";
+ return "unknown argument $arg for $pn, choose one of readingsGroup_for:multiple-strict,$dL DOIF_to_Log:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL ".(AttrVal($pn,"DOIFtoolsHideGetSet",1) ? $hardcoded :"");
}
return $ret;
@@ -1076,6 +1138,9 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
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> DOIFtoolsHideGetSet <0|1>
+
DOIFtoolsHideModulGetSet 1, verstecken der Set- und Get-Shortcuts.
Default 0.
+
attr <name> DOIFtoolsHideModulShortcuts <0|1>
DOIFtoolsHideModulShortcuts 1, verstecken der DOIFtools Shortcuts.
Default 0.