diff --git a/fhem/CHANGED b/fhem/CHANGED
index 40cc35324..f4f5bad0d 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.
+ - feature: 98_DOIFtools: get subsInPackageDOIF for MODEL Perl (Forum #63938)
- bugfix: 49_SSCam(STRM): avoid possible warnings during shutdown/restart
- bugfix: 52_I2C_HDC1008: fix "temperature" (broken by change from Aug, 1st)
- feature: 49_SSCam: new attribute ptzNoCapPrePat
@@ -15,7 +16,7 @@
update button in header of Portal Graphics, minor
code changes according PBP
- change: 10_WS980: change conversion ration of w/m2 to 0.0079
-.- bugfix: 98_DOIFtools: improve popup position (Forum #113404)
+ - bugfix: 98_DOIFtools: improve popup position (Forum #113404)
- bugfix: 48_BlinkCamera: videoDelete on new API and first TFA pin verify
- bugfix: 73_AutoShuttersControl: fix shading in drive then shutter is closed
- change: 32_withings: added sleep apnea index reading
diff --git a/fhem/FHEM/98_DOIFtools.pm b/fhem/FHEM/98_DOIFtools.pm
index a2d1a8176..684253bb5 100644
--- a/fhem/FHEM/98_DOIFtools.pm
+++ b/fhem/FHEM/98_DOIFtools.pm
@@ -1711,9 +1711,24 @@ Example specifications:
$ret .= "
";
return $ret;
+ } elsif ($arg eq "subsInPackageDOIF") {
+ no strict 'refs';
+ my $byd="OldReadingsNum AttrVal OldValue Value ReadingsAge Log set_Event ReadingsTimestamp fhem_set DOIF_ExecTimer set_Reading_Begin set_Exec get_Reading OldReadingsVal Dumper OldReadingsTimestamp get_State fhem ReadingsNum set_Reading gettimeofday ReadingsVal set_State AttrNum mkIcon InternalVal OldTimestamp set_Reading_End set_Reading_Update get_Exec del_Exec InternalNum Log3 ";
+ my $ftn="";
+ my $txt = "
".($DE ? " Vom Benutzer im Package DOIF deklarierte Subs " : " Subs in package DOIF declared by user ")."
\n";
+ $txt .= " Sub | Device |
\n";
+ foreach my $k (sort keys %DOIF::) {
+ if (defined &{"DOIF::$k"} and $byd !~ "$k ") {
+ my @d = devspec2array("TYPE=DOIF:FILTER=MODEL=Perl:FILTER=DEF=.*subs.*sub.*?$k.*?{.*");
+ $ftn = ($DE ? "
* in keinem DOIF-Gerät deklariert, vielleicht an einer Stelle wie 99_myUtils.pm" : "
* not declared in a DOIF-device, but maybe in a place like 99_myUtils.pm") if (!$d[0] and !$ftn);
+ $txt .= " $k | ".($d[0] ? " $d[0] ":" n/a *")." |
\n";
+ }
+ }
+ $txt .="
$ftn";
+ return $txt;
} else {
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 SetAttrIconForDOIF:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"")." linearColorGradient:textField modelColorGradient:textField hsvColorGradient:textField";
+ return "unknown argument $arg for $pn, choose one of readingsGroup_for:multiple-strict,$dL DOIF_to_Log:multiple-strict,$dL SetAttrIconForDOIF:multiple-strict,$dL userReading_nextTimer_for:multiple-strict,$ntL ".(AttrVal($pn,"DOIFtoolsHideGetSet",0) ? $hardcoded :"")." linearColorGradient:textField modelColorGradient:textField hsvColorGradient:textField subsInPackageDOIF:noArg";
}
return $ret;
@@ -1754,6 +1769,7 @@ DOIFtools contains tools to support DOIF.
optionally create a menu entry
show a list of running wait timer
scale values to color numbers and RGB values for coloration
+ list subs declared by user in package DOIF
Just one definition per FHEM-installation is allowed. More in the german section.
@@ -1793,6 +1809,7 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
optionalen Menüeintrag erstellen
Liste der laufenden Wait-Timer anzeigen
skaliert Werte zu Farbnummern und RGB Werten zum Einfärben, z.B. von Icons.
+ Auflistung der Subs, die vom User im Package DOIF deklariert wurden.
Inhalt
@@ -1846,7 +1863,7 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
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 ! Commandref#deletereading
@@ -1959,6 +1976,10 @@ DOIFtools stellt Funktionen zur Unterstützung von DOIF-Geräten bereit.
Beispiele:
get DOIFtools hsvColorGradient 240,360,7,30,1,80,80
+
+ get <name> subsInPackageDOIF
+ subsInPackageDOIF erzeugt eine Liste der Subs, die vom User im Package DOIF deklariert wurden.
+