Montre connectée Garmin Instinct 2 surf et son SDK Connect IQ

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, l’Instinct 2 avec l’option surf 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 . 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.

Zoneminder, solution de vidéosurveillance sous linux

Dans un précédent article j’avais évoqué que j’avais commencé à m’intéresser au système de vidéosurveillance. Je m’étais attardé sur deux outils, l’un très simple, motionplus et l’autre nettement plus évolué zoneminder. Dans un premier temps rebuté par la complexité de configuration de zoneminder, j’ai testé pendant plusieurs semaines motionplus. Mais finalement il ne m’a pas convaincu, certains points sont totalement rédhibitoires comme une datation à l’américaine qui fait que les évènements sont datés sur 12h sans qu’on sache si c’est le matin ou l’après midi ou alors il n’y a aucune fonctionnalité pour supprimer les évènements, il faut passer par une commande SQL pour pouvoir le faire. Mais le soucis principal est l’absence de détection pour ma caméra extérieure.

J’ai donc recherché d’autres outils de vidéosurveillance plus conviviaux et efficaces et je me suis cassé les dents pour installer Frigate, OS-NVR ou bien encore feniks. Ces outils sont basés sur docker que je connais mal, il me faudra passer par son appropriation pour que je puisse aller plus loin. Cela signifie également un changement d’architecture de mes serveurs et pour l’instant je n’ai pas franchi le pas de la « conteneurisation ».

Par dépit je me suis donc rabattu sur zoneminder et j’ai donc du passer du temps à comprendre ses rouages pour pouvoir le configurer proprement. J’ai donc découvert les zones qui permettent de découper l’image en plusieurs parties avec des configurations de détection différentes d’une zone à l’autre. Sur l’image ci-dessous, seules les zones en rouge sont actives en détection.

J’ai pas mal galéré pour trouver le bon réglage pour ma zone autour du portail qui est plutôt lointain, elle ne détectait rien du tout, même pas l’ouverture du portail. Finalement j’ai repris les réglages de cette page qui ont été un bon point de départ, mais ce n’est pas encore totalement satisfaisant pour détecter des personnes proche du portail. Et je continue à tâtonner en affinant les paramétrages de la zone.

Une autre découverte autour de zoneminder est ZMES, le serveur de notification d’évènement, c’est un outil complémentaire permettant la reconnaissance d’objet par deep learning. Il permet ainsi d’identifier automatiquement les objets comme on peut le voir ci-dessous

Et quand on visualise un évènement, l’objet identifié est surligné

Au final, il me reste à continuer à travailler le paramétrage des zones pour améliorer la détection, je vais sans doute étoffer mon système avec une nouvelle caméra extérieure et une caméra intérieure. En attendant j’ai mis à jour ma page dédiée sur mon site Funix.

Passage à cauldron et kdenlive 24.08.1

je suis passé à la dernière version de kdenlive, ça ne s’est pas fait sans mal car il faut passer à KF6, or pour cela pour ma Mageia il faut que je passe à la version Cauldron, version instable qui préfigure la Mageia 10.

kdenlive 24.08.1

Cela ne s’est pas fait sans mal, j’ai suivi les indications qui sont indiquées sur le wiki mais il y a plein de conflits à gérer en supprimant manuellement les packages de la Mageia 9 et relancer x fois la commande urpmi –auto-update –auto.

J’ai dû faire face à la non compilation du module propriétaire nvidia lié au fichier conftest.sh. Pour le résoudre j’ai édité le fichier /usr/src/nvidia470-470.256.02-1.mga10.nonfree/conftest.sh et j’ai rajouté une ligne comme ceci

-nostdinc -isystem $ISYSTEM \
-Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-incompatible-pointer-types"

Pour compiler on tape ensuite

dkms build -m nvidia470 -v 470.256.02-1.mga10.nonfree
dkms install -m nvidia470 -v 470.256.02-1.mga10.nonfree

On veille à ce qu’il y ait bien nvidia dans le fichier /etc/X11/xorg.conf et on reboot.

Pour en revenir à kdenlive, la page d’installation avec la version 7.28 de mlt et kdenlive 24.08.1 est à jour. Et à ce jour, je n’ai pas pris le temps d’évaluer les nouvelles fonctionnalités.

Nouveau flotteur de windsurf

Mon flotteur JP Young Gun de 70l a cédé lors de mes dernières sessions, il y a une énorme fissure qui s’est créée sur le côté entre les deux footstraps. J’ai bien tenté de la réparer avec de la résine époxy et des feuilles de fibre composite mais ça n’a pas tenu lors de ma dernière session. Mes réparations se sont décollées, mon flotteur vibrait et avait un comportement plus que bizarre, je m’attendais qu’au moindre saut il se casse en deux.

Dernière session le 7 septembre sur le spot de la Bergerie, presqu’île de Giens, pour ma JP Young Gun

Finalement il a tenu, mais il était grand temps de le changer. Je l’avais acheté en 2015 pour la modeste somme de 100€, c’était déjà un flotteur un peu dépassé vu qu’il était sorti en 2006 et les multi fins commençaient largement à s’imposer.

Les réparations maison qui n’ont pas tenu et la fissure sur le côté droit du flotteur

Comme je n’avais pas envie de mettre 2000€ dans un flotteur neuf, j’ai scruté le boncoin et les occasions dans les shops finalement j’ai trouvé mon bonheur chez Funway sur La Garde à côté de Toulon, avec un flotteur Tabou Pocket Vintage de 69l de 2017. Il est dans un excellent état avec probablement peu de navigations au compteur pour un prix très compétitif de 350€, le vendeur m’a expliqué qu’il y a moins de demande pour les flotteurs avec si peu de volume.

La Tabou Rocket Vintage 69l avec la JP Young Gun 70l qu’elle va remplacer

Le terme vintage est assez peu approprié car c’est mon JP Young Gun qui était clairement vintage avec son aileron unique et son shape daté. Il faudra que je me fasse à un shape qui m’a l’air très différent et 3 ailerons, même si de prime abord les dimensions générales sont plutôt proches (230cm de long, 55,5cm de large, 70l pour la JP et 224cm de long, 56cm de large, 69l pour la Tabou). Dommage que je ne l’ai pas eu plus tôt pour le tester dans les vagues bretonnes.

Les pads ont l’air super confortables !
Le thruster de 3 ailerons

Je me hâte maintenant de l’étrenner sur l’eau !

Systèmes de vidéosurveillance sous Linux

Dans une société qui se sécurise, je ne suis pas en reste et j’ai décidé d’installer 2, 3 caméras judicieusement disposées à des fins de vidéosurveillance et évidemment le tout doit marcher sous Linux. L’idée n’est pas de passer mon temps à les visualiser en temps réel, mais que le système de supervision détecte les mouvements anormaux et me renvoie une alarme.

On trouve sur un célèbre site de vente en ligne des caméras IP plutôt abordables, mon premier choix s’est porté sur la marque Reolink, mais j’ai été incapable de la faire fonctionner sous Linux et même sous windows ! Et rien n’est fait de la part de ce constructeur pour les utilisateurs linux, donc retour à l’envoyeur et je me rabats sur la marque Annke et ce modèle I51DL.

Caméra Annke avec son injecteur PoE

Dans un cas comme un autre ces caméras IP sont alimentées via le câble Ethernet (PoE Power over Ethernet) et cela nécessite un routeur ou un adaptateur particulier comme celui qu’on peut voir sur la photo ci-dessus de ce modèle.

Petit bémol, j’ai dû passer au moins une fois par windows pour l’activer avec le logiciel maison en fixant un mot de passe et l’adresse IP mais ensuite toute la configuration peut se faire d’un navigateur sous Linux en tapant simplement l’adresse IP dans la barre d’URL, comme on peut le voir sur ce screenshot pris sur mon poste Linux/Mageia 9.

Page de configuration de la caméra Annke

La visualisation se fait simplement en tapant dans un shell

ffplay rtsp://admin:password@192.168.2.110

Côté logiciel, pour l’instant j’ai testé deux logiciels, zoneminder et motionplus, les deux permettant d’intégrer un large panel de caméras qu’elles soient distantes IP, Wifi, locales, analogiques ou numériques, de faire de la détection automatique de mouvement, de créer des événements. Ils sont basés également sur un serveur web et MySQL pour gérer les évènements, ils sont accessibles via un navigateur où il possible de les configurer, de visualiser en temps réel les caméras et de gérer les événements.

Zoneminder est considéré comme la référence opensource, mais il est de prime abord plus complexe avec beaucoup plus de fonctionnalités que motionplus plus simple et moins lourd.

Zoneminder

J’ai créé une page dédiée sur mon site Funix où vous trouverez davantage de détails sur l’installation et leur utilisation. Cette page est appelée à s’étoffer au fur et à mesure de l’installation, de la montée en gamme et en perfectionnement de mon propre système.

Tutoriel Kdenlive

Une icône fixe a fait son apparition sur le bandeau à droite de mon blog, un lien s’y cache qui pointe vers mon tutoriel de Kdenlive, l’excellent logiciel de montage vidéo libre qui tourne sous linux et windows.

Kdenlive 24.05.2

Je l’ai revu de fond en comble, en mettant à jour les copies d’écran vers la dernière version 24.05.2 et en adaptant certaines descriptions. Il me reste à reprendre également le guide pdf téléchargeable.

Je vous invite à le consulter et à découvrir ce merveilleux logiciel.

Réseau local

J’ai récemment revu en profondeur mon réseau local qui jusqu’à présent avait l’architecture décrite dans ce post. Pour résumer en un simple schéma, cela donne quelque chose comme cela :

Internet arrive via la fibre sur une Box SFR qui est branchée sur un routeur TP-Link Archer C6 qui dessert mon réseau local (mentionné Réseau 1 sur le schéma ci-dessus) constitué de :

  • Un Lenovo ThinkCenter M92p utilisé comme serveur évoqué dans ce post. Il se nomme sur mon réseau ultra et tourne sous Mageia 9. Sur la photo ci-dessous on peut le voir sur la tranche à côté de la box SFR connectée en fibre optique et le routeur TP-link Archer C6 qui vient compléter les misérables fonctionnalités de la box et qui permet une bonne séparation des réseaux, le tout ondulé.
  • Un PC ACER Predator G3-605 processeur Intel Core i7-4790 16Go de RAM DD3, disque SSD de 256Go, 1+4To de disques SATA appelé predator,  il est doté de Mageia 9. C’est ma station de montage vidéo avec kdenlive il est équipé d’un scanner Epson Perfection V30, c’est également mon PC de stockage multimédia avec une capacité totale de 22To avec son extension de disques Terramaster (17To sur 5 disques)
Poste de travail Predator sur la droite, serveur Lenovo Thinkcenter M92P à côté de la Box modem SFR
Continuer la lecture de Réseau local

Kodi et home cinema

Je me suis équipé récemment d’une barre de son 5.1 et qui embarque tout un tas de technologies permettant de se croire au cinéma comme la spatialisation surround DTS Virtual X et son concurrent Dolby Atmos. Je me suis empressé de brancher mon mini PC Dell Dell Optiplex 7040 qui fait office de mediacenter avec kodi pour voir la différence. En visualisant un film et bien à vrai dire, c’est plutôt la déception, le son reste plat, même s’il bénéficie de plus de volume et de basse.

Mini PC mediacenter Dell Optiplex 7040 en bas à droite

En fait ce n’est pas vraiment plug and play et il y a quelques manipulations à faire sur le PC pour prendre en compte ces technologies audio. Cela commence par la configuration de PulseAudio, on lance son utilitaire de configuration et dans l’onglet Configuration il faut pointer sur la sortie HDMI (puisque le PC est branché d’abord à la barre, puis la barre à la TV), il ne faut pas choisir les sorties HDMI multicanal 5.1 ou 7.1 même si la barre le permet.

Ensuite dans l’onglet Périphériques de sortie dans les options avancées, je coche toutes les cases liées aux différentes technologies audio disponibles.

Maintenant sous kodi, dans les paramètres système Audio en mode expert, je choisis le Dispositif de sortie audio correspondant à la sortie HDMI, pour Configuration de la sortie, je mets Meilleure concordance, je coche Mixage stéréo vers multicanal (même si j’ai un doute qu’il faille le faire, à tester).

Puis plus bas, je coche Activer le mode laisser-passer (Passthrough audio) et toutes les cases en dessous.

Et là, la différence est flagrante d’autant plus si on active sur la barre de son le mode Dolby atmos.

Maintenant concernant le format audio des films, on a essentiellement deux choix, le codec AAC et le codec AC3 (Dolby digital). Le premier est un très bon choix pour la qualité de son, alors que le deuxième a été pensé pour les sons surround même s’il est réputé fournir un son de qualité inférieure à l’AAC.

Pour aller plus loin, un peu de lecture, tout d’abord Comprendre les différents formats de son cinéma, et Obtenir un son multicanal depuis son ordinateur sous Linux.

Partager des bases de données MySQL multimédia Digikam et Kodi

A l’occasion d’une reconfiguration totale de mon réseau que j’évoquerai dans un prochain post, j’ai été emmené à vouloir partager mes bases de donnée multimedia kodi et digikam d’un PC à un autre. Mes bases de donnée sont physiquement sur un PC de bureau Acer Predator doté d’une large capacité de stockage (22 To) mais particulièrement bruyant, pour cette raison sa place n’est pas vraiment dans le salon, j’ai donc fait l’acquisition d’un mini PC Dell optiplex 7040 silencieux branché à la TV avec l’objectif qu’il puisse accéder aux bases de données multimedia de mon PC Predator placé à une distance respectable dans une autre pièce.

Commençons par kodi qui, pour rappel est un mediacenter que j’utilise essentiellement pour visualiser mes films.

La première chose à faire est d’exporter la base de donnée de kodi vers un serveur MySQL, en l’occurrence vers mon serveur mini PC Lenovo Thinkcenter sur lequel tourne déjà un serveur MariaDB. On crée ensuite le fichier ./kodi/userdata/advancedsettings.xml contenant

<advancedsettings>
  <videodatabase>
     <type>mysql</type>
     <host>192.168.13.11</host>
     <port>3306</port>
     <user>kodi</user>
     <pass>kodi</pass>
  </videodatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
  <musicdatabase>
     <type>mysql</type>
     <host>192.168.13.11</host>
     <port>3306</port>
     <user>kodi</user>
     <pass>kodi</pass>
  </musicdatabase>
</advancedsettings>

Maintenant pour utiliser cette base de données sur d’autres machines avec d’autres utilisateurs, il suffit de copier  le fichier advancedsettings.xml dans le répertoire userdata de l’autre utilisateur d’une autre machine. Il faudra également copier le fichier Textures13.db sous userdata/Database et le répertoire complet userdata/Thumbnails. Ce n’est pas tout, si vos fichiers de votre PC initial se trouvent sur le disque /germaine/video/Films, sur les autres postes clients ce répertoire doit être partagé par montage NFS aux autres postes et doit être configuré tel quel en tant que source sur ces mêmes postes. Attention vous devez veiller à avoir la même version de kodi sur chacun des postes où la base est partagée pour éviter des conflits et des problèmes éventuels. La manipulation est décrite plus dans le détail sur cette page.

Passons à digikam maintenant qui est certainement le gestionnaire open source photos de référence (voir mes posts dans l’ordre chronologique , et ici).

Digikam

De la même manière, sur le PC de référence on exportera la base dans une base de données MySQL. Sur l’autre poste, on veillera à avoir exactement la même version de digikam et on configurera l’accès à la base de donnée qu’on a configuré préalablement sur le poste de référence.

Configuration de la base de données MySQL sous digikam

Dans Collections, comme pour kodi, le répertoire contenant les photos du PC de référence doit être identique et partagé par montage NFS et le chemin doit être identique. Ce n’est pas fini, car en consultant via phpMyAdmin l’entrée albumroots on voit que le répertoire contenant les photos est identifié par son uuid comme cela volumeid:?uuid=35f2d2e0-f3f0-4bc1-a045-b7eb45261962&fileuuid=f5da6cf3-983b-4c9e-bced-ba341864e317. Du coup sur l’autre poste les photos sont inaccessibles. Sous phpMyAdmin, on tapera la commande SQL suivante :

UPDATE AlbumRoots SET identifier='volumeid:?path=/germaine/sauvegarde-mana/photos', specificPath='/' WHERE id=1;

On mentionnera bien sûr le chemin commun du répertoire contenant les photos.

Série de sorties windsurf

J’ai enchaîné une série de trois sorties de windsurf depuis vendredi dernier en laissant passer le coup de vent d’aujourd’hui avec ses claques à plus de 100km/h sur le spot et ses trombes d’eau. Deux sorties par vent d’ouest du côté du spot de l’Almanarre avec mise à l’eau aux Estagnets et une hier sur le spot de la Bergerie par vent d’est, de quoi faire tourner mon quiver de petites voiles de 3.4 à 4.7 en passant par la 4.2.

Pour rappel je tiens à jour le journal de mes sorties windsurf sur cette page.

Le 24 mars 2024 sur le spot de l’Almanarre

J’en ai profité pour faire un court montage avec la dernière version 24.02 de kdenlive qui tourne toujours sous KF5/Plasma5 bien qu’elle soit plutôt dédiée pour KF6/Plama6.

Accessoirement j’ai mis à jour mon tutoriel kdenlive en rajoutant quelques fonctionnalités supplémentaires de la dernière version.