FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: betateilchen am 22 August 2014, 13:17:03

Titel: Vorschlag: Funktion zum einfachen Lesen von Informationen aus %defs
Beitrag von: betateilchen am 22 August 2014, 13:17:03
Manchmal sucht man bestimmte Daten aus mehreren Devices, um damit weiterzuarbeiten.
Dazu habe ich mir folgende kleine Funktion gebaut, die ich zur Zeit in meiner 99_myUtils.pm eingebaut habe:


sub defInfo($;$) {
  my ($search,$internal) = @_;
  $internal = 'DEF' unless defined($internal);
  my @ret;
  my @etDev = devspec2array($search);
  foreach my $d (@etDev) {
    next unless $d;
    push @ret, $defs{$d}{$internal};
  }
  return @ret;
}


Die Funktion wird z.B. so aufgerufen:


my @gplotFiles = defInfo('TYPE=SVG','GPLOTFILE');


Man erhält als Rückgabe ein array, das die Namen aller in der aktuellen Konfiguration verwendeten gplot-Dateien enthält.
Der erste Parameter folgt der devspec Logik.
Der zweite Aufrufparameter ist optional, fehlt dieser, wird  DEF ausgelesen.

In der configDB verwende ich diese Vorgehensweise, um bei der Migration (beispielsweise) alle verwendeten gplot-Files zu ermitteln und diese automatisch in die Datenbank zu importieren.

Mein Vorschlag wäre, diese Funktion entweder in die 99_Utils.pm oder sogar in die fhem.pl aufzunehmen, da sie an vielen Stellen die Arbeit erleichtern kann.
Titel: Antw:Vorschlag: Funktion zum einfachen Lesen von Informationen aus %defs
Beitrag von: hexenmeister am 22 August 2014, 15:49:44
Habe auch etwas in der Art. Finde den Vorschlag gut.
Titel: Antw:Vorschlag: Funktion zum einfachen Lesen von Informationen aus %defs
Beitrag von: rudolfkoenig am 23 August 2014, 12:11:31
Habs in 99_Utils.pm eingefuegt.
Titel: Antw:Vorschlag: Funktion zum einfachen Lesen von Informationen aus %defs
Beitrag von: betateilchen am 23 August 2014, 12:34:20
super, danke.

Dann kann ich ja morgen abend testen, ob das (neue) update der 99_Utils.pm korrekt funktioniert, falls diese Datei in der configDB abgelegt ist :)