FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Tobias am 24 Januar 2014, 04:08:57

Titel: Wie prüfen ob anderes Modul geladen wurde?
Beitrag von: Tobias am 24 Januar 2014, 04:08:57
Hi,
ich möchte gerne in meinem Modul prüfen, ob ein anderes Modul geladen ist bzw eine dessen Funktionen verfügbar ist.

zb. folgendes gibt immer false zurück :(
if(defined(&Text2Speech::Text2Speech_Ready)) {}

Hat jemand ev dafür einen Codeschnipsel?
Titel: Antw:Wie prüfen ob anderes Modul geladen wurde?
Beitrag von: Dr. Boris Neubert am 24 Januar 2014, 06:45:47
Auf die Schnelle: probier mal require in Verbindung mit eval.
Grüße, Boris
Titel: Antw:Wie prüfen ob anderes Modul geladen wurde?
Beitrag von: rudolfkoenig am 24 Januar 2014, 09:02:52
$modules{$m} && $modules{$m}{LOADED}

Siehe auch fhem.pl LoadModule()/CommandReload()
Titel: Antw:Wie prüfen ob anderes Modul geladen wurde?
Beitrag von: Tobias am 24 Januar 2014, 09:33:57
Danke!!!

hatte es mittels Workarround so gelöst:
  #suche ein DbLogDevice
  foreach my $key (keys(%defs)) {
    if(%defs->{$key}{TYPE} eq "DbLog") {
      $DbLogDev = $key;
      last;
    }
  }
  return undef unless($DbLogDev);


Hab es jetzt geändert, sieht auch schlanker aus ;)
return undef unless($modules{"DbLog"} && $modules{"DbLog"}{"LOADED"});