selektives "use" ?

Begonnen von Tobias, 24 April 2019, 15:39:11

Vorheriges Thema - Nächstes Thema

Tobias

Hi,
wenn ich am Anfang des Moduls "use Paws" reinhänge, zwinge ich imho alle User dieses Modul zu installieren damit mein TTS läuft.
Gibt es da ein charmateren Weg? Oder verstehe ich es falsch?
zb. nicht meckern wenn Paws nicht verfügbar ist, erst meckern wenn ich das Modul verwenden will

Can't locate Paws.pm in @INC (you may need to install the Paws module) (@INC contains: ./FHEM/lib ./lib fhem.p/lib fhem.p/FHEM/lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at ./FHEM/98_Text2Speech.pm line 30.
BEGIN failed--compilation aborted at ./FHEM/98_Text2Speech.pm line 30.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Loredo

#1
Beispiel:


eval {
    require JSON::MaybeXS;
    import JSON::MaybeXS qw( decode_json encode_json );
    1;
};
if (!$@) {
....
}



Aber: Sofern du zum FHEM Installer kompatibel sein möchtest, solltest dein Modul bei einem eigenen Errorhandling auch noch eine Funktion bieten, auch wenn das Perl Modul nicht installiert ist. Wenn es hingegen zwingend notwendig für die sinnvolle Nutzung ist, dann solltest du es beim normalen "use" belassen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Tobias

Danke, hat mir sehr geholfen.
Ich habe das require im eval Block innerhalb der attr set funktion untergebracht. So wird es erst geprüft und geladen wenn das TT_Ressource Attribute auf Amazon-Polly gestellt wird :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter