korrupte homematic messages erzeugen ERR:CCA und lösen den watchdog aus

Begonnen von frank, 18 Juni 2024, 10:27:23

Vorheriges Thema - Nächstes Thema

frank

moin,

nachdem ich das problem bereits im nachbarthread https://forum.fhem.de/index.php?msg=1301665 berichtet habe, habe ich in der funktion askin_send() die ERR:CCA meldungen um den aktuellen wert von CC1100_MARCSTATE erweitert und alle funktionsausgänge mit weiteren logmeldungen versehen.

2024.06.02 22:19:35.056 5: cul868 sending As0B65A258B4B4B41CE9F500FD
2024.06.02 22:19:35.060 5: DevIo_SimpleWrite cul868: As0B65A258B4B4B41CE9F500FD
2024.06.02 22:19:36.573 4: CUL_Parse: cul868 E RR :C CA M ST:11 
2024.06.02 22:19:36.577 5: cul868: dispatch ERR:CCA MST:11
2024.06.02 22:19:36.655 3: cul868: Unknown code ERR:CCA MST:11, help me!
2024.06.02 22:19:37.363 1: /dev/serial/by-id/usb-busware.de_CUL868-if00 disconnected, waiting to reappear (cul868)
2024.06.02 22:19:38.124 3: Setting cul868 serial parameters to 38400,8,N,1
2024.06.02 22:19:38.232 5: DevIo_SimpleWrite cul868: V
2024.06.02 22:19:38.239 5: DevIo_SimpleWrite cul868: ?
2024.06.02 22:19:38.319 3: cul868: Possible commands: ABbCeFGhiKkLlMmNRTtUuVWXxY
2024.06.02 22:19:38.322 5: DevIo_SimpleWrite cul868: X21
2024.06.02 22:19:38.325 5: DevIo_SimpleWrite cul868: Ar
2024.06.02 22:19:38.329 5: DevIo_SimpleWrite cul868: T01
2024.06.02 22:19:38.335 5: GOT CUL fhtid: 0000
2024.06.02 22:19:38.388 1: /dev/serial/by-id/usb-busware.de_CUL868-if00 reappeared (cul868)

der zustand MARCSTATE_RXFIFO_OVERFLOW  (0x11) löst also zuerst ERR:CCA aus und anschliessend muss die fw in dieser while schleife stecken bleiben:
    do {
      ccStrobe(CC1100_SRX);
    } while (cc1100_readReg(CC1100_MARCSTATE) != MARCSTATE_RX);


mit einer weiteren logmeldung von marcstate in der funktion asksin_task() sehe ich regelmässig, über 24 stunden gemittelt, etwa 2 overflow zustände pro stunde.
die abstände der overflow zustände variieren dabei von einigen sekunden bis zu mehreren stunden. vermutlich ist das längenbyte der empfangenen messages korrupt.

mit dem zusätzlichen setzen des registers CC1100_PKTLEN in der datei rf_asksin.c, wie von @noansi im anderen thread vorgeschlagen, sind die overflow zustände komplett verschwunden.

1. für den normalen betrieb:
const uint8_t PROGMEM ASKSIN_CFG[] = {
     0x00, 0x07,
     0x02, 0x2E,
     0x03, 0x0D,
     0x04, 0xE9,
     0x05, 0xCA,
     0x06, 0x1A, // PKTLEN   (FF) (26-bidcos) max lenght of data without length byte. set to avoid rx-overflow issue in swrz020e.pdf
...

2. für den FUP modus:
#ifdef HAS_ASKSIN_FUP
const uint8_t PROGMEM ASKSIN_UPDATE_CFG[] = {
     0x06, 0x2E, // PKTLEN   (FF) (46-FUP) maximum lenght of data without length byte. set to avoid rx-overflow issue in swrz020e.pdf
...


eventuell behebt der fix auch die oft beschriebenen, willkürlichen empfangsausfälle, da der chip beim empfang entsprechend langer messages im zustand MARCSTATE_RX hängen bleibt, aber nichts mehr empfängt. siehe swrz020e.pdf/overflow issue.
workarounds zum überwachen des cul empfangs werden hier ja an jeder ecke empfohlen.  ;)

ZitatWhen the radio is stuck in RX state like this, it will draw current as in RX state, but it will
not be able to receive any more data. The only way to get out of this state is to issue an
SIDLE strobe and then flush the FIFO (SFRX).


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

hierbei handelt es sich nicht um ein "kosmetisches" problem.

es ist ein bug, der regelmässig das senden von messages über den cul verhindert, obwohl kein error:cca vorliegt.

der support zu culfw ist anscheinend eingestellt, schade eigentlich.  :(

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html