[Gelöst]fhem.pl Warnung im Log

Begonnen von Tommy82, 04 Dezember 2014, 17:53:36

Vorheriges Thema - Nächstes Thema

Tommy82

Hallo,
ich bekomme im Log diese Warnmeldung:
2014.12.04 17:10:30.732 1: PERL WARNING: substr outside of string at fhem.pl line 630.

In Line 630 steht bei mir in der fhem.pl
$hash->{$wbName} = substr($wb, $ret);

Was ist der Fehler?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Elektrolurch

Hallo,

mal so ein paar Tipps:

Meist sind es ja die eigenen Daten, die nicht stimmen und zu Warnungen in anderen Modulen führen.

1. Schau erst einmal, welche subroutine da in der fhem.pl aufgerufen wird.
2. Da werden ja Parameter an die Subroutine übergeben.
Man könnte diese ja mal ausgeben und schauen, bei welchem Objekt Deines fhem-Baums die Warnung auftritt.
Wenn $hash der Zeiger auf das Objekt ist, dann enthält $hash->{NAME} den Namen des Objektes.

Und so kann man sich durchhangeln und herausfinden, was an seinen Daten wohl falsch sein könnte.

So allgemein, wie Du die Frage da oben gestellt hast, kann die keiner beantworeten, da müsste er schon Hellseher sein.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Tommy82

Zitat von: Elektrolurch am 04 Dezember 2014, 18:36:30
Hallo,

mal so ein paar Tipps:

Meist sind es ja die eigenen Daten, die nicht stimmen und zu Warnungen in anderen Modulen führen.

1. Schau erst einmal, welche subroutine da in der fhem.pl aufgerufen wird.
2. Da werden ja Parameter an die Subroutine übergeben.
Man könnte diese ja mal ausgeben und schauen, bei welchem Objekt Deines fhem-Baums die Warnung auftritt.
Wenn $hash der Zeiger auf das Objekt ist, dann enthält $hash->{NAME} den Namen des Objektes.

Und so kann man sich durchhangeln und herausfinden, was an seinen Daten wohl falsch sein könnte.

So allgemein, wie Du die Frage da oben gestellt hast, kann die keiner beantworeten, da müsste er schon Hellseher sein.

Gruß

Elektrolurch

Hallo Elektrolurch,
das will ich gerne tun, ich hoffe ich hab dich richtig verstanden, die letzte deklarierte sub vor line 630 ist diese:
################################################
# Main Loop
sub MAIN {MAIN:};               #Dummy


Und zu 2. wie müsste ich da genau vorgehen?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

Auch keine einfache Geschichte.
Bitte vor der Zeile 630 folgende Zeile einfuegen:
Log(1, "WB PROBLEM: $ret,".length($wb)) if(length($wb) < $ret);

und falls sie aufgerufen wird, bitte hier melden.

Tommy82

Hab deine Zeile eingefügt, und wede gucken was passiert.

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

#5
Hab den Fehler heute wieder:
2014.12.10 20:15:03.888 1: PERL WARNING: substr outside of string at fhem.pl line 630.

@Rudi, hatte deine Zeile eingefügt, ist aber wohl die Tage mit einem Update überschrieben worden.
Hab sie jetzt nochmal eingefügt
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

#6
Hallo,
hab auch hier jetzt Fehler, nach dem ich eben ein update und anschließenden shutdown restart durchgeführt habe

2015.01.01 12:28:41.071 3:     main::FW_Read                       called by fhem.pl (2947)
2015.01.01 12:28:41.072 3:     main::CallFn                        called by fhem.pl (606)


Edit
Noch eine Meldung
2015.01.01 19:07:11.160 1: PERL WARNING: substr outside of string at fhem.pl line 642.
2015.01.01 19:07:11.161 3: stacktrace:
2015.01.01 19:07:11.161 3:     main::__ANON__                      called by fhem.pl (642)



Edit2
Noch eine Meldung:
2015.01.02 19:43:26.821 1: PERL WARNING: substr outside of string at fhem.pl line 642.
2015.01.02 19:43:26.821 3: stacktrace:
2015.01.02 19:43:26.822 3:     main::__ANON__                      called by fhem.pl (642)
2015.01.02 19:45:03.367 1: PERL WARNING: substr outside of string at fhem.pl line 642.
2015.01.02 19:45:03.367 3: stacktrace:
2015.01.02 19:45:03.368 3:     main::__ANON__                      called by fhem.pl (642)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

Hi,
hab einen neuen fhem.pl Fehler, wenn ich über mein Boost Button meine HM-CC-RT-DN in den Boost Modus versetze
015.03.12 18:46:10.997 1: PERL WARNING: Use of uninitialized value $cmd in substitution (s///) at fhem.pl line 927.
2015.03.12 18:46:35.613 1: PERL WARNING: Useless use of reference constructor in void context at (eval 34973) line 1.
2015.03.12 18:46:35.613 3: eval: { \        fhem ("set Heizung_Tuer_ClimRT_tr,HeizungFenster_Clima controlMode boost") ; \        fhem ("define BoostOff at +00:00:10 set Heizung_Tuer_BOOST off")}
2015.03.12 18:46:35.662 3: CUL_HM set Heizung_Tuer_ClimRT_tr controlMode boost
2015.03.12 18:46:35.698 3: CUL_HM set HeizungFenster_Clima controlMode boost
2015.03.12 18:46:35.755 3: BoostModeOn_for10sec return value: SCALAR(0x2c4bcf0)


Der Boost Button siet so aus:
Internals:
   NAME       Heizung_Tuer_BOOST
   NR         66
   STATE      off
   TYPE       dummy
   Readings:
     2015-03-12 18:46:45   state           off
Attributes:
   devStateIcon off:BoostOff:on on:BoostOn:off
   fp_Heizung 328,976,0,,
   fp_Wohnzimmer 583,261,0,
   group      Heizung
   room       Wohnzimmer,Favourites
   webCmd     on

wodurch das notify
Internals:
   DEF        Heizung_Tuer_BOOST:on { \fhem ("set Heizung_Tuer_ClimRT_tr,HeizungFenster_Clima controlMode boost") ; \ fhem ("define BoostOff at +00:00:10 set Heizung_Tuer_BOOST off")}
   NAME       BoostModeOn_for10sec
   NOTIFYDEV  Heizung_Tuer_BOOST
   NR         67
   NTFY_ORDER 50-BoostModeOn_for10sec
   REGEXP     Heizung_Tuer_BOOST:on
   STATE      active
   TYPE       notify
   Readings:
     2015-03-12 21:18:05   state           active
Attributes:

aufgerufen wird,
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

Die Ursache der Meldung sind die ueberfluessigen \.
\fhem bedeutet: "gib mir die Adresse der Funktion fhem".
In diesem Zusammenhang ist das nach Ansicht des Perl Interpreters sinnlos, und ich kann das nachvollziehen.

rudolfkoenig

Weiterhin ist Perl mAn hier ueberfluessig:

define BoostModeOn_for10sec notify Heizung_Tuer_BOOST:on set Heizung_Tuer_ClimRT_tr,HeizungFenster_Clima controlMode boost;; sleep 10;; set Heizung_Tuer_BOOST off

Tommy82

Hallo,
bekomme dann diese Log Meldung:
Zitat2015.03.13 19:57:10.780 3: BoostModeOn_for10sec return value: controlMode requires parameter: [auto|manual|boost|day|night]
controlMode requires parameter: [auto|manual|boost|day|night]


Dann wird der boost Parameter nicht richtig erkannt
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

sieht mir nach einem Fehler in der devspec Auswertung aus, die dazu führt, dass nicht alle übergebenen Parameter weitergegeben werden...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

Zitat von: betateilchen am 13 März 2015, 20:06:02
sieht mir nach einem Fehler in der devspec Auswertung aus, die dazu führt, dass nicht alle übergebenen Parameter weitergegeben werden...

Das bedeutet? :-)

Hab aber jetzt mal wie Rudi meine die
Zitat\
entfernt, und dann kommt im Log keine Warnung mehr, sondern nur noch 2015.03.13 20:06:27.663 3: CUL_HM set Heizung_Tuer_ClimRT_tr controlMode boost
2015.03.13 20:06:27.700 3: CUL_HM set HeizungFenster_Clima controlMode boost


Wobei ich die Meldung bei verbose 3 im Log auch nicht ganz verstehen kann!?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

das ist einfach die Bestätigung, dass die Befehle ausgeführt wurden - was verstehst Du daran nicht?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

Ok, war falsch war der Meinung bei verbose 3 würden nur die Fehler Protokolliert, aber werden ja auch die Events Protokolliert, sorry
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI