Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm

Begonnen von tupol, 11 Mai 2014, 11:28:57

Vorheriges Thema - Nächstes Thema

tupol

Hallo Rudi,

aufgrund meiner kürzlichen Probleme "Fehlermeldung beim Start von fhem über console" http://forum.fhem.de/index.php/topic,23261.0.html möchte ich Dich bitten, zur Erhöhung der Robustheit folgende Ergänzung ins Modul fhem.pl einzufügen.
use lib ".";
use lib "./FHEM";


Dadurch werden negative Auswirkungen einer Veränderung von @INC und folgende Fehlermeldungen verhindert.
Use of uninitialized value in concatenation (.) or string at fhem.pl line 1936, <$fh> line 8.
Can't locate RTypes.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at fhem.pl line 434.


Zudem habe ich nicht den Grund finden können, warum ich ständig folgende Fehlermeldung erhalte.
Not enough arguments for main::_sr_alt at ./FHEM/99_SUNRISE_EL.pm line 124, near "@_)"

Abhilfe schafft nur eine Änderung der Zeile 124 "_sr_alt($defaultaltit,@_);" in:
   my ($needrise, $needset, $y, $m, $dy, $offset) = @_;
  _sr_alt($defaultaltit,$needrise, $needset, $y, $m, $dy, $offset);


Wäre es möglich, dies in die svn-Version einzuspielen?

Gruß
tupol

betateilchen

Zitat von: tupol am 11 Mai 2014, 11:28:57
use lib ".";
use lib "./FHEM";


DAGEGEN!

Das feste Vorgeben von Pfaden hebelt den gesamten Mechnismus von modpath & Co. aus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tupol

"." ist ein relativer Pfad. Dein Argument ist nicht verständlich und nachvollziehbar formuliert. Was wird genau ausgehebelt? Wie sieht der Anwendungsfall aus?
Wie sollte Perl sonst wissen, wo es die Module suchen soll? Warum sind diese Pfade in der @INC, wenn sie da nichts zu suchen haben?

Dr. Boris Neubert

Zitat von: tupol am 11 Mai 2014, 11:28:57
aufgrund meiner kürzlichen Probleme "Fehlermeldung beim Start von fhem über console" http://forum.fhem.de/index.php/topic,23261.0.html möchte ich Dich bitten, zur Erhöhung der Robustheit folgende Ergänzung ins Modul fhem.pl einzufügen.
use lib ".";
use lib "./FHEM";


Dadurch werden negative Auswirkungen einer Veränderung von @INC und folgende Fehlermeldungen verhindert.
Use of uninitialized value in concatenation (.) or string at fhem.pl line 1936, <$fh> line 8.
Can't locate RTypes.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at fhem.pl line 434.



. gehört m.E. nach nicht in den Library-Path. Das aktuelle Verzeichnis ist nach meinem Erfahrungen abhängig von dem Programm, das fhem.pl aufruft und nicht das Verzeichnis, wo fhem.pl liegt. Ich habe mir das beim Einbau von RTypes.pm selbst angeschaut diese Variante war keine Lösung sondern nur die, die Rudi danach eingebaut hat.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatWie sollte Perl sonst wissen, wo es die Module suchen soll?
Steht in "attr global modpath", was wiederum in fhem.cfg (oder configDB) steht, was wiederum auf der Kommandozeile beim Start spezifiziert wird.

ZitatWarum sind diese Pfade in der @INC, wenn sie da nichts zu suchen haben?
./FHEM steht drin, weil "attr global modpath ." seit FHEM 5.3 default bei der Auslieferung ist.
. war vermutlich vorher schon da, siehe
perl -e 'print join("\n",@INC),"\n"'
Ich gehe davon aus, dass das in FHEM nicht benoetigt wird.

ZitatNot enough arguments for main::_sr_alt at ./FHEM/99_SUNRISE_EL.pm line 124, near "@_)"
Da ich davon bisher noch nicht gehoert habe, moechte ich gerne verstehen, woher das kommt.
Welche Perl Version auf welchem Plattform setzt Du ein?

tupol

RPi (siehe Signatur)
perl -V
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:

  Platform:
    osname=linux, osvers=3.2.0-4-mx5, archname=arm-linux-gnueabihf-thread-multi-64int
    uname='linux plugwash.raspbian.lan 3.2.0-4-mx5 #1 debian 3.2.39-2 armv7l gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dcc=cc -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Dldflags= -Wl,-z,relro -Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=arm-linux-gnueabihf -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.7.2', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/arm-linux-gnueabihf /lib /usr/lib/arm-linux-gnueabihf /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API
  Locally applied patches:
        DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts
        DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
        DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check.
        DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
        DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories.
        DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes.
        DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note that libperl-dev package is required for embedded linking
        DEBPKG:fixes/respect_umask - Respect umask during installation
        DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories
        DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of libperl.a to /usr/lib
        DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor
        DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables written to the makefile
        DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
        DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
        DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
        DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
        DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/517938 http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS.
        DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
        DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy
        DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need.
        DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038] http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
        DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local
        DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default.
        DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl.
        DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/580034 Point users to Debian packages of deprecated core modules
        DEBPKG:fixes/hurd-ccflags - [a190e64] http://bugs.debian.org/587901 [perl #92244] Make hints/gnu.sh append to $ccflags rather than overriding them
        DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
        DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
        DEBPKG:fixes/extutils-cbuilder-cflags - [011e8fb] http://bugs.debian.org/624460 [perl #89478] Append CFLAGS and LDFLAGS to their Config.pm counterparts in EU::CBuilder
        DEBPKG:fixes/module-build-home-directory - http://bugs.debian.org/624850 [rt.cpan.org #67893] Fix failing tilde test when run under a UID without a passwd entry
        DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.14.2-21+rpi2+deb7u1 in patchlevel.h
        DEBPKG:fixes/h2ph-multiarch - [e7ec705] http://bugs.debian.org/625808 [perl #90122] Make h2ph correctly search gcc include directories
        DEBPKG:fixes/index-tainting - [3b36395] http://bugs.debian.org/291450 [perl #64804] RT 64804: tainting with index() of a constant
        DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
        DEBPKG:fixes/sys-syslog-socket-timeout-kfreebsd.patch - http://bugs.debian.org/627821 [rt.cpan.org #69997] Use a socket timeout on GNU/kFreeBSD to catch ICMP port unreachable messages
        DEBPKG:fixes/hurd-hints - http://bugs.debian.org/636609 Improve general GNU hints, needed for GNU/Hurd.
        DEBPKG:fixes/pod_fixes - [7698aed] http://bugs.debian.org/637816 Fix typos in several pod/perl*.pod files
        DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text
        DEBPKG:fixes/digest_eval_hole - http://bugs.debian.org/644108 Close the eval "require $module" security hole in Digest->new($algorithm)
        DEBPKG:fixes/hurd-ndbm - [f0d0a20] [perl #102680] http://bugs.debian.org/645989 Add GNU/Hurd hints for NDBM_File
        DEBPKG:fixes/sysconf.t-posix - [8040185] [perl #102888] http://bugs.debian.org/646016 Fix hang in ext/POSIX/t/sysconf.t on GNU/Hurd
        DEBPKG:fixes/hurd-largefile - [1fda587] [perl #103014] http://bugs.debian.org/645790 enable LFS on GNU/Hurd
        DEBPKG:debian/hurd_test_todo_syslog - http://bugs.debian.org/650093 Disable failing GNU/Hurd tests in cpan/Sys-Syslog/t/syslog.t
        DEBPKG:fixes/hurd_skip_itimer_virtual - [rt.cpan.org #72754] http://bugs.debian.org/650094 Skip interval timer tests in Time::HiRes on GNU/Hurd
        DEBPKG:debian/hurd_test_skip_sigdispatch - http://bugs.debian.org/650188 Disable failing GNU/Hurd tests op/sigdispatch.t
        DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175 Disable failing GNU/Hurd tests dist/threads/t/stack.t
        DEBPKG:debian/hurd_test_skip_pipe - http://bugs.debian.org/650187 Disable failing GNU/Hurd tests io/pipe.t
        DEBPKG:debian/hurd_test_skip_io_pipe - http://bugs.debian.org/650096 Disable failing GNU/Hurd tests dist/IO/t/io_pipe.t
        DEBPKG:fixes/manpage_name_CPAN - http://bugs.debian.org/650448 [rt.cpan.org #73396] cpan/CPAN: add NAME headings in modules with POD
        DEBPKG:fixes/manpage_name_CPANPLUS - http://bugs.debian.org/650450 [rt.cpan.org #73398] cpan/CPANPLUS: add NAME headings in modules with POD
        DEBPKG:fixes/manpage_name_Test-Harness - http://bugs.debian.org/650451 [rt.cpan.org #73399] cpan/Test-Harness: add NAME headings in modules with POD
        DEBPKG:fixes/manpage_name_Term-UI - http://bugs.debian.org/650452 [rt.cpan.org #73400] cpan/Term-UI: add NAME headings in modules with POD
        DEBPKG:fixes/podlators_ae_ligature_fallback - http://bugs.debian.org/652851 Fix the ASCII fallback string for AE
        DEBPKG:fixes/fsf_postal_address - [de89470] Update references to the FSF's postal address
        DEBPKG:fixes/cpan_module_pod_fixes - [perl #106870] [rt.cpan.org #73447] [rt.cpan.org #73446] Fix POD formatting in Term-Cap and Pod-Parser
        DEBPKG:fixes/cgi_no_shellwords_pl - Use Text::ParseWords instead of shellwords.pl
        DEBPKG:fixes/path_max_fallback - [perl #109262] http://bugs.debian.org/656869 Don't use _POSIX_PATH_MAX as a fallback PATH_MAX
        DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/660195 [rt.cpan.org #28632] Make EU::MM pass LD through to recursive Makefile.PL invocations
        DEBPKG:fixes/propagate_tainted_errors.patch - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663158 [perl #111654] properly propagate tainted errors
        DEBPKG:debian/perl5db-x-terminal-emulator.patch - http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm in perl5db.pl
        DEBPKG:fixes/socket_cache_propagate - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659075 [rt.cpan.org #61577] [perl #112736] sockdomain and socktype undef on newly accepted sockets
        DEBPKG:fixes/ipc_open3 - [perl #114454] http://bugs.debian.org/683894 IPC::Open3::open3(..., '-') broken
        DEBPKG:fixes/string_repeat_overrun - http://bugs.debian.org/689314 [b675304] avoid calling memset with a negative count
        DEBPKG:debian/cpan-missing-site-dirs - http://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
        DEBPKG:fixes/kfreebsd-overrides - http://bugs.debian.org/689713 [perl #115324] [7dc6565] Remove unnecessary overrides in gnukfreebsd and gnuknetbsd hints.
        DEBPKG:fixes/tainted-smartmatch - [be88a5c] http://bugs.debian.org/690571 [perl #93590] $tainted ~~ [...] failing
        DEBPKG:fixes/regexp-matching-starter - [6e634c5] http://bugs.debian.org/690975 [perl #101710] Regression with /i, latin1 chars.
        DEBPKG:fixes/regexp-matching-fold - [399fb9c] http://bugs.debian.org/690976 regexec.c: Fix "\x{FB01}\x{FB00}" =~ /ff/i
        DEBPKG:fixes/regexp-matching-opposite-case - [dc91d5a] http://bugs.debian.org/690979 [perl #101970] /[[:lower:]]/i matches upper case
        DEBPKG:fixes/reading-glob-copy-handle - [fd1564b] http://bugs.debian.org/629363 [perl #92258] <$fh> hangs on a glob copy
        DEBPKG:fixes/smartmatch-rhs-precedence - http://bugs.debian.org/691102 [011be0b] Enforce Any ~~ Object smartmatch precedence
        DEBPKG:fixes/perlcheat-update - http://bugs.debian.org/691112 [ab0ae0a] Update PerlCheat to 5.14
        DEBPKG:fixes/cgi-cr-escaping - http://bugs.debian.org/693420 CR escaping for P3P and Set-Cookie headers
        DEBPKG:fixes/maketext-code-execution - [1735f6f] http://bugs.debian.org/695224 Fix misparsing of maketext strings.
        DEBPKG:fixes/storable-security-warning - [664f237] http://bugs.debian.org/695223 add a note about security concerns in Storable
        DEBPKG:fixes/digest-sha-doublefree - [rt.cpan.org #82655] http://bugs.debian.org/698172 [a8c6ff7] Fix a double-free bug in Digest::SHA
        DEBPKG:fixes/64bitint-signedness-wraparound - http://bugs.debian.org/698320 [94e529c] Avoid wraparound when casting unsigned size_t to signed ssize_t.
        DEBPKG:fixes/stdin-sigchld - http://bugs.debian.org/700171 [perl #116621] [be48bbe] add a couple missing LEAVEs in perlio_async_run()
        DEBPKG:fixes/hsplit-rehash - [d59e31f] http://bugs.debian.org/702296 Prevent premature hsplit() calls, and only trigger REHASH after hsplit()
        DEBPKG:fixes/encode-memleak - http://bugs.debian.org/702416 [5814803] Encode: Fixed a memory leak that occurred in the UTF-8 encoding.
        DEBPKG:fixes/threads_shared_elements_crash - [perl #119089] http://bugs.debian.org/718438 threads::shared should not crash if shared elements outlive their aggregate.
        DEBPKG:fixes/perlbug-patchlist - [3541c11] http://bugs.debian.org/710842 [perl #118433] Make perlbug look up the list of local patches at run time
        DEBPKG:fixes/digest_sha_double_free - [ee8c6f4] [rt.cpan.org #86295] http://bugs.debian.org/711206 maint-5.18: Digest-SHA crash fix in 5.85
        DEBPKG:fixes/pl_eval_start_use_after_free - [eae139f] [perl #115992] PL_eval_start use-after-free
        DEBPKG:fixes/regcomp_fix_segv - [ebb390a] [perl #115994] fix segv in regcomp.c:S_join_exact()
        DEBPKG:fixes/list_util_off_by_two - [623a911] fix off-by-two error in List::Util
        DEBPKG:fixes/sdbm_off_by_one - [7f5f08b] [perl #111586] sdbm.c: fix off-by-one access to global ".dir"
        DEBPKG:fixes/socket_unpack_sockaddr_un_heap_buffer_overflow - [e508642] [perl #111594] Socket::unpack_sockaddr_un heap-buffer-overflow
  Built under linux
  Compiled at Mar 22 2014 13:52:37
  @INC:
    /etc/perl
    /usr/local/lib/perl/5.14.2
    /usr/local/share/perl/5.14.2
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.14
    /usr/share/perl/5.14
    /usr/local/lib/site_perl
    .


Das "." ist vermutlich wegen modpath tatsächlich überflüssig. Was ist mit "./FHEM"? Wie gesagt, danach gab es keine Fehlermeldungen mehr.

betateilchen

Das ./FHEM wird von einem korrekt installierten, aktuellen und funktionierendem fhem automatisch beim Starten gesetzt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tupol

Zitat von: betateilchen am 11 Mai 2014, 17:46:29
Das ./FHEM wird von einem korrekt installierten, aktuellen und funktionierendem fhem automatisch beim Starten gesetzt.

Seltsamer Satz. FHEM war korrekt installiert und aktuell. Ohne den Pfad hat es natürlich nicht funktioniert. Also was soll ich mit so einem Satz anfangen???
Alles was ich auf meine Problembeschreibung zu hören bekam, endet mit "Irgendwie scheint FHEM kaputt zu sein." Das hat mir nicht weitergeholfen. Auch keine Neuinstallation von FHEM und Perl.

Erst das Eintragen der Verzeichnisse hat geholfen. Ich sehe nach wie vor keinen Schaden, sondern nur Nutzen. Aber ehrlich gesagt, sehe ich keinen Sinn, darüber zu diskutieren, ob ein Programm robust sein soll oder nicht. Die Notwendigkeit ist mit diesem Forum ja wohl ausreichend bewiesen.

Mein FHEM läuft wieder stabil. Der Rest liegt in Rudi's Ermessen und bei den Forumteilnehmern, die jetzt eventuell auf diesen Beitrag verweisen können.

betateilchen

Ist Dir eigentlich schonmal aufgefallen, dass Du immer der Einizge bist, der solche komische Probleme hat und der dann hier im Forum rummault und Dinge geändert haben möchte, die bei Hunderten von Anwendern absolut problemlos laufen?

Komischerweise gibt es unzählige fhem-Installationen auf Raspberry, die das von Dir beschriebene Problem NICHT haben. Also grundsätzlich an fhem selbst kann es wohl kaum liegen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tupol

#9
Liebes Betateilchen,

ich finde das Niveau auf dem Du mit mir und anderen kommuniziert und die vielen Unterstellungen echt anstrengend. Tu mir und den anderen Mitlesern den Gefallen und lass es sein.

PS: Ich bin daran interessiert, FHEM zu verbessern. Ich denke, das ist die einzige Basis, auf der man hier kommunizieren sollte.

tupol

Hallo Rudi,

bzgl. "use lib" und @INC bin ich zufällig gerade noch im FRM_IN-Modul auf entspechende Anpassungen gestolpert.

#add FHEM/lib to @INC if it's not allready included. Should rather be in fhem.pl than here though...
BEGIN {
if (!grep(/FHEM\/lib$/,@INC)) {
foreach my $inc (grep(/FHEM$/,@INC)) {
push @INC,$inc."/lib";
};
};
};


Vielleicht motiviert es Dich zu Änderung der fhem.pl  :D

rudolfkoenig

Ich habe jetzt mit perl 5.10,5.12,5.14 und 5.16 getestet (Ubuntu,FritzBox,OSX,Ubuntu), und ich sehe kein Problem mit SUNRISE. Da das bisher auch von keiner anderen Stelle gemeldet wurde, ich weder das Problem, noch die Loesung verstehe, unternehme ich erstmal nichts.

Das FRM zusaetzlich zu modpath/FHEM auch noch modpath/FHEM/lib hinzufuegt, weiss ich, da es aus diesem Verzeichnis Module laedt, da motiviert mich aber zu nichts.

Ich vermute dass der Benutzer im verlinkten Thread eine fhem.pl Version benutzt, was etwa 2 Tage lang (von 24.4 bis 26.4) per update verfuegbar war, und mit einem modpath, was nicht "." ist (z.Bsp. /usr/share/fhem in FHEM-X.deb, X<=5.2) nicht kompatibel war. Da hilft aber ein "./FHEM" in @INC auch nicht.

tupol

Hallo Rudi,

wie kann ich helfen, Dir das Problem verständlicher zu machen? Ich bekomme ja einfach nur die Fehlermeldung und habe versucht den Ausdruck so anzupassen, dass es funktioniert. Was kann ich sonst noch tun? Eventuell hilft es, wenn Du mir sagst, was die Funktion tut. Ich vermute an der Form des Aufrufes liegt es nicht.

rudolfkoenig

Rufst Du _sr direkt auf? Soweit ich es sehe, wird sie nirgendwo sonst benoetigt, da durch _sr_alt ersetzt wurde.
Aber selbst wenn ich sie direkt aufrufe, bekomme ich keine Fehlermeldung.
Wenn Du sie nicht benoetigst, wuerde ich sie komplett entfernen, ist ja eine SUNRISE_EL interne Funktion.

tupol

#14
Nein. Ich rufe sie nicht direkt auf. Der Fehler tritt auch auf, wenn ich alle sunrise/set gelöscht habe.
Wenn sie nirgend sonst aufgerufen wird, dann scheint ja der perl code irgendwie am Anfang interpretiert (compliert?) zu werden und der Interpreter (Compiler) wirft den Fehler aus. Leider kenne ich den Mechanismus nicht so richtig, aber vielleicht kannst Du Licht ins Dunkle bringen.

PS: Noch eine Idee. Eventuell sind bei meinem Interpreter die Default-Einstellung bei der Ausführung anders als bei Dir. Bloß wo könnte man sowas einstellen? Vielleicht kann man die Ausgabe von perl -V vergleichen. Vielleicht gibt es Unterschiede in der Fehlerempfindlichkeit und beim Anzeigen von Debugging Informationen? Würde zumindest erklären, warum der Fehler irgendwann zwischendrin erschien. Vermutlich nach dem fehlgeschlagenem Versuch über CPAN neue Module zu installieren.