Je me suis rendu récemment du côté de Chambéry où j’ai eu l’occasion de faire trois randonnées dans le massif des Bauges que je vais vous présenter dans ce post. A la base en cette période hivernale ce sont des randonnées à faire en raquette, nous avons manqué de neige sur les deux premiers parcours mais ça le faisait dans le dernier parcours situé plus en altitude. Bien que ne nécessitant pas de raquette, les premiers parcours étaient souvent glissant et des bâtons et des crampons au pied n’étaient pas de trop.
Commençons par la première randonnée, entre le Revard jusqu’à la Feclaz matérialisée sur la carte ci-dessous :
C’est un aller retour de 12,42km au départ d’un parking en contrebas du belvédère du Revard, avec un dénivelé positif total de 488m et donc autant en négatif pour revenir au point de départ avec un point bas à 1343m et un point haut à 1484m. Le chemin est plutôt bien indiqué par des logos de raquette, vous pouvez néanmoins télécharger ma trace GPS au format GPX.
On alterne entre des passages en forêt et des zones dégagées avec des montées et des descentes successives avec en prime une magnifique vue de Chambéry à Aix les Bains avec le lac du Bourget.
J’ai mis à jour mon site FUNIX, les modifications sont les suivantes :
pages divers
page ma configuration, passage à Mageia Cauldron pour un de mes PC et rajout d’une photo actualisée de ma baie de brassage. On y voit mon switch TP-Link spécifique pour mes caméras de vidéosurveillance avec prises ethernet RJ45 POE.
page piloter une montre GPS garmin, passage à VSCode 1.97.2 pour programmer sa montre avec le SDK ConnectIQ, passage à gps babel 1.10.0 et sa nouvelle interface graphique
page outils de base vidéo, passage à flac 1.5.0, OpenCV 4.11.0 et ffmpeg 7.1, même si pour l’instant je n’arrive pas à compiler ces deux derniers sur mon poste Mageia Cauldron
page Apache+PHP+MariaDB, passage à MariaDB 1.4.5, apache 2.4.63, PHP 8.4.4 et phpMyAdmin 5.2.2, rajout d’un paragraphe pour rendre accessible un serveur LAMP d’internet et installation d’un certificat avec Let’s Encrypt
Dans la suite de mon post pour pouvoir visualiser les caméras de vidéosurveillance avec zmNinja sur un mobile, je me basais sur un serveur LAMP (Linux+Apache+MariaDB+PHP) personnel accessible sur internet avec une adresse fixe fournie par No-IP. Or jusqu’à présent j’utilisais un certificat autosigné pour chiffrer la connexion avec SSL et ça me générait une exception avec le navigateur qu’il faut accepter.
Il se trouve que certains navigateurs refusent qu’on puisse accepter le risque et exige un certificat reconnu par une autorité qualifiée. Je suis donc passé par Let’s Encrypt pour bénéficier d’un certificat valide.
Il est possible d’accéder au système de vidéosurveillance zoneminder à partir d’un mobile dès lors que vous avez activé votre serveur httpd pour être visible sur internet. Pour cela j’ai ouvert une route sur ma box SFR et mon routeur en activant une connexion chiffrée SSL sur mon serveur LAMP. Je me suis abonné à No-IP qui me permet d’avoir une adresse fixe sur internet qui pointe sur l’adresse IP dynamique que m’attribue SFR. Bien sûr j’ai défini les règles qui vont bien avec shorewall.
L’affichage sur le mobile n’est pas formidable et pas très convivial comme on peut le voir ci-dessous:
Il se trouve qu’il existe une application adhoc qui s’appelle zmNinja. Alors certes cela coûte la modique somme de 4,69€ mais ça vaut le coup d’investir pour si peu pour avoir une visualisation confortable sur mobile.
J’ai étoffé mon système de vidéosurveillance avec maintenant trois caméras extérieures au total, c’est ma configuration a priori définitive. Comme j’étais plutôt satisfait de la caméra Annke C500 I51DL avec une bonne compatibilité sous Linux j’en ai prise une deuxième, pour la dernière caméra c’est toujours une Annke, un modèle dôme commandable à distance WPT500 I51CP qui marche également parfaitement sous Linux.
Annke C500 I51DLAnnke WPT500 I51CP
Pour finaliser mon dispositif, je souhaite également placer une caméra à l’intérieur. Sans vouloir y mettre le prix j’ai testé une caméra Annke Crater Pro I81CG qui m’a coûté guère plus d’une vingtaine d’euros.
J’avais présenté il y a quelques temps l’offre kDrive d’Infomaniak dans ce post. Il se trouve que j’y ai introduit une erreur que je tiens à rectifier ici. Jusqu’à présent j’utilisais leur application maison kDrive dont il existe un appimage pour Linux pour synchroniser mes données. Elle se présente comme cela:
kDrive
Les dernières versions ont apporté des régressions qui m’ont causé un tas de problème de synchronisation, heureusement que j’entretiens 3 sauvegardes au total pour éviter la perte sèche de données. J’y ai passé des heures pour tout remettre en place et mes échanges avec la hotline ont été vain pour comprendre pourquoi ça dysfonctionnait. Lors de mon dernier échange avec la hotline, j’ai appris qu’il était possible de se connecter au kDrive via WebDAV et donc d’utiliser un outil comme rclone, ce que je ne pensais pas possible jusqu’à présent à tort.
Aussitôt dit, aussitôt fait, j’ai mis en place avec des scripts bash deux synchronisations avec rclone qui m’ont permis d’abandonner définitivement l’application kDrive dédiée:
une synchronisation asynchrone pour mes photos que je lance ponctuellement de mon PC où elles sont stockées physiquement ;
une synchronisation synchrone qui se lance automatiquement via cron toutes les semaines pour mes données de bureautique et les pages de mes sites.
Pour faire suite à mon post sur le SDK pour pouvoir personnaliser une montre Garmin, j’ai travaillé quelque peu le sujet pour aboutir à cette nouvelle version du design.
Pour résumer j’ai rajouté deux jauges en forme d’arc, celle sur la gauche pour la charge batterie et l’autre sur la droite pour le ratio entre le nombre de pas et l’objectif quotidien. J’ai laissé tomber la jauge classique en forme de rectangle pour la batterie. J’ai également rajouté des fonts personnalisés, notamment une font détourée pour les minutes comme pour l’affichage d’origine de cette montre. J’ai encore pas mal galéré pour le rafraîchissement des secondes avec la fonction onPartialUpdate, en fait c’est tout simplement le chargement toutes les secondes de la font personnalisée qui devait le perturber, j’ai renvoyé ce chargement à l’initialisation du programme. Il reste encore un artefact à l’affichage des secondes qui est pas vraiment gênant mais un brin inesthétique, je ne suis également pas encore très satisfait des fonts, j’ai du mal à trouver des fonts étroites pour l’affichage des nombres, ces améliorations feront l’objet d’une troisième version plus tard.
Pour publier l’application créée dans le store Garmin, il faut exporter le projet via la combinaison de touches CTRL+SHIFT+P et la commande Monkey C: Export Project dans la liste déroulante. Cela va générer un fichier .iq qu’on pourra télécharger ensuite sur le store pour mettre à disposition l’application. Concernant mon projet on le trouvera ici.
L’année se termine et comme d’habitude je dresse une rétrospective de mes sorties windsurf en 2024. Je suis sorti la dernière fois le 20 décembre pour une session qui était loin d’être mémorable, j’ai laissé passer le coup de vent de ce week end.
Au final 26 sorties, une sortie donc tous les 15 jours alors que j’étais plutôt sur une sortie par semaine quand j’habitais en Bretagne. Plusieurs facteurs expliquent cela, j’habite un peu plus loin des spots, il faut dire que j’habitais à moins d’un kilomètre d’un des meilleurs spots du nord Finistère, les dunes de Sainte Marguerite et puis j’ai d’autres activités, notamment le bricolage à la maison et j’ai pu observer qu’il y a globalement moins de vent et notamment quand je suis disponible en fin de semaine.
Et voilà une vidéo qui synthétise tout cela avec des navigations sur la presqu’île de Giens à Hyères, sur les spots de l’Almanarre par vent d’ouest et du côté de la Bergerie par vent d’est.
J’utilise une caméra GoPro HD9 avec diverses fixations que j’alterne en cours de navigation. Le montage vidéo a été effectué avec la dernière version de kdenlive 24.12.0.
A noter que je tiens un journal de bord de mes sorties depuis 2002, 22 ans d’un décompte rigoureux qu’on peut retrouver ici.
J’envoie régulièrement l’audio de mon ordinateur portable Thinkpad vers ma barre de son en bluetooth. Alors que celle-ci dispose de toutes les fonctionnalités audio surround, dolby, DTX, 5.1, etc, ça me désole d’envoyer simplement en stéréo alors que je pourrais faire mieux.
D’où mes recherches pour pouvoir envoyer un son plus qualitatif. Au fil de mes recherches je découvre qu’il existe principalement 2 technologies de diffusion audio bluetooth:
L’A2DP (Advanced Audio Distribution Profile) est celle qu’on retrouve sur tous les périphériques bluetooth actuels. Elle permet une sortie audio stéréo (qu’on retrouve sous le terme sink). Elle utilise en natif le codec audio SBC qui fournit une qualité audio juste acceptable (références ici et là). Aussi d’autres codecs ont fait leur apparition, SBC XQ qui est une version améliorée de SBC, mais également LDAC, Aptx, AAC ou LC3. Cette page, celle là et cette dernière page expliquent très bien les subtilités qui peuvent exister entre eux. Cette technologie est associée à AVRCP (Audio Video Remote Control Profile) qui permet de gérer les commandes.
LE Audio associé au Bluetooth Low Energy (BLE) est un mode basse consommation qui utilise le codec LC3 qui à terme devrait équiper tous les périphériques bluetooth. Ce mode permettra la diffusion vers plusieurs périphériques bluetooth et de pouvoir utiliser la diffusion multicanal 5.1 contrairement aux autres codecs précédemment cités qui sont limités au mono et au stéréo.
Or en connectant ma barre de son « Abri de jardin » (je sais, c’est bizarre…) avec blueman, je me rends compte que je n’ai accès qu’au codec standard SBC et à sa version améliorée SBC XQ. Pas moyen d’avoir un codec plus qualitatif.
Ni une, ni deux, je me lance dans l’installation du serveur audio pipewire car pulseaudio installé de base sur ma Mageia 9 ne gère que l’A2DP et ne gère pas le LE Audio.
Ma montre Garmin Forerunner 735XT m’a définitivement lâché après à peine 4 ans d’utilisation après des déboires diverses, je l’ai échangée contre une autre Garmin Instinct 2 Surf Edition en phase avec mes activités nautiques. Comme la 735XT, il est possible de la programmer et elle dispose d’un SDK pour la personnaliser, j’avais fait un post à ce sujet. Contrairement à la 735XT qui est basée sur Eclipse, elle est basée sur Visual Studio Code.
Tous les détails de l’installation sont données en anglais là. Pour résumer on récupérera le SDK à cette adresse. Et on tapera les commandes suivantes pour l’installer et le lancer la première fois.
mkdir connectiq-sdk
unzip connectiq-sdk-manager-linux.zip
cd connectiq-sdk/
cd bin/
./sdkmanager
Il va falloir d’abord se loguer sur son compte Garmin ou le créer à défaut.
Ensuite il y a une fenêtre pour savoir si les mises à jour du SDK doivent être téléchargées automatiquement quand il y a une nouvelle version. Puis vient une fenêtre pour savoir si on effectue également les mises à jour de périphériques automatiquement. A ce moment vous pouvez sélectionner les périphériques concernés, je vous conseille de sélectionner strictement la catégorie de périphérique utile car sinon ça prend de la place inutilement.
Vient ensuite la fenêtre suivante avec un onglet SDK et DEVICES (périphériques), j’ai cliqué sur la dernière version du SDK et seulement les montres (watches and wearables).
Le SDK Connect IQ est basé sur Visual Studio Code qu’on téléchargera ici. On l’installe et on le lance en tapant:
tar tar xvfz code-stable-x64-1731511985.tar.gz
cd VSCode-linux-x64/
bin/code
Il faudra maintenant installer l’extension Monkey C qui inclut un éditeur, un compilateur et un débogueur. Pour cela dans Visual Studio Code, on ira sur View->Extensions et on tapera Monkey C. Puis on clique sur le bouton Install en bleu. Il faudra ensuite relancer Visual Studio Code.
On génère maintenant une clé de développeur qui sera utile pour signer les applications, attention de bien la conserver dans un coin sans quoi, on ne pourra plus éditer les différents projets ! Pour la générer, on tapera la combinaison de touches Ctrl+Shift+P et dans la liste déroulante on choisit Monkey C: Generate a developper key.
Tant qu’à fait avec la même combinaison de touches on téléchargera des exemples de code Monkey C: Open Samples Folder. Ils se sont retrouvés sous .Garmin/ConnectIQ/Sdks/connectiq-sdk-lin-7.3.1-2024-09-23-df7b5816a/samples. J’ai donc fait un lien de ce répertoire vers mon répertoire de travail de Connect IQ.
On peut passer à sa première application Hello Word ! Pour le code, c’est un peu la jungle, il faut naviguer à vue sur la page Connect IQ et pas mal tâtonner, on pourra commencer par la page pour construire sa première application. La page donnant le détail de l’API est un incontournable, pour mon Instinct 2, il y a une page spécifique mais je n’ai pas trouvé de codes spécifiques même dans les exemples téléchargés. Le forum dédié est également une bonne source d’informations et d’aide.
Au final ça m’a pris des heures pour essayer de comprendre comment coder tout ça et aboutir à ce résultat, tout cela à partir du projet originel Hello World. C’est assez galère car il y a globalement assez peu d’exemples commentés.
Une fois que l’application fonctionne sur le simulateur, il faut construire le binaire, on y accède via la combinaison de touches Ctrl+Shift+P et on choisit Monkey C : Build for device. La compilation va générer un fichier .PRG, une fois la montre connectée en USB, on le placera sous GARMIN/APPS. Pour revenir en arrière il suffira de supprimer le dit fichier.
Et voilà ce que ça donne avec la montre en fonctionnement.