RFD-FHEM / RFFHEM

Counterpart of SIGNALDuino, it's the code for FHEM to work with the data received from the uC
GNU General Public License v3.0
44 stars 33 forks source link

Some tests are broken, autocreate #1067

Closed sidey79 closed 2 years ago

sidey79 commented 2 years ago

Expected Behavior

Test shoud pass trying to autocreate device

Actual Behavior

2022.01.18 20:22:54 3: dummyDuino: SD_Rojaflex_Parse, UNDEFINED device detected, Protocol 109, deviceCode 3122FD2_9, housecode 3122FD2, channel 9, please define it
2022.01.18 20:22:54 4: autocreate: received 1 event(s) for 'SD_Rojaflex 3122FD2_9' during the last 180 seconds
2022.01.18 20:22:54 4: autocreate: ignoring event for 'SD_Rojaflex 3122FD2_9': at least 5 needed
2022.01.18 20:22:54 3: dummyDuino: Unknown code P109#083122FD298A018A8E, help me!
2022.01.18 20:22:54 3: dummyDuino: Unknown code P109#083122FD298A018A8E, help me!
2022.01.18 20:22:54 3: dummyDuino: Unknown code P109#083122FD298A018A8E, help me!
2022.01.18 20:22:54 3: dummyDuino: Unknown code P109#083122FD298A018A8E, help me!
2022.01.18 20:22:54 3: dummyDuino: Unknown code P109#083122FD298A018A8E, help me!
not ok 2 - Protocol 109 - autocreate via DMSG {
    1..5
    ok 1 - check sensor not created with dispatch 1/4
    ok 2 - check sensor not created with dispatch 2/4
    ok 3 - check sensor not created with dispatch 3/4
    ok 4 - check sensor not created with dispatch 4/4
    not ok 5 - check sensor created with dispatch 5
}
1..2
Dubious, test returned 1 (wstat 256, 0x100)

Steps to Reproduce the Problem

  1. run standard unittests against rev 6.1.25494
  2. check logs

Specifications

sidey79 commented 2 years ago

@HomeAutoUser @elektron-bbs

Irgendwas führt zu diesem Fehler. Eventuell könnte es daran liegen: https://svn.fhem.de/trac/changeset?reponame=&old=25489%40%2F&new=25488%40%2F

elektron-bbs commented 2 years ago

Es sieht so aus, als ob es daran liegt. Wenn ich die 2 Zeilen wieder auf den vorherigen Zustand zurück setzte, funktioniert es in FHEM wieder. Getestet habe ich es mit einem Hideki-Sensor. Er wurde zwar noch angelegt, aber jeder weitere Dispatch führte zu einer Meldung im Log mit Unknown code P12#xxxxxxxxxxx, help me!. Scheinbar wird return $name nicht mehr richtig verarbeitet. Ob sich die Tests genau so verhalten, kann ich nicht beurteilen.

sidey79 commented 2 years ago

Es könnte auch sein, dass unsere Match Einträge in den Modulen fehlerhaft sind und die Nachricht bisher nur über den Modul Nachlademodus verteilt wurden.

elektron-bbs commented 2 years ago

Mhmm, die sind tatsächlich verschieden:

      '7:Hideki'            => '^P12#75[A-F0-9]+',
          $hash->{Match}     = "^P12#75[A-F0-9]{17,30}";   # Laenge (Anhahl nibbles nach 0x75 )noch genauer spezifizieren

      '33:SD_Rojaflex'      => '^P109#[A-Fa-f0-9]+',
         $hash->{Match}      = '^P109#[a-fA-F0-9]{18}';

Sollte das eine Rolle spielen?

sidey79 commented 2 years ago

Wenn ich es jetzt gerade nicht durcheinanderbringe dann ja.

$hash->{Match} ist im logischen Modul hinterlegt und wird von Dispatch für bereits geladene Module gezogen. In beiden fällen ist die Regex restriktiver als die andere. Somit wird nicht alles verarbeitet

7::Hideki ist im phyischen Modul hinterlegt um das logische Modul überhaupt laden zu können. Die Angabe ist weniger restriktiv, was aus meiner perspektive auch völlig in Ordnung ist.

sidey79 commented 2 years ago

Der Fehler liegt in fhem.pl.

Ich habe Rudi einen Patch vorgeschlagen: https://forum.fhem.de/index.php/topic,125292.msg1201933.html#msg1201933