Anatomie Fichier de Sauvegarde - xkain/ESPSomfy-RTS GitHub Wiki
[!NOTE] Cette page documente le format binaire du fichier
.backupproduit par Sauvegarder (voir Sauvegarde et restauration) — reprise et mise à jour de la page Backup File Anatomy du projet d'origine (rstrouse). Elle s'adresse à qui veut inspecter, éditer à la main ou scripter un fichier de sauvegarde — ce n'est pas un pré-requis pour sauvegarder et restaurer au quotidien.
Versionnage
Chaque fichier porte un numéro de version d'en-tête. Le firmware s'en sert pour continuer à relire correctement des sauvegardes plus anciennes à mesure que de nouveaux champs s'ajoutent — un champ apparu après coup est simplement absent d'un vieux fichier, et le lecteur lui laisse sa valeur par défaut plutôt que de décaler tout le reste. Chaque champ documenté plus bas porte la version d'en-tête à partir de laquelle il est présent.
Les versions v2.x.x actuelles écrivent la version d'en-tête 25.
[!NOTE] Ce format sert aussi, sous une forme réduite, au fichier interne
/shades.cfgque l'appareil tient en fonctionnement normal : il ne contient que les enregistrements Pièce, Équipement, Groupe et Répéteurs, sans les blocs Réglages, Réseau et Radio, qui n'existent que dans un.backupproduit par Sauvegarder. C'est ce dernier, le plus complet, qui est documenté ici.
Principe général
Comme dans le format d'origine, le fichier est entièrement en texte lisible : un en-tête sur la première ligne, puis un enregistrement par ligne. Chaque donnée est séparée par une virgule, les nombres sont cadrés à droite et complétés d'espaces, le texte à largeur fixe est cadré à gauche et complété d'espaces, et le texte à longueur variable est entouré de guillemets (ce qui lui permet de contenir lui-même une virgule sans ambiguïté).
[!NOTE] Toutes les valeurs du fichier ci-dessous sont fictives — adresses radio, codes tournants, réseau et identifiant serveur ont été inventés pour l'exemple, un vrai fichier n'est jamais partagé tel quel (ces informations permettent, entre autres, d'émettre des commandes radio à la place de l'appareil d'origine). La structure, elle, est strictement conforme au format version 25 décrit sur cette page.
25, 76, 29, 3, 276, 10, 200, 3, 77, 1, 102, 182, 78,A1B2C3
1,Salon , 0
2,Cuisine , 1
3,Chambre , 2
1,true , 4, 100101,Volet Chambre 1 , 0, 0, 56, 17500, 17000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 42, 1, -1.00000, -1.00000, 0.00000, 0.00000,false,false, 3, 0, 0, 0, 0, 0, 3
2,true , 4, 100102,Volet Chambre 2 , 0, 0, 56, 17000, 16400, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 18, 1, -1.00000, -1.00000, 45.00000, 0.00000,false,false, 3, 1, 0, 0, 0, 0, 3
3,true , 4, 100103,Volet Atelier , 0, 0, 56, 17000, 16500, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 7, 0, -1.00000, -1.00000, 0.00000, 0.00000,false,false, 0, 2, 0, 0, 0, 0, 0
4,true , 4, 100104,Volet Salon , 0, 0, 56, 30000, 26300, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 247, 20, -1.00000, -1.00000, 0.00000, 0.00000,false,false, 2, 3, 0, 0, 0, 0, 1
5,true , 1, 100105,Store Vénitien , 2, 0, 56, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 20,131, 71.00000, 0.00000, 71.00000, 31.00000,false,false, 0, 4, 0, 0, 0, 0, 1
6,true , 13, 100106,Portail , 0, 0, 80, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, -1.00000, -1.00000, 0.00000, 0.00000,false,true , 0, 5, 0, 0, 0, 0, 0
7,true , 4, 100107,Volet Salon Droit , 0, 0, 56, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 14,128, 26.00000, -1.00000, 26.00000, 0.00000,false,false, 0, 6, 0, 0, 0, 0, 1
8,true , 4, 100108,Volet Cuisine Droit , 0, 0, 56, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 11,128, -1.00000, -1.00000, 0.00000, 0.00000,false,false, 0, 7, 0, 0, 0, 0, 2
9,true , 4, 100109,Volet Cuisine Gauche, 0, 0, 56, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 16,128, -1.00000, -1.00000, 19.00000, 0.00000,false,false, 0, 8, 0, 0, 0, 0, 2
10,true , 9, 100110,Lampe Terrasse , 0, 8, 56, 10000, 10000, 7000, 100, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1.00000, -1.00000, 0.00000, 0.00000,false,false, 0, 9, 32, 33, 0, 1, 1
1, 0, 200101,Rez-de-chaussée , 0, 56, 4, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,false, 0, 0
2, 0, 200102,Chambres , 0, 56, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,false, 3, 0
3, 0, 200103,Ouvertures , 0, 56, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,false, 0, 0
100199, 0, 0, 0, 0, 0, 0
"v2.6.0","ESPSomfyRTS-Demo","pool.ntp.org","CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00","#1a5fb4",true ,true , 1
1,true ,"192.168.1.50","192.168.1.1","255.255.255.0","192.168.1.1","0.0.0.0","mqtt://","192.168.1.10", 1883,true ,"espsomfy-a1b2c3","homeassistant", 0, 0, 0, 0, -1, 23, 18
true , 0, 56, 1, 18, 5, 23, 19, 21, 22, 433.420, 99.97, 47.60, 10
Ce fichier contient 3 pièces, 10 équipements tous appairés, 3 groupes avec des équipements effectivement liés et 1 enregistrement de répéteurs (7 adresses), suivis des blocs réglages (102 octets), réseau (182 octets) et radio (78 octets). C'est la première ligne, l'en-tête, qui annonce tout cela — chaque enregistrement est détaillé dans la suite de la page.
[!IMPORTANT] Le padding n'est pas un détail cosmétique : c'est ce qui garde le fichier aligné. Un champ texte à largeur fixe (un nom d'équipement, par exemple) est systématiquement complété jusqu'à exactement sa largeur déclarée moins un caractère, puis suivi du séparateur. Un seul champ mal aligné décale tous les suivants : l'enregistrement ne se termine plus à la longueur annoncée, le fichier est rejeté en bloc et le moniteur série affiche
Shade record length is … and should be ….Attention en particulier aux accents : le remplissage compte des octets, pas des caractères. Un nom contenant un
étiendra donc une colonne de moins à l'écran que les autres — c'est normal, et c'est voulu.
À la lecture d'un fichier de restauration, le firmware vérifie que l'en-tête est cohérent (version ≥ 1, taille d'enregistrement Équipement et Groupe plausibles) puis, pour chaque enregistrement Pièce, Équipement et Groupe, que la fin de ligne tombe exactement à la longueur annoncée dans l'en-tête. Si ce n'est pas le cas, la restauration est refusée. Les trois blocs de fin — Réglages, Réseau, Radio — ne sont pas contrôlés de cette façon : le lecteur s'y recale sur le caractère de fin de ligne s'il n'est pas tombé juste.
Quelques pointeurs pour s'y retrouver dedans — chacun des champs cités est décrit, section par section, dans la suite de la page :
- Équipement 5 (« Store Vénitien ») est le seul avec une inclinaison (type d'inclinaison
2, intégrée) — ses positions actuelle et d'inclinaison (71.00000/31.00000) le montrent à mi-course. Son nom contient un accent : sa colonne tient donc un caractère de moins que les autres, pour le même nombre d'octets. - Équipement 6 (« Portail ») est le seul en trame 80 bits, et le seul avec Inverser
position à
true. - Équipement 10 (« Lampe Terrasse ») est un contact sec (type
9) piloté non pas par radio mais par les broches de l'ESP32 : son protocole vaut8(GP_Relay), ses champs GPIO Haut et GPIO Bas valent32et33, et son avant-dernier champ, Indicateurs GPIO, vaut1— déclenchement à l'état bas. Voir Contrôle-des-moteurs-avec-GPIO. - Groupe 1 (« Rez-de-chaussée ») lie 4 équipements (4, 7, 8, 9) — leurs identifiants apparaissent en tête de la longue série de zéros représentant les 32 emplacements membre.
- Groupe 2 (« Chambres ») a son Id Pièce à
3(Chambre) : contrairement aux équipements, un groupe peut être rattaché à une pièce même sans que chacun de ses membres le soit individuellement. - Le répéteur (ligne avant les réglages) ne porte qu'une seule adresse sur les 7 possibles —
les six autres emplacements à
0sont simplement inutilisés. - Le fuseau horaire dans l'enregistrement Réglages contient lui-même des virgules
(
M3.5.0/02:00:00,M10.5.0/03:00:00) : c'est exactement le cas que les guillemets d'un champ à longueur variable sont censés protéger. - La longueur de l'enregistrement Réglages annoncée dans l'en-tête est
102, alors que la ligne en fait 116 : c'est l'écart de 14 octets détaillé dans l'enregistrement Réglages.
Enregistrement d'en-tête
Un seul enregistrement, toujours en première ligne du fichier, entièrement à largeur fixe.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Version | 3 | La version de ce fichier de sauvegarde | 1+ |
| Longueur de l'en-tête | 3 | La longueur totale de l'en-tête, en octets (76 en version 25) | 1+ |
| Longueur d'un enregistrement Pièce | 5 | 29 en version 25 | 19+ |
| Nombre d'enregistrements Pièce | 3 | 19+ | |
| Longueur d'un enregistrement Équipement | 5 | 276 en version 25. Codée sur 3 caractères avant la version 13 | 1+ |
| Nombre d'enregistrements Équipement | 3 | 1+ | |
| Longueur d'un enregistrement Groupe | 5 | 200 en version 25. Codée sur 3 caractères avant la version 13 | 11+ |
| Nombre d'enregistrements Groupe | 3 | 11+ | |
| Longueur d'un enregistrement Répéteurs | 5 | 77 en version 25 | 21+ |
| Nombre d'enregistrements Répéteurs | 3 | Toujours 1 | 21+ |
| Longueur de l'enregistrement Réglages | 5 | 0 si absent | 14+ |
| Longueur de l'enregistrement Réseau | 5 | 0 si absent | 14+ |
| Longueur de l'enregistrement Radio | 5 | 0 si absent — 78 en version 25 | 14+ |
| Identifiant serveur | 9 | 6 caractères hexadécimaux dérivés de l'adresse MAC de la puce, complétés d'espaces. Sert aussi au topic MQTT de découverte Home Assistant (espsomfy-<id>) — voir MQTT |
14+ |
[!NOTE] Ce dernier champ s'appelle Chip Id dans le format d'origine. C'est lui qui décide du sort des réglages Ethernet à la restauration : si l'identifiant du fichier ne correspond pas à celui de l'appareil en cours de restauration, le bloc de câblage EMAC (type de carte, PHY, horloge, broches) est délibérément ignoré, puisqu'il décrit une carte qui n'est pas celle qu'on a devant soi. Tout le reste du bloc Réseau est restauré normalement.
[!NOTE] Pourquoi 14 pièces et non 16, 30 équipements et non 32, 14 groupes et non 16 ? Le format de fichier réserve bien 16 emplacements pour les pièces et les groupes, et 32 pour les équipements — ce sont les capacités brutes que portent les champs d'en-tête et les identifiants ci-dessous. Mais l'algorithme qui attribue un nouvel identifiant côté firmware (
getNextRoomId()/getNextShadeId()/getNextGroupId()) ne distribue jamais ni l'identifiant 0 (réservé comme valeur sentinelle — pour une pièce, c'est précisément Accueil, la pièce par défaut toujours présente) ni le tout dernier identifiant de la plage. Deux emplacements sur 16 (ou 32) restent donc toujours hors d'atteinte depuis l'interface, quel que soit le nombre déclaré dans le fichier. Plutôt que de laisser l'utilisateur buter sur cet échec bas niveau sans explication, l'interface pose elle-même ce plafond réduit en amont, pour pouvoir afficher un message clair indiquant que la limite est atteinte. C'est ce nombre réduit — 14, 30, 14 — qui apparaît partout ailleurs sur ce wiki.
Enregistrement Pièce
Un enregistrement par pièce déclarée (jusqu'à 16, dont 14 réellement atteignables depuis l'interface — voir la note ci-dessus). Entièrement à largeur fixe, inchangé depuis le format d'origine. Longueur totale : 29 octets.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Id Pièce | 3 | 1 à 16, mais seuls 1 à 14 sont attribués automatiquement par l'interface | 19+ |
| Nom | 20 | 19+ | |
| Ordre d'affichage | 3 | 19+ |
Voir Pièces (Rooms).
Enregistrement Équipement
Un enregistrement par équipement configuré (jusqu'à 32, dont 30 réellement atteignables depuis l'interface — voir la note plus haut). Longueur totale : 276 octets.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Id Équipement | 3 | 1 à 32, mais seuls 1 à 30 sont attribués automatiquement par l'interface | 1+ |
| Appairé | 5 | true/false |
1+ |
| Type d'équipement | 3 | Voir la table des types ci-dessous | 1+ |
| Adresse | 10 | L'adresse Somfy (24 bits) attribuée à l'équipement | 1+ |
| Nom | 20 | 1+ | |
| Type d'inclinaison | 3 | 0=Aucune, 1=Moteur inclinaison, 2=Intégrée, 3=Inclinaison seule, 4=Inclinaison Euro | 1+ |
| Protocole | 3 | 0=RTS, 1=RTW, 2=RTV, 8=GP_Relay, 9=GP_Remote | 7+ |
| Longueur de trame | 3 | 56 ou 80 bits | 2+ |
| Temps de montée | 10 | En ms | 1+ |
| Temps de descente | 10 | En ms | 1+ |
| Temps d'inclinaison | 10 | En ms — voir Les temps de course | 1+ |
| Pas (Step Size) | 5 | 1 à 1000 | 6+ |
| Télécommande liée 1 à 5 | 10 chacune | Adresse de la télécommande | 1+ |
| Télécommande liée 6 et 7 | 10 chacune | 5+ | |
| Dernier code tournant | 5 | 1+ | |
| Indicateurs capteurs | 3 | Masque de bits, voir la table ci-dessous | 8+ |
| Position My | 12 | 5 décimales, -1 = non définie | 1+ |
| Position My d'inclinaison | 12 | 5 décimales, -1 = non définie | 4+ |
| Position actuelle | 12 | 5 décimales, 0-100 | 1+ |
| Position actuelle d'inclinaison | 12 | 5 décimales, 0-100 | 1+ |
| Inverser commandes | 5 | Haut devient Bas et inversement | 9+ |
| Inverser position | 5 | 0% devient fermé ou ouvert | 10+ |
| Répétitions | 3 | Nombre de répétitions par commande envoyée | 12+ |
| Ordre d'affichage | 3 | 13+ | |
| GPIO Haut | 3 | Si protocole GP_* — voir Contrôle-des-moteurs-avec-GPIO | 15+ |
| GPIO Bas | 3 | Si protocole GP_* | 15+ |
| GPIO My | 3 | Si protocole GP_Remote | 16+ |
| Indicateurs GPIO | 3 | Bit 1 (0x01) = déclenchement à l'état bas |
17+ |
| Id Pièce | 3 | 19+ |
Indicateurs capteurs
Le champ Indicateurs capteurs est un masque de bits, écrit en décimal. Les valeurs
observées dans un fichier sont donc des sommes : 131 = 0x80 | 0x02 | 0x01.
| Bit | Nom | Signification |
|---|---|---|
0x01 |
SunFlag | Le capteur soleil est activé pour cet équipement |
0x02 |
SunSensor | L'équipement dispose d'un capteur soleil |
0x04 |
DemoMode | Mode démonstration |
0x08 |
Light | L'équipement expose une sortie lumière (types Garage) |
0x10 |
Windy | Dernier état vent reçu |
0x20 |
Sunny | Dernier état soleil reçu |
0x40 |
Lighted | Dernier état de la sortie lumière |
0x80 |
SimMy | La position My est simulée par le firmware |
Voir Lier un capteur.
Types d'équipement
Un total de 17 types d'équipement :
| Code | Type |
|---|---|
| 0 | Store enrouleur |
| 1 | Store vénitien |
| 2 | Rideau (gauche) |
| 3 | Store banne |
| 4 | Volet |
| 5 | Garage (1 bouton) |
| 6 | Garage (3 boutons) |
| 7 | Rideau (droit) |
| 8 | Rideau (centre) |
| 9 | Contact sec (1 bouton) |
| 10 | Contact sec (2 boutons) |
| 11 | Portail (gauche) |
| 12 | Portail (centre) |
| 13 | Portail (droit) |
| 14 | Portail 1 bouton (gauche) |
| 15 | Portail 1 bouton (centre) |
| 16 | Portail 1 bouton (droit) |
Ces 17 codes, et leurs valeurs numériques, sont ceux du format d'origine : seuls les libellés affichés par l'interface ont changé. Voir Identification et Type pour la description de chacun.
Enregistrement Groupe
Un enregistrement par groupe (jusqu'à 16, dont 14 réellement atteignables depuis l'interface — voir la note plus haut), absent des fichiers antérieurs à la version 11. Longueur totale : 200 octets.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Id Groupe | 3 | 0 à 16, mais seuls 1 à 14 sont attribués automatiquement par l'interface (0 n'est, comme pour les pièces, jamais distribué) | 11+ |
| Type de groupe | 3 | Toujours 0 actuellement | 11+ |
| Adresse | 10 | L'adresse Somfy attribuée au groupe | 11+ |
| Nom | 20 | 11+ | |
| Protocole | 3 | 0=RTS, 1=RTW, 2=RTV, 8=GP_Relay, 9=GP_Remote | 11+ |
| Longueur de trame | 3 | 56 ou 80 bits | 11+ |
| Id membre 1 à 32 | 3 chacun | Id de l'équipement membre, 0 = emplacement vide | 11+ |
| Répétitions | 3 | 12+ | |
| Ordre d'affichage | 3 | 13+ | |
| Inverser commandes | 5 | 18+ | |
| Id Pièce | 3 | 19+ | |
| Dernier code tournant | 5 | 24+ |
[!NOTE] Capacité réelle : le nombre maximum d'équipements sur l'appareil (30, voir la note plus haut) étant inférieur au nombre d'emplacements membre du format (32), au moins deux de ces 32 emplacements sont toujours vides — voir GROUPES (Groups) pour la limite effective.
À la relecture, les emplacements vides sont compactés : si les membres d'un groupe sont dispersés dans la liste, ils se retrouvent regroupés en tête. L'ordre des identifiants dans le fichier n'a donc aucune importance.
Enregistrement Répéteurs
Un seul enregistrement, 7 adresses à la suite — absent des fichiers antérieurs à la version 21. Longueur totale : 77 octets.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Adresse répéteur 1 à 7 | 10 chacune | 0 = emplacement inutilisé. Voir RÉPÉTEUR (Repeaters) | 21+ |
Enregistrement Réglages
Un seul enregistrement, de longueur variable (elle dépend de la longueur réelle des textes qu'il contient). Absent des fichiers antérieurs à la version 14. Les champs décrits ici sont présentés dans l'ordre où l'interface les affiche — voir Options.
| Nom | Type | Commentaire | Depuis la version |
|---|---|---|---|
| Firmware | Texte variable | Version du firmware au moment de la sauvegarde | 14+ |
| Nom d'hôte | Texte variable | 14+ | |
| Serveur NTP | Texte variable | 14+ | |
| Fuseau horaire | Texte variable | Au format POSIX | 14+ |
| Couleur d'accentuation | Texte variable | Code couleur hexadécimal, #1a5fb4 par défaut — voir la note ci-dessous |
25, firmware v2.5.1+ |
| Diffusion uPnP (SSDP) | 5 | true/false |
14+ |
| Vérification des mises à jour | 5 | true/false |
20+ |
| Langue | 3 | Index de la langue active : 0=anglais, 1=français, 2=allemand, 3=espagnol | 25+ |
[!WARNING] La longueur annoncée de cet enregistrement est inférieure à sa longueur réelle. La Couleur d'accentuation est apparue avec le firmware v2.5.1 sans que la version d'en-tête passe de 25 à 26, et le calcul de taille qui alimente l'en-tête n'a pas suivi : il omet ce champ, ainsi que la Langue. L'écart est de 14 octets sur un fichier produit par v2.5.1 ou plus récent.
Conséquence pour qui analyse un fichier à la main : la somme
en-tête + pièces + équipements + groupes + répéteurs + réglages + réseau + radiotombe 14 octets en dessous de la taille réelle du fichier, et l'enregistrement Réglages est le seul dont la longueur annoncée ne doit pas servir à se déplacer. Fiez-vous à la fin de ligne. C'est aussi la raison du messageFile size is not correctdans le moniteur série à chaque restauration.
Enregistrement Réseau
Un seul enregistrement, de longueur variable — absent des fichiers antérieurs à la version 14. Comme dans le format d'origine, aucun mot de passe (Wi-Fi, MQTT) n'y figure.
| Nom | Type | Commentaire | Depuis la version |
|---|---|---|---|
| Type de connexion | 3 | 0=Non défini, 1=Wi-Fi, 2=Ethernet, 3=Ethernet préféré, 4=Point d'accès — voir Connexion | 14+ |
| DHCP | 5 | true/false — voir DHCP-et-IP-Statique |
14+ |
| Adresse IP | Texte variable | 14+ | |
| Passerelle | Texte variable | 14+ | |
| Masque de sous-réseau | Texte variable | 14+ | |
| DNS 1 | Texte variable | 14+ | |
| DNS 2 | Texte variable | 14+ | |
| Protocole MQTT | Texte variable | mqtt:// |
22+ |
| Hôte MQTT | Texte variable | 22+ | |
| Port MQTT | 5 | 22+ | |
| Publier la découverte MQTT | 5 | true/false |
22+ |
| Racine du topic MQTT | Texte variable | 22+ | |
| Topic de découverte MQTT | Texte variable | 22+ | |
| Type de carte Ethernet | 3 | 0=Manuel, 1=WT32-ETH01, 2=ESP32-POE (Olimex), 3=ESP32-EVB (Olimex), 4=T-Internet POE (LilyGO), 5=wESP32 v7+, 6=wESP32 <v7, 7=EST-PoE-32 | 14+ |
| Type de PHY | 3 | 0=LAN8720, 1=TLK110, 2=RTL8201, 3=DP83848, 4=DM9051, 5=KZ8081 | 14+ |
| Mode d'horloge | 3 | 0=GPIO0 Entrée, 1=GPIO0 Sortie, 2=GPIO16 Sortie, 3=GPIO17 Sortie | 14+ |
| Adresse PHY | 4 | 14+ | |
| Broche PWR | 4 | -1 = aucune | 14+ |
| Broche MDC | 4 | 14+ | |
| Broche MDIO | 4 | 14+ |
[!NOTE] Le type de carte Ethernet 7 (EST-PoE-32) est nouveau par rapport au format d'origine ; les sept valeurs précédentes sont inchangées. Les quatre derniers champs, ainsi que le type de PHY et le mode d'horloge, ne sont restaurés que si l'identifiant serveur du fichier est celui de l'appareil — voir la note de l'enregistrement d'en-tête.
Enregistrement Radio (Transceiver)
Un seul enregistrement, entièrement à largeur fixe — absent des fichiers antérieurs à la version 14. Longueur totale : 78 octets.
| Nom | Longueur | Commentaire | Depuis la version |
|---|---|---|---|
| Activé | 5 | true/false |
14+ |
| Protocole | 3 | 0=RTS, 1=RTW, 2=RTV | 14+ |
| Longueur de trame | 3 | 56 ou 80 bits | 14+ |
| Préréglage de carte | 3 | Voir Composants | 25+ |
| Broche SCK | 3 | 14+ | |
| Broche CSN | 3 | 14+ | |
| Broche MOSI | 3 | 14+ | |
| Broche MISO | 3 | 14+ | |
| Broche TX | 3 | 14+ | |
| Broche RX | 3 | 14+ | |
| Fréquence | 10 | En MHz, 3 décimales | 14+ |
| Largeur de bande RX | 9 | En kHz, 2 décimales | 14+ |
| Déviation de fréquence | 9 | En kHz, 2 décimales — n'intervient pas en réception, voir Accorder la radio | 14+ |
| Puissance d'émission | 4 | En dBm | 14+ |
[!NOTE] Le champ Préréglage de carte n'existait pas avant la version 25. Comme son ajout n'a pas fait l'objet d'un nouveau numéro de version, le lecteur le détecte autrement : un enregistrement Radio de moins de 78 octets est un fichier d'avant, et le préréglage y est alors considéré comme 0 (auto-détection).