# Obsidian + Hermes : ce qu’un assistant IA peut apporter à un radioamateur
> F4UCR — Jean-Paul Rouze
> Juillet 2026
Introduction
Je suis radioamateur (F4UCR) et utilisateur d’Obsidian depuis plusieurs années. Depuis quelques mois, j’ai intégré Hermes, un agent IA personnel, à mon environnement. Le résultat dépasse ce que j’imaginais : Hermes et Obsidian forment un duo qui change radicalement la façon de gérer la technique, les fréquences, le carnet de trafic, et la documentation radio.
Cet article détaille ce que j’ai construit, comment ça marche, et ce que ça pourrait devenir. Il s’adresse aux OM curieux de savoir ce qu’un « second cerveau numérique » + un assistant IA peuvent apporter à notre hobby.
1. Le problème de base
En tant que radioamateur, on accumule :
- Des exports CSV de programmation radio (CHIRP, Odmaster, RT Systems) — un format différent par logiciel, par modèle, parfois par version
- Un carnet de trafic — papier, fichier texte, ou tableur, rarement tenu à jour
- Des fiches d’écoute — qui, quelle fréquence, quel mode, quel indicatif
- De la documentation — notices, schémas d’antennes, articles techniques
- Des notes de projet — montages, expérimentations, configurations APRS
Tout ça vit dans des silos : le CSV dans un dossier, le carnet dans un cahier, les notes dans un traitement de texte. Aucun lien entre eux.
Obsidian + Hermes résout ça en transformant chaque élément en nœud d’un graphe de connaissances interconnecté.
2. La base de fréquences centralisée
Le concept
Chaque fréquence programmée devient une note individuelle dans Obsidian, avec un frontmatter YAML normalisé :
---
id: td3-063
freq: 145.287
nom: RRF 09
bande: 2m
usage: relais
mode: FM
tone_mode: tsql
rx_tone: 131.8
tx_tone: 131.8
power: high
source: tidradio-td-h3
---
Pourquoi c’est puissant
- 126 fréquences dans mon cas, toutes indexées, toutes liées entre elles
- Dataview (plugin Obsidian) permet de générer des vues dynamiques : tableau trié par fréquence, filtre par bande, par usage, par département
- Wikilinks : chaque fréquence pointe vers l’équipement qui la reçoit, vers les OM entendus dessus, vers la documentation technique
- Le graphe Obsidian montre visuellement les connexions : quels relais sont sur quelles fréquences, quels OM utilisent quels équipements
La vue Dataview
TABLE
freq as "Fréquence",
nom as "Nom",
bande as "Bande",
usage as "Usage",
mode as "Mode"
FROM "84_Radio/frequences"
WHERE bande = "2m"
SORT freq ASC
Un coup d’œil et j’ai toutes mes fréquences 2m, à jour, sans ouvrir CHIRP.
3. L’import/export CSV multi-format
Le vrai problème
CHIRP exporte en CSV 20 colonnes. Odmaster (TD-H9) en exporte 21, avec des noms différents. RT Systems a son propre format. Baofeng, TIDRADIO, TYT — chacun sa sauce.
Avant, je passais des heures à reformater. Maintenant, j’ai des scripts Python et des fichiers de mapping YAML qui font le travail.
L’architecture
84_Radio/
├── frequences/ ← 126 notes individuelles
├── modeles/
│ ├── baofeng-uv5r.yaml
│ ├── tidradio-td-h3.yaml
│ └── tidradio-td-h9.yaml
├── scripts/
│ ├── import.py ← CSV → notes Obsidian (universel)
│ ├── export.py ← notes Obsidian → CSV (universel)
│ ├── export-h9.py ← notes → CSV TD-H9 (format Odmaster)
│ └── export-odmaster-h9.py
└── exports/ ← CSV générés
Comment ça marche
Import :
python3 import.py chirp_export.csv tidradio-td-h3
Le script :
1. Charge le mapping YAML du modèle (colonnes, types, transformations)
2. Parse le CSV avec le bon délimiteur et encodage
3. Détecte automatiquement la bande depuis la fréquence
4. Crée une note par fréquence avec frontmatter normalisé
5. Génère un slug unique : {freq}-{nom}-{bande}-{id}.md
Export inverse :
python3 export.py baofeng-uv5r --output /tmp/uv5r_export.csv
Le script lit toutes les notes, applique le mapping inverse, et reconstruit un CSV compatible CHIRP. Prêt à flasher.
Le mapping YAML
Chaque modèle radio a son fichier de mapping :
modele: "tidradio-td-h3"
colonnes:
- {index: 2, nom: "FREQ", type: "mhz", cible: "freq"}
- {index: 1, nom: "NAME", type: "string", cible: "nom"}
- {index: 6, nom: "rToneFreq", type: "hz_optional", cible: "rx_tone"}
# ...
transformations:
tone_mode:
"Tone": "tone"
"TSQL": "tsql"
"": "none"
duplex:
"+": "plus"
"-": "minus"
"": "simplex"
Ajouter un nouveau modèle radio = créer un fichier YAML de 30 lignes. Plus besoin de toucher aux scripts.
4. Le carnet de trafic intelligent
Le déclencheur
J’envoie un message à Hermes (via Telegram, Discord, ou directement dans le chat) :
SWL: 14.250, BLU, K1ABC, Très bon signal ce soir
Ce qui se passe automatiquement
1. Parsing : Hermes extrait la catégorie (SWL), la fréquence, le mode, l’indicatif, le commentaire
2. Horodatage : date et heure sont enregistrées
3. Mise à jour du carnet : une ligne s’ajoute au tableau chronologique
4. Fiche fréquence : si la fréquence n’existe pas encore, une note est créée ; sinon, l’indicatif est ajouté à la liste des correspondants entendus
5. Fiche OM : si l’indicatif est inconnu, une fiche OM est créée ; si connu, le QSO est ajouté à son historique
6. Wikilinks : tout est lié — la fréquence pointe vers l’OM, l’OM pointe vers ses QSO, le carnet pointe vers tout
Le résultat dans Obsidian
Le carnet de trafic est un fichier Markdown avec un tableau :
| Date | Type | Fréquence | Mode | Indicatif | Commentaire |
|------|------|-----------|------|-----------|-------------|
| 2026-07-04 14:30 | 🎧 SWL | 14.250 | BLU | [[OM/K1ABC\|K1ABC]] | Très bon signal |
| 2026-07-04 15:00 | 🎙️ OM | 7.050 | LSB | [[OM/F5XYZ\|F5XYZ]] | QSO sympa antennes |
Chaque indicatif est un wikilink. Un clic → la fiche complète de l’OM avec l’historique de tous les QSO.
Les formats supportés
| Préfixe | Usage | Exemple |
|---|---|---|
SWL: |
Écoute (Short Wave Listener) | SWL: 14.250, BLU, K1ABC, Bon signal |
OM: |
Communication bilatérale | OM: 7.050, LSB, F5XYZ, QSO sur antennes |
CB: |
Citizen-Band | CB: canal 19, AM, Jean-Michel, Report 5/9 |
5. Le graphe de connaissances
C’est là qu’Obsidian révèle sa puissance. Toutes les notes sont interconnectées :
┌─────────────────┐
│ TD-H3 (radio) │
└────────┬────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│Fréquences│◄───►│ Documentation│ │ Modèle CSV │
│ ×126 │ │ (APRS, etc.)│ │ (mapping) │
└────┬─────┘ └──────────────┘ └──────────────┘
│
┌────┴─────┐
│ Carnet │
│ de trafic│
└────┬─────┘
│
┌────┴─────┐
│ Fiches │
│ OM │
└──────────┘
En mode graphe dans Obsidian, je vois en un coup d’œil :
- Quels OM j’ai contactés sur quelles fréquences
- Quels relais sont dans quelle bande
- Quelle documentation est liée à quel équipement
- Les clusters de fréquences par usage (air, marine, radioamateur, PMR)
6. Hermes comme assistant vocal
Au-delà du carnet de trafic, Hermes m’aide au quotidien :
- « Quelle est la fréquence du relais F5KFF sur 2m ? » → Hermes consulte la base et répond
- « Exporte mes fréquences 70cm au format TD-H9 » → le script d’export s’exécute
- « Documente le protocole APRS » → une fiche structurée est créée dans Obsidian
- « Quels OM ai-je contactés ce mois-ci ? » → requête Dataview + réponse
Tout ça sans ouvrir Obsidian. Par message texte ou vocal.
7. Évolutions possibles
Ce système est loin d’être figé. Voici les pistes que j’explore :
7.1 Intégration SDR en temps réel
Un récepteur SDR (RTL-SDR, HackRF, Airspy) branché en permanence, avec un logiciel qui détecte les transmissions et les envoie à Hermes. Chaque signal détecté → entrée automatique dans le carnet de trafic. Fréquence, mode, indicatif (via decodeur), timestamp.
7.2 Carte de couverture automatique
Chaque QSO enregistré avec sa position (via l’indicatif ou le report) alimente une carte. Visualiser les distances, les ouvertures de bande, les chemins de propagation.
7.3 Partage entre OM
Un vault Obsidian partagé entre plusieurs OM d’un club. Chacun logge ses QSO, tout le monde voit le trafic, les fréquences actives, les ouverture de bande en temps réel. Synchronisation via Syncthing ou Git.
7.4 Logbook automatique vers les services en ligne
Export automatique du carnet de trafic vers QRZ.com, eQSL, Clublog. Plus de saisie manuelle.
7.5 Analyse de propagation
Corrélation entre les QSO enregistrés et les données de propagation (indices K, flux solaire, ouverture de bande). Hermes pourrait détecter des patterns : « Les 20m sont ouverts vers les US en ce moment. »
7.6 Alertes de trafic
Hermes surveille les fréquences et m’avertit quand une activité intéressante est détectée : « Trafic DX sur 14.250 MHz, indicatif K1ABC. »
7.7 Génération de rapports
Rapport mensuel automatique : nombre de QSO, bandes les plus actives, nouveaux indicatifs contactés, statistiques de propagation.
8. Pourquoi Obsidian plutôt qu’autre chose ?
| Critère | Obsidian | Tableur | App dédiée | Papier |
|---|---|---|---|---|
| Liens entre notes | ✅ Natif | ❌ | ❌ | ❌ |
| Graphe visuel | ✅ | ❌ | ❌ | ❌ |
| Scriptable | ✅ (Python) | ✅ (VBA) | ❌ | ❌ |
| Multi-plateforme | ✅ | ✅ | ❌ | ✅ |
| Recherche plein texte | ✅ | ❌ | ✅ | ❌ |
| Versionné (Git) | ✅ | ❌ | ❌ | ❌ |
| Gratuit | ✅ | ❌ | ✅ | ✅ |
| Extensible (plugins) | ✅ | ❌ | ❌ | ❌ |
Obsidian n’est pas fait pour la radio. Mais sa flexibilité le rend meilleur que les solutions spécialisées pour qui veut un système sur mesure, interconnecté, et évolutif.
9. Ce qu’il faut pour reproduire
- Obsidian (gratuit) — le « second cerveau »
- Hermes Agent (open source) — l’assistant IA
- Python 3 — les scripts d’import/export
- CHIRP — pour l’export CSV depuis la radio
- Syncthing (optionnel) — synchronisation entre machines
Le tout tourne sur un VPS à 5 €/mois. Ou sur un Raspberry Pi.
Conclusion
Obsidian + Hermes transforme la gestion radioamateur d’une collection de fichiers disparates en un système de connaissances interconnecté. Le carnet de trafic n’est plus une corvée : il se remplit tout seul. Les fréquences ne sont plus des lignes dans un CSV : ce sont des nœuds dans un graphe. La documentation n’est plus perdue dans un dossier : elle est liée à chaque équipement, chaque fréquence, chaque QSO.
Ce système est reproductible, évolutif, et open source. Si vous utilisez déjà Obsidian ou si vous cherchez une meilleure façon de gérer votre activité radio, je suis convaincu que cette approche vous plaira.
F4UCR — 73
Article écrit avec Hermes (Jenkins), mon assistant IA personnel, qui gère aussi mon carnet de trafic et ma base de fréquences.