Retour à l'accueil
   Kryss - Bobineur sur ferrites toroïdales

Réception sondes Météo lien QRZ.com lien eQSL.cc lien vers fil Mastodon lien vers page Youtube


iGate APRS : APRX – Envoyer des messages
Par f4guk 5 décembre 2018 dans : APRS
 

Comment envoyer automatiquement un message APRS à un destinataire, à une heure précise, avec APRX ?

Nous avons vu précédemment comment appeler un script externe avec APRX.

Voici un exemple de script vite fait, pour l’interpréteur bin/sh prévu pour tourner sur un Raspberry lui même sur Raspbian. Il y a de fortes chances que ça fonctionne sur d’autres plate-formes et d’autres Linux, mais je n’ai pas testé.

Rappelons que le but est de récupérer directement le résultat du script par APRX 2.8 sans passer par l’écriture d’un fichier sur la SDcard (par souci d’économie de lecture/écriture sur ce type de support).

Pour cela, il génère une ligne avec le destinataire (dest$) et la bonne structure APRS pour un message, avec comme contenu de message: la date et la température du Raspberry.

Attention, tel qu’il est, mon script d’exemple ne fonctionne que si $heure >16 et <18, sinon il est muet : il ne renvoi donc rien. Il ne fonctionne donc que de 17h00 à 17h59. Et le destinataire est F4GUK-9.

Il me sert sur la route du retour du boulot, afin de savoir si mon Raspberry est entrain de cramer, ou pas !

Ici encore c’est à vous d’adapter en fonction de vos besoins.

Notez toujours bien, la première ligne du fichier script qui appelle l’interpréteur /sh.


#!/bin/sh
#
# generateur de messages pour APRX
# Version 0.2 pour bin.sh
# Par F4GUK – Kryss – 06 Aout 2014

dest="F4GUK-9"
message=$(date)
temp=$(/opt/vc/bin/vcgencmd measure_temp)

deuxpoint=`echo $message | cut -c13-13`

if test $deuxpoint = ":"; then
   heure=`echo $message | cut -c11-12`
else
   heure=`echo $message | cut -c12-13`
fi
   jour=`echo $message | cut -c9-10`
   joursem=`echo $message | cut -c1-3`

if test $heure \> "16"; then
   if test $heure \< "18"; then
      echo ":"$dest" :"$message" – "$temp
   fi
fi

break

Avec toujours un « break » en fin, pour qu’APRX le prenne en compte.

Dans le fichier aprx.conf, il faudra rajouter une section du genre :


<beacon>
# Generateur de messages automatiques
beaconmode radio
cycle-size 20m
beacon exec /etc/init.d/aprxmsg timeout 5
</beacon>

avec « etc/init.d/aprxmsg » le nom du script dont le source est donné au dessus.

L’avantage de fixer une heure de fonctionnement dans le script est qu’on peut le lancer comme on veut depuis APRX (ici toutes les 20 minutes), il se s’activera qu’à l’heure / minute / jour de son choix.

J’ai laissé dans le script heure / jour / jour sem(aine) à utiliser et modifier comme vous voulez…

Dans mon script final, j’ai aussi ajouté le fait que le message n’est envoyé que si « $temp > 45°c ». Inutile d’encombrer les ondes s’il n’y a pas d’utilité. Je ne l’ai pas ajouté là, pour ne pas complexifier le code.

Alors ce n’est pas de la haute programmation. C’est juste pour donner des idées et aider ceux qui ne sont pas des pros du codage.

A la fin, vous recevrez un message de ce genre sur la station de destination:

Message d'alerte de température
Message APRS d'alerte de température sur un Yaesu FTM-350

Notez pour conclure, qu’il n’y a pas de vérification que le message envoyé est bien reçu par le destinataire.

Pour implémenter ça, il faudrait numéroter le message « {nnn » (voir les spécifs APRS) et lire le contenu du fichier rflog situé en /var/log/aprx/aprx-rf.log d’APRX dans le but d’extraire un « ack » (accusé de réception) en rapport.

 

Survol