FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: tupol am 11 Mai 2014, 11:28:57

Titel: Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 11 Mai 2014, 11:28:57
Hallo Rudi,

aufgrund meiner kürzlichen Probleme "Fehlermeldung beim Start von fhem über console" http://forum.fhem.de/index.php/topic,23261.0.html (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
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: betateilchen am 11 Mai 2014, 12:50:53
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 11 Mai 2014, 15:02:30
"." 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?
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: Dr. Boris Neubert am 11 Mai 2014, 16:02:26
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 (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
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 11 Mai 2014, 16:40:51
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?
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 11 Mai 2014, 17:16:05
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: betateilchen am 11 Mai 2014, 17:46:29
Das ./FHEM wird von einem korrekt installierten, aktuellen und funktionierendem fhem automatisch beim Starten gesetzt.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 11 Mai 2014, 19:17:07
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: betateilchen am 11 Mai 2014, 19:53:30
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 11 Mai 2014, 21:06:18
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 12 Mai 2014, 09:44:33
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
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 12 Mai 2014, 10:12:54
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 12 Mai 2014, 18:52:09
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 12 Mai 2014, 23:34:33
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 13 Mai 2014, 07:06:03
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.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 13 Mai 2014, 09:57:25
Sicher wird 99_SUNRISE_EL am beim FHEM-Start eingelesen und geprueft, allerdings nur einmal, und du schreibst was von "staendig". Hilft es, wenn Du die Funktion entfernst?

Das dein Perl evtl. anders ist, das mag sein, und eine detailliertere Liste, als das was du hier angehaengt hast, brauche ich nicht. Ich habe es auch mit einem perl 5.14.2 getestet, und ich will nicht anfangen, perl zu debuggen.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 13 Mai 2014, 12:12:24
Hallo Rudi,

irgendwie reden wir aneinander vorbei. Mit meinem simplen Änderungsvorschlag läuft sunrise ja schon lange wieder.
Die Fehlermeldung kommt natürlich nur einmal beim Start (und nach reload), weil dann das Modul nicht geladen wird und alle sunrise/set Befehle ebenfalls nicht geladen werden.
Mein Vorschlag zur Änderung stellt keinen Verschlechterung da, sondern nur eine Verbesserung der Robustheit des Moduls. Mir hat gerade per PN ein User ohne "Developer"-Zugang geschrieben, dass bei Ihm ebenfalls CPAN Perl so verstellt hat, dass nix mehr funktionierte. Bin also nicht der einzige mit dem Problem und möchte nur vermeiden, dass anderen ihre RPi jedes mal komplett neu aufsetzen müssen, wenn sie mal CPAN nutzen. (Die Nutzung von CPAN wird in der commandref von dblog vorgeschlagen.)

Ich hoffe, es gibt kein update von sunrise weil ich dann jedes Mal die Änderung wieder von Hand einpflegen muss.  :(

Ich werde mal mit dem anderen Betroffenen versuchen herauszufinden, was CPAN bei mir verstellt hat.
Egal wie das endet. Das Modul ist auf dem RPi derzeit nicht gegen CPAN-Verstellungen gewappnet und mit meinem eigentlich sehr trivialen  ;) und nachvollziehbaren Änderungsvorschlag wäre das anders.  ;)
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 13 Mai 2014, 12:49:06
Zitatirgendwie reden wir aneinander vorbei.

Eindeutig, du hast meine Frage nicht beantwortet.

Ich bezweifle auch nicht dass du Probleme hast, und dein Patch sie loest, ich will aber _verstehen_ was ich mache, insbesondere in meinen Modulen. Und das ist bei deinem Patch noch nicht gegeben.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 13 Mai 2014, 20:13:12
Zitat von: rudolfkoenig am 13 Mai 2014, 12:49:06
Eindeutig, du hast meine Frage nicht beantwortet.
Oh, da habe ich wohl was übersehen. Oder meintest Du die Frage, ob es hilft, wenn Du die Funktion entfernst? Da war ja meine indirekte Antwort ein "Ja".
Ich habe inzwischen über PNs diverse Tipps zu dem CPAN Problem bekommen. Es wird für die RPi nicht empfohlen, sondern man sollte möglichst apt-get nutzen.
Letztendlich scheint Perl in meinem Fall aber einfach die Anzahl der Argumente zu zählen und @_ als einzelnes Argument anzusehen und einen Fehler auszugeben.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 13 Mai 2014, 21:40:05
ZitatDa war ja meine indirekte Antwort ein "Ja".

Aah. Hiermit ist die Funktion entfernt.
Titel: Antw:Änderungsvorschlag fhem.pl und 99_SUNRISE_EL.pm
Beitrag von: tupol am 13 Mai 2014, 22:09:48
Danke. ;D