Hallo,
der jetzige Code vom Modul umfasst PEARL WARNINGS.
PEARL WARNINGS sind zwar keine Fehler, sie stellen aber eine unsaubere Umsetzung dar ;)
Da ich selbst das IT Modul nutze und auch allen anderen Usern "helfen" möchte einen sauberen Code zu erhalten, bitte ich den Code zu fixen.
Die Zeile
} else {
$msgcode=$msgcode.$bintotristateV3{substr($bin,0,2)};
}
generiert diesen Fehler.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
------------------------------------------------------------------------------------------------------------------------------------------
Desweiteren möchte ich bitten, diesen schon angezeigten Patch (https://forum.fhem.de/index.php/topic,87336.0.html) in den Code zu implementieren.
Mfg
ZitatHexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 953.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 953.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
::)
Die Meldungen kann ich aktuell nicht nachvollziehen.
Was für eine Perl Version hast Du am laufen?
Gruß
Björn
Die Perl Version auf dem Pi ist die v5.24.1.
Wie können wir am günstigen den Fehler finden / eingrenzen? Das Verhalten legt die Steuerung der AB400 Steckdosen lahm.
Das was spanisch ist, nach einem Reset läuft es kurz bis zum Auftreten oder ,,Veränderung" des Wertes der zu dem Fehler führt.
ZitatHexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 953.
schau mal hier:
http://pw.de/memos/20101214.html
http://www.perl-community.de/bat/poard/thread/16059
ZitatUse of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986.
Ohne die Nachricht ($msg) die diese Meldungen auslöst, wird es wahrscheinlich recht schwer den Fehler einzugrenzen.
Gruß Ralf
Hallo,
ZitatOhne die Nachricht ($msg) die diese Meldungen auslöst, wird es wahrscheinlich recht schwer den Fehler einzugrenzen.
hier sind die Erkenntnisse nachdem ich mal mein Logfile füllen lies über Nacht.
3 unterschiedliche Zeitpunkte und somit 3 unterschiedliche Nachrichten.
Zitat2018.10.17 02:45:09 4: nano_433Mhz/msg READredu: MS;P0=-3980;P1=525;P4=-9148;P5=-1910;P7=-944;D=1415171517171515151517171717171717171515151715171715151515171717171717171710151715171715151515171717171717171715151517151717151515151717171717171;CP=1;SP=4;R=242;
2018.10.17 02:45:09 4: nano_433Mhz: Matched MS Protocol id 4 -> arctech2
2018.10.17 02:45:09 4: nano_433Mhz: Decoded MS Protocol id 4 dmsg iA78074F0000 length 36 RSSI = -81
2018.10.17 02:45:09 4: nano_433Mhz IT: message "iA78074F0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 02:45:09 4: nano_433Mhz IT: msgcode "1101DDD00DDDDDDDDD" (18) bin = 10100111100000000111010011110000000000000000
2018.10.17 02:45:09 4: nano_433Mhz IT: Wrong IT message received: 1101DDD00DDDDDDDDD
2018.10.17 02:45:09 4: nano_433Mhz IT: message "iA78074F0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 02:45:09 4: nano_433Mhz IT: msgcode "1101DDD00DDDDDDDDD" (18) bin = 10100111100000000111010011110000000000000000
2018.10.17 02:45:09 4: nano_433Mhz IT: Wrong IT message received: 1101DDD00DDDDDDDDD
2018.10.17 02:45:09 3: nano_433Mhz: Unknown code iA78074F0000, help me!
2018.10.17 02:45:09 4: nano_433Mhz: Matched MS Protocol id 17 -> arctech / intertechno
Zitat2018.10.17 07:36:47 4: nano_433Mhz/msg READredu: MS;P0=-116;P2=523;P3=-9172;P4=-1922;P5=-944;P6=-3968;D=2324252425252424242425252525252525252424252424252524242424252525252525252526242524200;CP=2;SP=3;R=241;
2018.10.17 07:36:47 4: nano_433Mhz: Matched MS Protocol id 0 -> weather1
2018.10.17 07:36:47 4: nano_433Mhz: Matched MS Protocol id 4 -> arctech2
2018.10.17 07:36:47 4: nano_433Mhz: Decoded MS Protocol id 4 dmsg iA7806CF0000 length 36 RSSI = -81.5
2018.10.17 07:36:47 4: nano_433Mhz IT: message "iA7806CF0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 07:36:47 4: nano_433Mhz IT: msgcode "1101DDD01DDDDDDDDD" (18) bin = 10100111100000000110110011110000000000000000
2018.10.17 07:36:47 4: nano_433Mhz IT: Wrong IT message received: 1101DDD01DDDDDDDDD
2018.10.17 07:36:47 4: nano_433Mhz IT: message "iA7806CF0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 07:36:47 4: nano_433Mhz IT: msgcode "1101DDD01DDDDDDDDD" (18) bin = 10100111100000000110110011110000000000000000
2018.10.17 07:36:47 4: nano_433Mhz IT: Wrong IT message received: 1101DDD01DDDDDDDDD
2018.10.17 07:36:47 3: nano_433Mhz: Unknown code iA7806CF0000, help me!
2018.10.17 07:36:47 4: nano_433Mhz: Matched MS Protocol id 68 -> PFR-130
2018.10.17 07:45:20 4: nano_433Mhz/msg READredu: MS;P2=528;P4=-9112;P5=-1917;P6=-867;D=242526252626252525252626262626262626252526252625252525252526262626260;CP=2;SP=4;R=242;
2018.10.17 07:45:20 4: nano_433Mhz: Matched MS Protocol id 4 -> arctech2
2018.10.17 07:45:20 4: nano_433Mhz: Decoded MS Protocol id 4 dmsg iA7806BF0000 length 36 RSSI = -81
2018.10.17 07:45:20 4: nano_433Mhz IT: message "iA7806BF0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 07:45:20 4: nano_433Mhz IT: msgcode "1101DDD011DDDDDDDD" (18) bin = 10100111100000000110101111110000000000000000
2018.10.17 07:45:20 4: nano_433Mhz IT: Wrong IT message received: 1101DDD011DDDDDDDD
2018.10.17 07:45:20 4: nano_433Mhz IT: message "iA7806BF0000" (12)
Hexadecimal number > 0xffffffff non-portable at ./FHEM/10_IT.pm line 955.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.10.17 07:45:20 4: nano_433Mhz IT: msgcode "1101DDD011DDDDDDDD" (18) bin = 10100111100000000110101111110000000000000000
2018.10.17 07:45:20 4: nano_433Mhz IT: Wrong IT message received: 1101DDD011DDDDDDDD
2018.10.17 07:45:20 3: nano_433Mhz: Unknown code iA7806BF0000, help me!
Zitatnano_433Mhz IT: message "iA78074F0000" (12)
Dies sieht mir nach einer fehlerhaften oder nicht vom IT-Modul unterstützten Nachricht aus.
Wenn man diese Abfrage
if (length($msg) != 7 && length($msg) != 12 && length($msg) != 17 && length($msg) != 19 && length($msg) != 20) {
Log3 $hash,3,"$ioname IT: message \"$msg\" (" . length($msg) . ") too short!";
return undef;
}
Log3 $hash,4,"$ioname IT: message \"$msg\" (" . length($msg) . ")";
damit ersetzt,
my $msgLength = length($msg);
my $msgPos1 = substr($msg, 1, 1);
if ($msgLength == 7 || ($msgLength == 12 && $msgPos1 eq 'h') || $msgLength == 17 || $msgLength == 19 || ($msgLength == 20 && $msgPos1 eq 'h')) {
Log3 $hash,4,"$ioname IT: message \"$msg\" ($msgLength)";
} else {
Log3 $hash,3,"$ioname IT: message \"$msg\" ($msgLength) wrong length!";
return "";
}
dann ist dies weg
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986
Nachtrag:
Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 986
diese Fehlermeldung entsteht, wenn eine ITv3 Nachricht die undefinierte Codierung "11" enthält.
my %bintotristateV3=(
"10" => "1",
"01" => "0",
"00" => "D"
);
Da müsste noch eine Abfrage nach "11" eingebaut werden.
Gruß Ralf
Aber mal doof gefragt, bei IT V3 gibt es doch eigentlich keine 11. Ok ich hab da schon lange nichts mehr gemacht, vielleicht hat sich das ja geändert.
Das müssten doch dann eher Empfangsprobleme sein.
Die Frage ist halt dann auf was sollte das korrekterweise gemappt werden.
Ach so, und beim senden via CUL kommt dann ein HLHL mit synchroner Zeit raus.
Ich baue das mal ein, aber ich würde euch bitten, dass Ihr das testet.
Anbei das geänderte Modul.
Ich kann es leider immer noch nicht nachvollziehen. Mein ITV3 Handsender scheint wohl irgendwie zu perfekt zu sein ;-)
Ja die 11 dürften eigentlich nur bei fehlerhaften Nachrichten vorkommen.
Ich kann es nachvollziehen, wenn ich mit iA78074F0000 oder i3A01ABDE800 ein dispatch zum IT-Modul mache.
Die warnings kommen bei mir nach einem fhem neustart nur einmal. Evtl kommen diese warnings bei einer neueren fhem oder perl Version öfters.
Gruß Ralf
Ich denke, wenn wir hier von Empfangsfehlern reden, so sollten wir das aber mit abdecken.
1) die Fehlermeldungen führen bis zum nicht emfpangen von funktionstüchtigen Teilnehmern des Modules
2) die Fehlermeldung "nervt" ja auch irgendwann und ist Logfile füllend
Funk ist nun mal störanfällig und wenn jemand in der Ferne sendet, können div. Fehler auftreten. Persönlich bin ich der Meinung, Fehler "abfangen" und nicht hinnehmen.
Wir wissen das, aber dann kommt ein anderer User X hinzu und dann kommt das Thema wieder auf. Dem können wir damit vorbeugen.
Mapping, worauf, können wir da nicht etwas "unbekanntes" nehmen und dies mit einem Kommentar dahinter versehen?
Bsp: A wie Ausfall?
"11" => "A" ## Fehler bei Empfang
Hallo zusammen,
via g00gle bin ich von https://forum.fhem.de/index.php?topic=92161.0 auf diesen Thread gekommen und habe heute einige Warnings vom IT-Modul erhalten.
Folgendes finde ich im Log (scheint etwas vom Nachbarn zu sein) anscheinend durch ein autocreate initiiert:
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_IT.pm line 988.
2018.12.22 10:23:10 1: PERL WARNING: substr outside of string at ./FHEM/10_IT.pm line 1016.
2018.12.22 10:23:10 1: PERL WARNING: substr outside of string at ./FHEM/10_IT.pm line 1017.
2018.12.22 10:23:10 1: PERL WARNING: substr outside of string at ./FHEM/10_IT.pm line 1018.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $groupBit in concatenation (.) or string at ./FHEM/10_IT.pm line 1019.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $unitCode in concatenation (.) or string at ./FHEM/10_IT.pm line 1019.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $groupBit in concatenation (.) or string at ./FHEM/10_IT.pm line 1130.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $unitCode in concatenation (.) or string at ./FHEM/10_IT.pm line 1130.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $onoffcode in concatenation (.) or string at ./FHEM/10_IT.pm line 1130.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $groupBit in concatenation (.) or string at ./FHEM/10_IT.pm line 1131.
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $unitCode in concatenation (.) or string at ./FHEM/10_IT.pm line 1131.
2018.12.22 10:23:10 2: autocreate: define IT_V3_7fffff IT 011111111111111111111111
2018.12.22 10:23:10 1: PERL WARNING: Use of uninitialized value $a[3] in string eq at ./FHEM/10_IT.pm line 710.
2018.12.22 10:23:10 1: define IT_V3_7fffff IT 011111111111111111111111 : Define IT_V3_7fffff: wrong IT-Code format: specify a 10 digits 0/1/f
2018.12.22 10:23:10 1: ERROR: Define IT_V3_7fffff: wrong IT-Code format: specify a 10 digits 0/1/f
2018.12.22 10:23:10 2: autocreate: define IT_V3_7fffff IT 011111111111111111111111
2018.12.22 10:23:10 1: define IT_V3_7fffff IT 011111111111111111111111 : Define IT_V3_7fffff: wrong IT-Code format: specify a 10 digits 0/1/f
2018.12.22 10:23:10 1: ERROR: Define IT_V3_7fffff: wrong IT-Code format: specify a 10 digits 0/1/f
Ich habe gestern erst ein FHEM Update gemacht, version vom IT Modul:
10_IT.pm 17540 2018-10-15 19:00:42Z bjoernh
Perl Version ist 5.20.2.
Kann ich -neben autocreate deaktivieren- irgendwas tun um diese Warnings zu unterbinden?
Vielen Dank im Voraus.
Hallo,
du müsstest mal schauen wieso die Warnings kommen um diese ggf zu reproduzieren sonst tappt man fast im Dunklen.
Edit: Was für ein Empfänger benutzt du?
Lg
Warum die Warning kommen, weiss ich nicht. Ich habe diese heute morgen so erhalten wie oben gepostet. ich vermute, dass der 433 selbstbau CUL was empfangen hat und das autocreate versucht hat, ein IT device anzulegen, was irgendwie scheiterte.
Anbei ein List des empfangenden CULs:
Internals:
CMDS ABCeFfGiKLlMNRTtUVWXx
Clients :FS20:FHT.*:KS300:USF1000:BS:HMS:FS20V: :CUL_EM:CUL_WS:CUL_FHTTK:CUL_HOERMANN: :ESA2000:CUL_IR:CUL_TX:Revolt:IT:UNIRoll:SOMFY: :STACKABLE_CC:TSSTACKED:STACKABLE:CUL_RFR::CUL_TCM97001:CUL_REDIRECT::OREGON::Hideki::SD_WS07:
DEF /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0@38400 0000
DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0@38400
FD 11
FHTID 0000
NAME nanoCUL_433_1
NR 36
PARTIAL
RAWMSG omB8D062568F8049B5B0E7
RSSI -92.5
STATE 2018-12-22 16:21:55 Initialized
TIME 1545492029
TYPE CUL
VERSION V 1.26.03 a-culfw Build: 300 (2018-04-15_20-15-39) nanoCUL433 (F-Band: 433MHz)
initString X21
nanoCUL_433_1_MSGCNT 310
nanoCUL_433_1_TIME 2018-12-22 16:21:55
.attraggr:
.attrminint:
.clientArray:
IT
CUL_TCM97001
MatchList:
0:FS20V ^81..(04|0c)..0101a001......00[89a-f]...
1:USF1000 ^81..(04|0c)..0101a001a5ceaa00....
2:BS ^81..(04|0c)..0101a001a5cf
3:FS20 ^81..(04|0c)..0101a001
4:FHT ^81..(04|09|0d)..(0909a001|83098301|c409c401)..
5:KS300 ^810d04..4027a001
6:CUL_WS ^K.....
7:CUL_EM ^E0.................$
8:HMS ^810e04......a001
9:CUL_FHTTK ^T[A-F0-9]{8}
A:CUL_RFR ^[0-9A-F]{4}U.
B:CUL_HOERMANN ^R..........
C:ESA2000 ^S................................$
C:Hideki ^P12#75[A-F0-9]{17,30}
C:OREGON ^(3[8-9A-F]|[4-6][0-9A-F]|7[0-8]).*
C:SD_WS07 ^P7#[A-Fa-f0-9]{6}F[A-Fa-f0-9]{2}
D:CUL_IR ^I............
E:CUL_TX ^TX[A-F0-9]{10}
F:Revolt ^r......................$
G:IT ^i......
H:STACKABLE_CC ^\*
I:UNIRoll ^[0-9A-F]{5}(B|D|E)
J:SOMFY ^Y[r|t|s]:?[A-F0-9]+
K:CUL_TCM97001 ^s[A-F0-9]+
L:CUL_REDIRECT ^o+
M:TSSTACKED ^\*
N:STACKABLE ^\*
READINGS:
2018-12-22 15:07:02 Initialized
2018-03-05 17:04:02 ccconf freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
2018-12-22 15:07:14 cmds A B C e F f G i K L l M N R T t U V W X x
2018-12-22 15:47:08 raw isFFFF0FFF0F0F
2018-12-22 16:21:55 state Initialized
2018-08-16 20:14:46 uptime 0 00:13:58
2018-05-26 11:19:49 version V 1.26.03 a-culfw Build: 300 (2018-04-15_20-15-39) nanoCUL433 (F-Band: 433MHz)
Attributes:
DbLogExclude .*