FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Markus M. am 14 September 2018, 19:20:03

Titel: Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 14 September 2018, 19:20:03
Leider kann ich keine Geräte mehr anmelden, finde aber ein paar Fehler im Log.
Weiss jemand woran's liegt?

USB HMCFG, ansonsten funktioniert alles wie gehabt.


Wenn ich etwas tiefer einsteige, sieht es für mich so aus, als wäre $mh{devH}->{NAME} nicht definiert und ab da geht einiges schief.


Fehler bei Pairing (Aktuelle Version aus dem SVN):
2018.09.14 19:13:02 1: PERL WARNING: Use of uninitialized value $mh{"devN"} in regexp compilation at /opt/fhem/FHEM/10_CUL_HM.pm line 2976.
2018.09.14 19:13:02 1: stacktrace:
2018.09.14 19:13:02 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (2976)
2018.09.14 19:13:02 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 19:13:02 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 19:13:02 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 19:13:02 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 19:13:02 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.14 19:13:08 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4363.
2018.09.14 19:13:08 1: stacktrace:
2018.09.14 19:13:08 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4363)
2018.09.14 19:13:08 1:     main::AttrVal                       called by /opt/fhem/FHEM/10_CUL_HM.pm (1231)
2018.09.14 19:13:08 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 19:13:08 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 19:13:08 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 19:13:08 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 19:13:08 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.14 19:13:08 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4363.
2018.09.14 19:13:08 1: stacktrace:
2018.09.14 19:13:08 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4363)
2018.09.14 19:13:08 1:     main::AttrVal                       called by /opt/fhem/FHEM/10_CUL_HM.pm (1428)
2018.09.14 19:13:08 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 19:13:08 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 19:13:08 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 19:13:08 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 19:13:08 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.14 19:13:08 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4363.
2018.09.14 19:13:08 1: stacktrace:
2018.09.14 19:13:08 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4363)
2018.09.14 19:13:08 1:     main::AttrVal                       called by /opt/fhem/FHEM/10_CUL_HM.pm (1429)
2018.09.14 19:13:08 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 19:13:08 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 19:13:08 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 19:13:08 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 19:13:08 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.14 19:13:08 1: PERL WARNING: Use of uninitialized value $mh{"devN"} in regexp compilation at /opt/fhem/FHEM/10_CUL_HM.pm line 2976.
2018.09.14 19:13:08 1: stacktrace:
2018.09.14 19:13:08 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (2976)
2018.09.14 19:13:08 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 19:13:08 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 19:13:08 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 19:13:08 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 19:13:08 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)


Zwischendurch habe ich in letzter Zeit auch mal das hier beobachtet (geänderte Zeilennummern!):
2018.09.14 18:30:29 1: PERL WARNING: Illegal hexadecimal digit 's' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7888.
2018.09.14 18:30:29 1: stacktrace:
2018.09.14 18:30:29 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7888)
2018.09.14 18:30:29 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8041)
2018.09.14 18:30:29 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3374)
2018.09.14 18:30:29 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1468)
2018.09.14 18:30:29 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 18:30:29 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 18:30:29 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 18:30:29 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 18:30:29 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.14 18:30:29 1: PERL WARNING: Illegal hexadecimal digit 's' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7888.
2018.09.14 18:30:29 1: stacktrace:
2018.09.14 18:30:29 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7888)
2018.09.14 18:30:29 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8041)
2018.09.14 18:30:29 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3374)
2018.09.14 18:30:29 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1468)
2018.09.14 18:30:29 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.14 18:30:29 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.14 18:30:29 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.14 18:30:29 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.14 18:30:29 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
20


Gruss, Markus
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 14 September 2018, 21:03:57
Lösung: Es lag an unabsichtlich deaktiviertem autocreate...
Dass dabei keine saubere Warnung im Log ausgegeben wird sondern dem User Perl Warnings um die Ohren fliegen, ist nicht gerade ideal.
Bitte entsprechende Checks einbauen.
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: CoolTux am 14 September 2018, 21:15:51
Interessant ich habe heute auch ein Thermostat angelernt und erst autocreate vergessen. Aber ich habe nicht das Problem gehabt.


Grüße
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: martinp876 am 15 September 2018, 20:34:14
Die entity wird beim anlernen immer angelegt. Unklar, warum es bei dir nicht funktioniert hat. Wer pairt will sowieso ein create, es ist also manuel aber implizit.

Den check kann ich dennoch einbauen. Das define selbst macht gelegentlich probleme weil es lange dauern kann. Dann ist die antwort von fhem zu langsam. Allerdings erwarte ich beim 2. Versuch dass die entity existiert und nun spätestens alles fliegt.

Beim lesen der registerfiles kommt ein s an nicht erwarteter Stelle vor. Hast du editiert? Ist fas file korrupt?
Ggf das file einmal posten
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 15 September 2018, 20:44:12
Leider immer noch Fehler im Log, scheinbar irgendwo hier:

  return "invalid:no peer for this register" if(($reg->{p} eq "n" && hex($peerId) != 0)
                                              ||($reg->{p} eq "y" && hex($peerId) == 0));


2018.09.15 19:27:09 1: PERL WARNING: Illegal hexadecimal digit 's' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7892.
2018.09.15 19:27:09 1: stacktrace:
2018.09.15 19:27:09 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7892)
2018.09.15 19:27:09 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8045)
2018.09.15 19:27:09 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3378)
2018.09.15 19:27:09 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1472)
2018.09.15 19:27:09 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.15 19:27:09 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.15 19:27:09 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.15 19:27:09 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.15 19:27:09 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.15 19:27:09 1: PERL WARNING: Illegal hexadecimal digit 's' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7892.
2018.09.15 19:27:09 1: stacktrace:
2018.09.15 19:27:09 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7892)
2018.09.15 19:27:09 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8045)
2018.09.15 19:27:09 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3378)
2018.09.15 19:27:09 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1472)
2018.09.15 19:27:09 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.15 19:27:09 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.15 19:27:09 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.15 19:27:09 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.15 19:27:09 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)



Ich frage mich, ob das mit folgenden Readings bei einem Bewegungsmelder etwas zu tun haben könnte:
D-serialNr Ä ∑
PairedTo invalid:no peer for this register

Das erste hast noch ein unlesbares Zeichen drin, reingeschrieben hab ich da keines von.
Welches File meinst du?
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 15 September 2018, 20:49:51
Hmm. Kann es das sein?

R-evtFltrPeriod 1 s
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 15 September 2018, 22:51:19
Ich hab einfach mal alle Readings meiner HM Geräte gelöscht, um die kaputten zu erwischen.

Jetzt sieht das Log so aus:
2018.09.15 22:41:30 1: PERL WARNING: Use of uninitialized value in string eq at /opt/fhem/FHEM/10_CUL_HM.pm line 7892.
2018.09.15 22:41:30 1: stacktrace:
2018.09.15 22:41:30 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7892)
2018.09.15 22:41:30 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (4660)
2018.09.15 22:41:30 1:     main::CUL_HM_Set                    called by /opt/fhem/fhem.pl (3592)
2018.09.15 22:41:30 1:     main::CallFn                        called by /opt/fhem/fhem.pl (1808)
2018.09.15 22:41:30 1:     main::DoSet                         called by /opt/fhem/fhem.pl (1840)
2018.09.15 22:41:30 1:     main::CommandSet                    called by /opt/fhem/fhem.pl (1214)
2018.09.15 22:41:30 1:     main::AnalyzeCommand                called by /opt/fhem/fhem.pl (1062)
2018.09.15 22:41:30 1:     main::AnalyzeCommandChain           called by /opt/fhem/FHEM/01_FHEMWEB.pm (2584)
2018.09.15 22:41:30 1:     main::FW_fC                         called by /opt/fhem/FHEM/01_FHEMWEB.pm (904)
2018.09.15 22:41:30 1:     main::FW_answerCall                 called by /opt/fhem/FHEM/01_FHEMWEB.pm (533)
2018.09.15 22:41:30 1:     main::FW_Read                       called by /opt/fhem/fhem.pl (3597)
2018.09.15 22:41:30 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
20


Wieder an der gleichen Stelle:

  return "invalid:no peer for this register" if(($reg->{p} eq "n" && hex($peerId) != 0)
                                              ||($reg->{p} eq "y" && hex($peerId) == 0));
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 16 September 2018, 16:14:57
Langsam frage ich mich, was genau an der Stelle ankommt...
D-serialNr kann's jetzt eigentlich nicht mehr sein.

2018.09.16 14:29:51 1: PERL WARNING: Illegal hexadecimal digit 'H' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7892.
2018.09.16 14:29:51 1: stacktrace:
2018.09.16 14:29:51 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7892)
2018.09.16 14:29:51 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8045)
2018.09.16 14:29:51 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3378)
2018.09.16 14:29:51 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1472)
2018.09.16 14:29:51 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.16 14:29:51 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.16 14:29:51 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.16 14:29:51 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.16 14:29:51 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2018.09.16 14:29:51 1: PERL WARNING: Illegal hexadecimal digit 'H' ignored at /opt/fhem/FHEM/10_CUL_HM.pm line 7892.
2018.09.16 14:29:51 1: stacktrace:
2018.09.16 14:29:51 1:     main::__ANON__                      called by /opt/fhem/FHEM/10_CUL_HM.pm (7892)
2018.09.16 14:29:51 1:     main::CUL_HM_getRegFromStore        called by /opt/fhem/FHEM/10_CUL_HM.pm (8045)
2018.09.16 14:29:51 1:     main::CUL_HM_updtRegDisp            called by /opt/fhem/FHEM/10_CUL_HM.pm (3378)
2018.09.16 14:29:51 1:     main::CUL_HM_parseCommon            called by /opt/fhem/FHEM/10_CUL_HM.pm (1472)
2018.09.16 14:29:51 1:     main::CUL_HM_Parse                  called by /opt/fhem/fhem.pl (3793)
2018.09.16 14:29:51 1:     main::Dispatch                      called by /opt/fhem/FHEM/00_HMLAN.pm (779)
2018.09.16 14:29:51 1:     main::HMLAN_Parse                   called by /opt/fhem/FHEM/00_HMLAN.pm (604)
2018.09.16 14:29:51 1:     main::HMLAN_Read                    called by /opt/fhem/fhem.pl (3597)
2018.09.16 14:29:51 1:     main::CallFn                        called by /opt/fhem/fhem.pl (726)
2



CUL_HM_getRegFromStore($$$$@) {#read a register from backup data
Welche Backup Daten werden denn da gelesen und woher?
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 17 September 2018, 09:57:05
Ich hab mal extra Logging eingebaut.
Was da scheinbar ankommt sind Devicenamen aus peerList, z.B. HM_4E9B42_Btn_06
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 17 September 2018, 12:13:32
Zitat von: martinp876 am 15 September 2018, 20:34:14Beim lesen der registerfiles kommt ein s an nicht erwarteter Stelle vor. Hast du editiert? Ist fas file korrupt?
Ggf das file einmal posten

Wo finde ich denn diese Files?
Was an der Stelle z.B. ankommt und die Probleme verursacht habe ich eins weiter oben analysiert.
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: martinp876 am 18 September 2018, 09:29:49
Sorry, die nächste  3 wochen bin ich nicht am gerät. Dann werde ich es korrigieren. Es sieht nach der 1 s aus.
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: martinp876 am 18 September 2018, 22:20:17
Nun von remote: getregfromstore liest Register aus dem config file. Dort sind aber nur Register listen abgelegt. Die einzelnenregister werden daraus generiert. Ich vermute also dass dein reglist.cfg korrupt ist.das steht im fhem root Verzeichnis oder wo du es hingelegt hast. Siehe hminfo.
Automatisch sollten solche Einträge nicht generiert werden. Hast du editiert?
Kannst du ggf das ganze file posten?
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 20 September 2018, 23:26:17
Ich habe weder was bewusst angelegt noch editiert.
Ein HMinfo Device gibt es, aber ohne Config Hinweis.
Kann es die /fhem/regSave.cfg sein? Letztes Datum von 2017...
Titel: Antw:Kein Pairing möglich, Error im Log
Beitrag von: Markus M. am 23 September 2018, 22:27:59
Wenn ich das File neu generiere, tauchen die Fehler trotzdem wieder auf.
Da scheint es irgendwo ein grundsätzliches Problem zu geben.
Hier mal ein Patch als Suchhilfe, mit dem ich zumindest keine Perl Fehler mehr habe:

Die drei Änderungen sind
1. Der Fehler der ohne aktives autocreate beim Pairing passiert ist
2. Die Antwort von CUL_HM_getRegFromStore ist ab und zu mal undefined
3. Als $peerId kommt hier wahlweise ein FHEM Devicename oder ein leerer String vorbei


Code (diff) Auswählen
Index: ./FHEM/10_CUL_HM.pm
===================================================================
--- ./FHEM/10_CUL_HM.pm (revision 17375)
+++ ./FHEM/10_CUL_HM.pm (working copy)
@@ -1199,6 +1199,10 @@
   }

   $mh{devN}   = $mh{devH}->{NAME};        # source device name
+  if(!defined($mh{devN})){
+    Log3 $mh{dstN},2,"CUL_HM received unknown device - autocreate might be disabled";
+    return;
+  }
   if (CUL_HM_getAttrInt($mh{devN},"ignore")){
     $defs{$_}{".noDispatchVars"} = 1 foreach (grep !/^$mh{devN}$/,@entities);
     return (CUL_HM_pushEvnts(),$mh{devN},@entities);
@@ -3364,7 +3368,7 @@

         if ($data =~ m/00:00$/){ # this was the last message in the block
           if($list eq "00"){
-            push @evtEt,[$mhp->{devH},0,"PairedTo:".CUL_HM_getRegFromStore($mhp->{devN},"pairCentral",0,"")];
+            push @evtEt,[$mhp->{devH},0,"PairedTo:".CUL_HM_getRegFromStore($mhp->{devN},"pairCentral",0,"")] if(defined(CUL_HM_getRegFromStore($mhp->{devN},"pairCentral",0,"")));
           }
           CUL_HM_respPendRm($mhp->{devH});
           delete $mhp->{cHash}{helper}{shadowReg}{$regLNp};   #rm shadow
@@ -7882,6 +7886,7 @@
             if($addr<1 ||$addr>255);
   }

+  return "invalid peer for this register" if ( $peerId !~ /^[0-9a-fA-Fx]+$/ );
   return "invalid:no peer for this register" if(($reg->{p} eq "n" && hex($peerId) != 0)
                                               ||($reg->{p} eq "y" && hex($peerId) == 0));
   my $dst = substr(CUL_HM_name2Id($name),0,6);