OlavT Skrevet 11. desember 2022 Skrevet 11. desember 2022 (endret) Jeg har en support-sak gående med Silicon Labs. Når en kontroller sender en melding til en node i Z-Wave nettverket rapporteres det tilbake til kontroller software hvor lang tid det tok å sende meldingen. Dette er beskrevet i spesifikasjonene: 4.2.10 Tx Status Report (N bytes) When a Z-Wave transmission has been completed, the Z-Wave API Module can issue a Tx Status Report providing details about the transmission that was carried out. Et av feltene i Tx Status report er: Transmit Ticks (16 bits) This field is used to indicate the transmission time in multiples of 10ms. For example, the value 30 MUST indicate that the transmission took 300ms. Problemet jeg opplever er at av og til (etter feil i overføringer), så rapporteres det ugyldige verdier for Transmit Ticks. Med det mener jeg at rapporten viser en tid som er lenger enn det er siden kommandoen ble sendt. I min egen sw fanger jeg opp dette ved å legge inn en spesifikk sjekk for dette og logger det: if (transmitMilliseconds > totalExecutionTimeMilliseconds) { // Data does not make sense LogInvalidTransmitTime(currentCommand, response); } Dette går sannsynligvis under radaren for de fleste da forekomsten er relativt sjelden. Den er sannsynligivis hyppigere for større nettverk da sannsynligheten for kollisjoner og feilsendinger øker. Kunne du tenke deg å bidra med informasjon om denne feilen? Så vidt jeg vet er det en del som kjører Z-Wave løsninger med Z-Wave JS i bunn. Dette gjelder vel for eksempel Home Assistant. Mulig det finnes informasjon om Z-Wave detaljer i logger for andre kontrollere også, men det har jeg ikke sjekket. I logger fra Z-Wave JS fremgår Transmit Ticks slik: transmit status: OK, took 80 ms Det hadde vært fint om noen hadde hatt mulighet til å sjekke litt i loggene for sitt nettverk (gjerne de med 10-20 noder og oppover). Det jeg ville sett etter er først å søke etter forekomster av transmit status med "Fail" (søke på "Fail, took"). I meldinger rett etter dette har jeg sett at det ofte rapporteres et antall millisekunder som ikke kan stemme basert på timestamps for når meldingene er sendt. Noen som har sett noe slikt? Det finnes forøvrig en del bugs i Z-Wave knyttet til meldinger med måleverdier. Dersom noen av og til får inn merkelige verdier for måleverdier, så skyldes det kankje disse feilene og at kontroller software ikke sjekker før det rapporteres videre. Et eksempel på dette er meldingen: SOF Length=0x14 REQUEST FUNC_ID_APPLICATION_COMMAND_HANDLER_BRIDGE Single 01 SourceNodeId=0x19 PayloadLength=0x0b 56 01 31 05 04 22 00 e9 15 dc 3f 00 c0 Checksum=0xca (her CRC OK, og det er faktisk feil i meldingen som sendes fra noden, dette er sjekket med Zniffer). Her er problemet: SensorMultilevelReportCommand: Sensor Value field length mismatch. Expected length 2. Actual length 3. Endret 11. desember 2022 av OlavT Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.