Grosse nouvelle aujourd’hui !
Après m’être battu avec plusieurs libs rust de parsing binaire (nom) pour me rendre compte après avoir implémenté le parseur que celui-ci n’était pas réversible (donc pas possible d’encoder une valeur u_u… - raison pour laquelle je ne suis pas parti sur kaitai struct
), j’ai réussi à utiliser deku qui permet de faire l’encoding et le decoding d’un message.
Et donc… j’ai réussi une association ! Sans paramétrage particulier nécessitant des clés SDR ou autre. De la même façon que ferait la vraie sonde extérieure 
J’ai fait un programme en rust donc, qui se contente de « reproduire » le dialogue de la chaudière, mais à partir de trames que je génère de « zero »
// metadata = le header présent dans chaque requete, là, je réutilise les metadata de l'association, par "flemme"
sendData(
cli, // le client MQTT
32, // from
128, // to
metadata.request_id, // request_id présent dans la trame de la chaudière
metadata.req_or_answer + 0x80, // +0x80 en cas de réponse
metadata.msg_type, // le type du message en provenance de la chaudière
SondePayload::SondeTemperatureMessage {
data: [156, 84, 0, 4, 160, 41, 0, 1,2], // des données qui semblent fixes
temperature: 130 // la température exterieure, * 10
}
);
Et au niveau des logs :
send: FrisquetMetadata { length: 17, to_addr: 128, from_addr: 32, request_id: 3612, req_or_answer: 1, msg_type: 23 }, SondeTemperatureMessage { data: [156, 84, 0, 4, 160, 41, 0, 1, 2], temperature: 120 }, payload: "1180200e1c01179c540004a0290001020078"
Received: FrisquetMetadata { length: 15, to_addr: 32, from_addr: 128, request_id: 3612, req_or_answer: 129, msg_type: 23 } data: ChaudiereSondeResponseMessage { unknown_start: 8, year: 35, month: 4, day: 37, hour: 33, minute: 34, second: 68, data: [8, 2] }
Et pour l’exemple, le codec deku des messages de la sonde de temperature ressemble à ça:
#[derive(Debug, PartialEq, DekuRead, DekuWrite)]
#[deku(ctx = "length: u8", id = "length")]
pub enum SondePayload {
#[deku(id = "17")]
SondeTemperatureMessage {
data: [u8; 9],
#[deku(endian = "big")]
temperature: i16,
},
#[deku(id_pat = "_")]
SondeUnknownMessage {
#[deku(count = "length - 6")]
data: Vec<u8>,
},
}
J’ai donc testé sur ma chaudière et bingo, j’ai maintenant une sonde exterieure, et la température varie vite par chez moi 
Je vais continuer de tester la stabilité et des essais en cas d’échec du programme type: est-ce que je perds le chauffage si la chaudière ne reçoit plus les informations de sonde externe ?
A+