From e97df45e2f84574cd537862267178f8dbddb2467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Tue, 20 Oct 2026 15:39:55 +0000 Subject: [PATCH] Describe the RMI timeout, the RMI error codes 45 and 52 and the CAN request counter The bridge answers RMI_ERROR 45 when a node doesn't answer within 1 second and 52 when it is still busy with another RMI to that node, and handles up to 4 RMI requests at the same time. The unknown CAN id field at bit 12 is a request counter. Co-Authored-By: Claude Opus 5.5 --- docs/PROTOCOL-RMI.md | 2 ++ docs/PROTOCOL.md | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/PROTOCOL-RMI.md b/docs/PROTOCOL-RMI.md index bf93e21..bb88f49 100644 --- a/docs/PROTOCOL-RMI.md +++ b/docs/PROTOCOL-RMI.md @@ -99,6 +99,8 @@ If an error occurs the reason can be one of the following: | 32 | The property can't be read (get) or written (set) | | 40 | The reply doesn't fit | | 41 | The request is too short, e.g. a missing property id, value or argument | +| 45 | The node didn't answer within 1 second (set by the bridge) | +| 52 | The bridge is still busy with another RMI to that node (set by the bridge) | ## General commands diff --git a/docs/PROTOCOL.md b/docs/PROTOCOL.md index 717a0eb..94af86d 100644 --- a/docs/PROTOCOL.md +++ b/docs/PROTOCOL.md @@ -403,8 +403,10 @@ message: "ComfoAir Q450 B R RF ST Quality\000" ``` When the RMI itself fails, the bridge answers with `result: RMI_ERROR` and puts the error code in the `result` field -of the `CnRmiResponse` (see [Error codes](PROTOCOL-RMI.md#error-codes)). The official app sends a request a second time -when the first one failed or got no answer, also after an `RMI_ERROR` †. +of the `CnRmiResponse` (see [Error codes](PROTOCOL-RMI.md#error-codes)). When the node doesn't answer within 1 second, +the bridge answers with `RMI_ERROR` and error code `45`. The bridge handles up to 4 RMI requests at the same time; more +requests wait until one is done. The official app sends a request a second time when the first one failed or got no +answer, also after an `RMI_ERROR` †. For an overview about the known RMI Requests, check [PROTOCOL-RMI.md](PROTOCOL-RMI.md) @@ -453,7 +455,7 @@ RMI-Commands are sent and received using extended-IDs: 1F000000 + SrcAddr << 0 6 bits source Node-Id + DstAddr << 6 6 bits destination Node-Id - + AnotherCounter <<12 2 bits we dont know what this is, set it to 0, everything else wont work + + AnotherCounter <<12 2 bits request counter: the bridge adds 1 (0 to 3) for every request to a node, copied over to the response + MultiMsg <<14 1 bit if this is a message composed of multiple CAN-frames + ErrorOccured <<15 1 bit When Response: If an error occured + IsRequest <<16 1 bit If the message is a request