Use of uninitialized value in concatenation (.) or string at ./FHEM/98_XmlList.p

Begonnen von AET_FHEM, 30 April 2017, 09:51:22

Vorheriges Thema - Nächstes Thema

AET_FHEM

Hallo,

seit einem Monat habe ich in meinem Log ständig die Meldung Use of uninitialized value in concatenation (.) or string at ./FHEM/98_XmlList.pm line 55.
das kommt dann 20 -40 oder 60 linien und dann ist mal wieder kurz ruhe und dann wieder, aber ich find einfach nicht was der Auslöser ist...
Wie finde ich das raus
kann das sein das das mit dem Use of uninitialized value $ret in numeric le (<=) at FHEM/HttpUtils.pm line 449. zusammenhängt diese Meldung bekomm ich seit neustem auch immer mal wieder ....
:(

was macht die XmlList ??

Grüße
AET_FHEM

DeeSPe

FHEM mal aktualisiert?

Benutzt Du irgendwelchen Custom-Code?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

AET_FHEM


DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

AET_FHEM


DeeSPe

Zitat von: AET_FHEM am 30 April 2017, 21:33:24
ja mehrere
kann das an denen liegen?

Wenn niemand Anderes ähnliche Probleme hat, dann würde ich dort anfangen zu suchen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

dl2ecg

bei mir ähnliche Meldung aber im Modul FHEMWEB

Use of uninitialized value $a in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm

seit upgrade auf 5.8

AET_FHEM

Hallo

bei mir kam es von einer 99_myUtils

Der Tip von Den war Super!!!
--> hab mal alle aussortiert die ich nicht mehr benutze oder nur aus testzwecken drin waren, seit dem ist ruhe im Log :-)

aber was genau der auslöser war weiss ich noch nciht so genau!

Grüße
AET

mthome

Hallo zusammen,

ich habe ein ähnliches Problem. In meinem Fall ist die Warnung "Use of uninitialized value in concatenation (.) or string at (eval 38) line 1"

Die Warnung kommt von einem StateFormat den ich verwende um von einer Zeitangabe das Datum abzuschneiden:

stateFormat: {my @lichtan = split (" ",ReadingsVal("Abendlicht","timer_01_c01",""));return $lichtan[1]}

Zuvor hatte ich "return @lichtan[1]" verwendet - da habe ich aber eine Warnung bekommen es wäre besser "$" zu nehmen.

Hat jemand eine Idee, wie ich die Warnung loswerde?

Vielen Dank im Voraus,
Michael

Wzut

entweder enthält timer_01_c01 in dem Fall gar kein Leerzeichen so das splitt nicht zwei Teile erzeugen kann oder kann gar nicht gelesen werden und du gibst als default "" vor das auch nicht mit split " " zerlegt werden kann. Das @ , $ Problem kannst du auch elegant mit my (undef,$lichtan) lösen da du eh immer nur $lichtan[1] benötigst, teste doch mal was zutrift  mit:
{my (undef,$lichtan) = split (" ",ReadingsVal("Abendlicht","timer_01_c01"," 0:00")); return $lichtan if $lichtan; return "?:??"; }

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

mthome

Zitat von: Wzut am 04 Mai 2017, 07:57:36
entweder enthält timer_01_c01 in dem Fall gar kein Leerzeichen so das splitt nicht zwei Teile erzeugen kann oder kann gar nicht gelesen werden und du gibst als default "" vor das auch nicht mit split " " zerlegt werden kann. Das @ , $ Problem kannst du auch elegant mit my (undef,$lichtan) lösen da du eh immer nur $lichtan[1] benötigst, teste doch mal was zutrift  mit:
{my (undef,$lichtan) = split (" ",ReadingsVal("Abendlicht","timer_01_c01"," 0:00")); return $lichtan if $lichtan; return "?:??"; }

Danke für den Tipp. Hat aber leider auch nicht geholfen. Ein wichtiger Hinweis vielleicht noch - die Meldung kommt immer nur bei einem restart von fhem. Aber ich probiere einfach noch ein bisschen in die Richtung ... Ein Leerzeichen ist definitiv enthalten und das stateformat arbeitet ja auch wie gewünscht...nur die Warnung im Log nach einen fhem restart stört mich  >:(.

Thorsten Pferdekaemper

Zitat von: mthome am 04 Mai 2017, 07:25:08Die Warnung kommt von einem StateFormat den ich verwende um von einer Zeitangabe das Datum abzuschneiden:
Woher weißt Du das?
Gruß,
   Thorsten
FUIP

mthome

Zitat von: Thorsten Pferdekaemper am 04 Mai 2017, 23:24:48
Woher weißt Du das?
Gruß,
   Thorsten
wenn ich die Stateformate entferne und neu starte ist die Meldung weg  ;)

Thorsten Pferdekaemper

Hi,
kannst Du mal ein "list Abendlicht" liefern?
Gruß,
   Thorsten
FUIP

mthome

Hallo Thorsten,

Asche auf mein Haupt (ich glaube es kommt von einem anderen stateformat :o). Ich habe zwei DOIFs welche ich mit stateformat anzeigen lasse: Abendlicht und Rolladenautomatik.

Ich hatte immer beide stateformats rausgenommen (da ich dachte sind ja identisch) und die Warnungen waren weg. Jetzt habe ich nur den stateformat von Rolledenautomatik gelöscht und die Fehlermeldungen waren auch weg :-o. Sobald ich den stateformat bei Rolledenautomatik konfiguriere erhalte ich folgende Warnung im Log:
2017.05.07 09:30:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 33) line 1.
2017.05.07 09:30:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 36) line 1.
2017.05.07 09:30:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 38) line 1.
2017.05.07 09:30:36 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 40) line 1.

Hier beide lists (Rolladenautomatik und Abendlicht). Ich vermute die aktuelle Fehlermeldung kommt von Rolladenautomatik - deswegen dieser list zuerst.

Hier list Rolladenautomatik (Ui - ist das lang):
Internals:
   DEF        ([?status.Rolladenautomatik] eq "on" and ([{sunrise(+1200,"06:30","09:00")}|7] or [{sunrise(+1200,"05:00","09:00")}|8]))   (set Rolladen_Auf on) DOELSEIF ([?status.Rolladenautomatik] eq "on" and ([{sunset(-900,"16:30","22:00")}|7] or [{sunset(-900,"16:30","22:00")}|8])) (set Rolladen_Ab on)
   NAME       Rolladenautomatik
   NR         97
   NTFY_ORDER 50-Rolladenautomatik
   STATE      WE: 06:30:00|7 - 21:17:29|7<br/>WT: 05:32:14|8 - 21:17:29|8
   TYPE       DOIF
   Readings:
     2017-05-07 06:30:00   cmd             1
     2017-05-07 06:30:00   cmd_event       timer_1
     2017-05-07 06:30:00   cmd_nr          1
     2017-05-07 06:30:00   state           cmd_1
     2017-05-07 06:30:00   timer_01_c01    08.05.2017 06:30:00|7
     2017-05-07 05:34:05   timer_02_c01    08.05.2017 05:32:14|8
     2017-05-06 21:15:46   timer_03_c02    07.05.2017 21:17:29|7
     2017-05-06 21:15:46   timer_04_c02    07.05.2017 21:17:29|8
   Condition:
     0          InternalDoIf($hash,'status.Rolladenautomatik','STATE') eq "on" and (DOIF_time_once($hash,0,$wday,"7") or DOIF_time_once($hash,1,$wday,"8"))
     1          InternalDoIf($hash,'status.Rolladenautomatik','STATE') eq "on" and (DOIF_time_once($hash,2,$wday,"7") or DOIF_time_once($hash,3,$wday,"8"))
   Days:
     0          7
     1          8
     2          7
     3          8
   Devices:
   Do:
     0:
       0          set Rolladen_Auf on
     1:
       0          set Rolladen_Ab on
     2:
   Helper:
     event      timer_1
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev
     timerevent timer_1
     timereventsState
     triggerDev
     timerevents:
       timer_1
     triggerEvents:
       timer_1
   Internals:
     0           status.Rolladenautomatik:STATE
     1           status.Rolladenautomatik:STATE
     all         status.Rolladenautomatik:STATE
   Interval:
   Itimer:
   Localtime:
     0          1494217800
     1          1494214334
     2          1494184649
     3          1494184649
   Readings:
   Realtime:
     0          06:30:00
     1          05:32:14
     2          21:17:29
     3          21:17:29
   Regexp:
     All:
   State:
     State:
   Time:
     0          {sunrise(+1200,"06:30","09:00")}
     1          {sunrise(+1200,"05:00","09:00")}
     2          {sunset(-900,"16:30","22:00")}
     3          {sunset(-900,"16:30","22:00")}
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timers:
     0           0  1
     1           2  3
   Triggertime:
     1494184649:
       localtime  1494184649
       Hash:
     1494214334:
       localtime  1494214334
       Hash:
     1494217800:
       localtime  1494217800
       Hash:
Attributes:
   room       System
   stateFormat {my @rolloaufwe = split(" ",ReadingsVal("Rolladenautomatik","timer_01_c01"," ??:??")); my @rolloaufwt = split(" ",ReadingsVal("Rolladenautomatik","timer_02_c01"," ??:??"));my @rolloabwe = split(" ",ReadingsVal("Rolladenautomatik","timer_03_c02"," ??:??")); my @rolloabwt = split(" ",ReadingsVal("Rolladenautomatik","timer_04_c02"," ??:??"));return "WE: $rolloaufwe[1] - $rolloabwe[1]<br/>WT: $rolloaufwt[1] - $rolloabwt[1]"}


Hier list Abendlicht:
Internals:
   DEF        ([[Lichtverhaeltnis:ss_weather]|78]) ((set licht.fl.Flurlicht,licht.wz.Tischlampe1,licht.wz.Tischlampe2 on)) DOELSEIF ([22:25]) ((set licht.fl.Flurlicht,licht.wz.Tischlampe1,licht.wz.Tischlampe2 off))
   NAME       Abendlicht
   NR         96
   NTFY_ORDER 50-Abendlicht
   STATE      20:00:50|78 - 22:25:00
   TYPE       DOIF
   Readings:
     2017-05-06 22:25:00   cmd             2
     2017-05-06 22:25:00   cmd_event       timer_2
     2017-05-06 22:25:00   cmd_nr          2
     2017-05-06 22:25:00   state           cmd_2
     2017-05-07 06:00:55   timer_01_c01    07.05.2017 20:00:50|78
     2017-05-06 22:25:00   timer_02_c02    07.05.2017 22:25:00
   Condition:
     0          DOIF_time_once($hash,0,$wday,"78")
     1          DOIF_time_once($hash,1,$wday)
   Days:
     0          78
   Devices:
   Do:
     0:
       0          (set licht.fl.Flurlicht,licht.wz.Tischlampe1,licht.wz.Tischlampe2 on)
     1:
       0          (set licht.fl.Flurlicht,licht.wz.Tischlampe1,licht.wz.Tischlampe2 off)
     2:
   Helper:
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev
     timerevent timer_2
     timereventsState
     triggerDev
     timerevents:
       timer_2
     triggerEvents:
       timer_2
   Internals:
   Interval:
   Itimer:
     all         Lichtverhaeltnis
   Localtime:
     0          1494180050
     1          1494188700
   Readings:
   Realtime:
     0          20:00:50
     1          22:25:00
   Regexp:
     All:
   State:
     State:
   Time:
     0          [Lichtverhaeltnis:ss_weather]
     1          22:25:00
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timers:
     0           0
     1           1
   Triggertime:
     1494180050:
       localtime  1494180050
       Hash:
     1494188700:
       localtime  1494188700
       Hash:
Attributes:
   room       System
   stateFormat {my @lichtan = split(" ",ReadingsVal("Abendlicht","timer_01_c01"," ??:??"));my @lichtaus = split(" ",ReadingsVal("Abendlicht","timer_02_c02"," ??:??"));return "$lichtan[1] - $lichtaus[1]"}