Ă cĂŽtĂ© de mon travail d’IngĂ©nieur SystĂšme (focus Kubernetes) chez PostFinance,
je suis marié à une agricultrice en Suisse, et vis avec elle et sa famille sur
l’exploitation familiale.
Cela me change de mon travail quotidien, et j’ai
parfois l’occasion d’aider en donnant par exemple Ă boire aux veaux lors de la
traite, en utilisant mes compétences pour par exemple installer des caméras de
surveillance, pour déployer un réseau WiFi longue distance à travers
l’exploitation, ou encore pour moderniser la surveillance de la traite
quotidienne.
C’est ce dernier point que je dĂ©taille aujourd’hui (sans les dĂ©tails
techniques, qui seront eux abordés dans la version anglaise de cette article,
et dans le README
du projet OpenSource que j’ai crĂ©Ă© pour ce projet).
La traite sur la Ferme
Mon Ă©pouse et sa famille traient quotidiennement 65 vaches laitiĂšres Holstein, Ă 5h30 le matin et Ă 16h30 pour la traite du soir. Les donnĂ©es de la traite sont enregistrĂ©es dans un logiciel appelĂ© Alpro, qui n’a plus Ă©tĂ© mis Ă jour depuis 2009, et qui ressemble à ça:
Le logiciel permet d’obtenir un grand nombre d’informations sur les vaches, comme la quantitĂ© de lait pour chaque traite, la quantitĂ© de concentrĂ© distribuĂ© Ă la vache, la durĂ©e de la traite, le nombre de jours depuis la derniĂšre mise-bas, etc.
Bien que ces donnĂ©es soit intĂ©ressantes, comme le seul moyen d’y accĂ©der est de se connecter Ă l’ordinateur et de d’utiliser le vieux logiciel Ă l’interface dĂ©modĂ©e, je me suis intĂ©ressĂ© Ă essayer d’importer les donnĂ©es de la traite dans une base de donnĂ©es de sĂ©ries chronologiques (en anglais: time-series database), afin de pouvoir ensuite visualiser ces donnĂ©es avec un logiciel moderne et que j’apprĂ©cie au quotidien: Grafana.
Importer les données Access
Pour ce faire, je me suis intĂ©ressĂ© Ă la base de donnĂ©es employĂ©e par le logiciel Alpro, qui est une base de donnĂ©e Access assez vieille, mais que l’on peut toujours ouvrir avec des logiciels comme MDB/ACCDB viewer sour MacOS, avec Microsoft Access, ou encore avec l’excellent logiciel open-source mdbtools.
Le processus pour sortir les données Access
et les convertir au format
OpenMetrics/Prometheus est le suivant:
- je sauvegarde les fichiers de la base de donnĂ©es Alpro avec le logiciel open-source restic, qui me permet assez facilement de faire une sauvegarde incrĂ©mentale toutes les 15 minutes sur un serveur S3 (en l’occurrence, Cloudflare R2, avec une offre gratuite gĂ©nĂ©reuse), et qui gĂšre automatiquement la rotation des sauvegardes
- je télécharge la derniÚre sauvegarde dans un
CronJob
sous Kubernetes, et je convertis les fichiers Access.mdb
en une base de donnéesSQLite
- un script python importe les données
SQLite
avec la librairie pandas, convertit les “timestamps”, filtre les donnĂ©es manquantes/erronĂ©ees, puis gĂ©nĂšre des enregistrements OpenMetrics/Prometheus qui ressemblent à ça:
11 cow_milk_yield{cow_id="JADE",cow_no="1",session="1",} 9.32 1705383960000
12 cow_milk_yield{cow_id="JADE",cow_no="1",session="2",} 11.07 1705422540000
13 cow_milk_yield{cow_id="JURAFLO",cow_no="2",session="1",} 16.63 1705384860000
14 cow_milk_yield{cow_id="JURAFLO",cow_no="2",session="2",} 12.82 1705421520000
15 cow_milk_yield{cow_id="JOLIMOME",cow_no="3",session="1",} 12.34 1705380300000
...
4049 cow_milk_daily_yield{cow_id="JETSET",cow_no="72",session="2",} 20.58 1708014720000
4051 cow_milk_daily_yield{cow_id="FIGGIE",cow_no="75",session="2",} 20.87 1708015740000
4053 cow_milk_daily_yield{cow_id="ETIVA",cow_no="77",session="2",} 24.34 1708014180000
4055 cow_milk_daily_yield{cow_id="JESSIE",cow_no="78",session="2",} 22.729999999999997 1708016460000
4057 cow_milk_daily_yield{cow_id="HESQUISE",cow_no="80",session="2",} 33.47 1708011780000
Name: 0, Length: 20290, dtype: objec
- j’envoie tous ces enregistrements dans ma base de donnĂ©e chronologique de prĂ©dilection: VictoriaMetrics
Visualisation des données
Comme les donnĂ©es de la traite sont disponibles dans VictoriaMetrics, je peux utiliser Grafana pour les visualiser. Je pourrai potentiellement par la suite crĂ©er des alertes, par exemple lorsqu’il faut beaucoup plus de temps pour traire une vache que la veille, ou si la production moyenne de lait sur 3 jours baisse sensiblement.
Comme Grafana est une solution de visualisation de graphiques web, il est maintenant possible en tout temps de consulter la production de chaque vache, la tendance de production, la durĂ©e moyenne de la traite, etc. Et ce mĂȘme depuis son natel (/tĂ©lĂ©phone portable/smartphone)!
Je clĂŽture donc cet article avec un aperçu de la visualisation. Le prochain Ă©pisode concernera l’installation de mĂ©thanisation/biogaz de l’exploitation !