Tuto-meshing-around


Install et config de Meshing-around Mesh Bot Network test and BBS


Mesh Bot for Network Testing and BBS Activities Welcome to the Mesh Bot project! This feature-rich bot is designed to enhance your Meshtastic network experience with a variety of powerful tools and fun features, connectivity and utility through text-based message delivery. Whether you're looking to perform network tests, send messages, or even play games, mesh_bot.py has you covered.

Le process d'upgrade est détaillé à la fin du tuto

ANNEXE Linux : INSTALLER SUDO ET CREER UN UTILISATEUR SUDO SUR DEBIAN 12 https://www.youtube.com/watch?v=6Tez29zEn4g&t=216s


1. Ouvrir un terminal

2. Mise à jour de l'OS (https://lecrabeinfo.net/ubuntu-linux-mettre-a-jour-paquets-systeme.html)

Mettez à jour la liste des paquets :

 $ sudo apt update

Affichez les paquets pour lesquels une mise à jour est disponible :

 $ apt list --upgradable

Mettez à jour les paquets installés sur le système avec au choix :

 $ sudo apt upgrade 
 upgade : les paquets seront remplacés par des versions plus récentes, mais sans qu’aucun autre paquet ne soit ajouté ou supprimé. Par exemple, une nouvelle version de Firefox sera installée avec apt upgrade.

 $ sudo apt full-upgrade
 full-upgrade : même chose que apt upgrade, mais supprime des paquets si cela est nécessaire pour installer les nouvelles versions des paquets.

Supprimez tous les paquets devenus obsolètes et qui ne sont plus nécessaires :

 $ sudo apt autoremove

Supprimez le cache des paquets qui ne peuvent plus être téléchargés :

 $ sudo apt autoclean

3. Installation de meshing-around (https://github.com/SpudGunMan/meshing-around)

Clone the Repository. If you dont have git you will need it

 $ sudo apt-get install git

 # git clone https://github.com/spudgunman/meshing-around

3.1 Installation

 # cd meshing-around
 # ./install.sh 
 First run install.sh was to move meshing-around from lal directory to /opt/meshing-around

 Then change directory
 $ cd /opt/meshing-around

 And run install.sh script a second time for installation
 $ ./install.sh

 root@aprsc25:/opt/meshing-around# ./install.sh

 ########################
 Meshing Around Installer
 ########################

 This script will try and install the Meshing Around Bot and its dependencies.
 Installer works best in raspian/debian/ubuntu or foxbuntu embedded systems.
 If there is a problem, try running the installer again.

 Checking for dependencies...

 Are You installing into an embedded system like a luckfox or -native? most should say no here (y/n) n

 Dependencies installed

 Adding user to dialout, bluetooth, and tty groups for serial access

 Config file already exists, moving to backup config.old

 Config files generated!
 lat,long updated in config.ini to 48.8534,2.3488

 Recomended install is in a python virtual environment, do you want to use venv? (y/n) y
 The Following could be messy, or take some time on slower devices.
 Creating virtual environment...

 Virtual environment not found, trying Reading package lists...
 Building dependency tree...
 Reading state information...
 python3-venv is already the newest version (3.11.2-1+b1).
 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
 Reading package lists... Done
 Building dependency tree... Done
 Reading state information... Done
 python3-venv is already the newest version (3.11.2-1+b1).
 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

 Found virtual environment for python

 Virtual environment created
 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
 Collecting meshtastic
  Downloading https://www.piwheels.org/simple/meshtastic/meshtastic-2.5.10-py3-none-any.whl (299 kB)
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 299.4/299.4 kB 203.6 kB/s eta 0:00:00
 Collecting pubsub
 Downloading https://www.piwheels.org/simple/pubsub/pubsub-0.1.2-py3-none-any.whl (2.8 kB)
 Collecting datetime
  Downloading DateTime-5.5-py3-none-any.whl (52 kB)
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.6/52.6 kB 268.1 kB/s eta 0:00:00
 Collecting pyephem
  Downloading https://www.piwheels.org/simple/pyephem/pyephem-9.99-py3-none-any.whl (2.8 kB)
 Collecting requests
  Downloading https://www.piwheels.org/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 520.4 kB/s eta 0:00:00
 Collecting maidenhead
  Downloading https://www.piwheels.org/simple/maidenhead/maidenhead-1.7.0-py3-none-any.whl (6.0 kB)
 Collecting beautifulsoup4
  Downloading https://www.piwheels.org/simple/beautifulsoup4/beautifulsoup4-4.12.3-py3-none-any.whl (147 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.9/147.9 kB 316.7 kB/s eta 0:00:00
 Collecting dadjokes
  Downloading https://www.piwheels.org/simple/dadjokes/dadjokes-1.3.2-py3-none-any.whl (4.3 kB)
 Collecting geopy
  Downloading https://www.piwheels.org/simple/geopy/geopy-2.4.1-py3-none-any.whl (114 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.3/114.3 kB 315.6 kB/s eta 0:00:00
 Collecting schedule
  Downloading https://www.piwheels.org/simple/schedule/schedule-1.2.2-py3-none-any.whl (12 kB)
 Collecting wikipedia
  Downloading https://www.piwheels.org/simple/wikipedia/wikipedia-1.4.0-py3-none-any.whl (13 kB)
 Collecting googlesearch-python
  Downloading https://www.piwheels.org/simple/googlesearch-python/googlesearch_python-1.2.5-py3-none-any.whl (4.8 kB)
 Collecting bleak<0.23.0,>=0.22.3
  Downloading https://www.piwheels.org/simple/bleak/bleak-0.22.3-py3-none-any.whl (142 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 142.7/142.7 kB 245.3 kB/s eta 0:00:00
 Collecting packaging<25.0,>=24.0
  Downloading https://www.piwheels.org/simple/packaging/packaging-24.2-py3-none-any.whl (65 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 351.3 kB/s eta 0:00:00
 Collecting protobuf>=4.21.12
  Downloading protobuf-5.29.3-cp38-abi3-manylinux2014_aarch64.whl (319 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 319.6/319.6 kB 396.8 kB/s eta 0:00:00
 Collecting pypubsub<5.0.0,>=4.0.3
  Downloading Pypubsub-4.0.3-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.4/61.4 kB 433.7 kB/s eta 0:00:00
 Collecting pyserial<4.0,>=3.5
  Downloading https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 437.0 kB/s eta 0:00:00
 Collecting pyyaml<7.0.0,>=6.0.1
  Downloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (736 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 736.8/736.8 kB 422.9 kB/s eta 0:00:00
 Collecting tabulate<0.10.0,>=0.9.0
  Downloading https://www.piwheels.org/simple/tabulate/tabulate-0.9.0-py3-none-any.whl (35 kB)
 Collecting six<2,>=1
  Downloading https://www.piwheels.org/simple/six/six-1.17.0-py2.py3-none-any.whl (11 kB)
 Collecting zope.interface
  Downloading zope.interface-7.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (260 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 261.0/261.0 kB 272.5 kB/s eta 0:00:00
 Collecting pytz
  Downloading https://www.piwheels.org/simple/pytz/pytz-2024.2-py3-none-any.whl (507 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 223.9 kB/s eta 0:00:00
 Collecting ephem
  Downloading ephem-4.1.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 585.5 kB/s eta 0:00:00
 Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (139 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 139.5/139.5 kB 199.9 kB/s eta 0:00:00
 Collecting idna<4,>=2.5
  Downloading https://www.piwheels.org/simple/idna/idna-3.10-py3-none-any.whl (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 242.8 kB/s eta 0:00:00
 Collecting urllib3<3,>=1.21.1
  Downloading https://www.piwheels.org/simple/urllib3/urllib3-2.3.0-py3-none-any.whl (128 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.4/128.4 kB 264.6 kB/s eta 0:00:00
 Collecting certifi>=2017.4.17
  Downloading https://www.piwheels.org/simple/certifi/certifi-2024.12.14-py3-none-any.whl (164 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 164.9/164.9 kB 235.9 kB/s eta 0:00:00
 Collecting soupsieve>1.2
  Downloading https://www.piwheels.org/simple/soupsieve/soupsieve-2.6-py3-none-any.whl (36 kB)
 Collecting geographiclib<3,>=1.52
  Downloading https://www.piwheels.org/simple/geographiclib/geographiclib-2.0-py3-none-any.whl (40 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.3/40.3 kB 367.0 kB/s eta 0:00:00
 Collecting dbus-fast<3,>=1.83.0  
  Downloading dbus_fast-2.28.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 444.4 kB/s eta 0:00:00
 Collecting typing-extensions>=4.7.0
  Downloading https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.12.2-py3-none-any.whl (37 kB)
 Requirement already satisfied: setuptools in ./venv/lib/python3.11/site-packages (from zope.interface->datetime->-r 
 requirements.txt (line 3)) (66.1.1)
 Installing collected packages: pytz, pyserial, ephem, zope.interface, urllib3, typing-extensions, tabulate, soupsieve, six, 
 schedule, pyyaml, pypubsub, pyephem, protobuf, packaging, maidenhead, idna, geographiclib, dbus-fast, charset-normalizer, certifi, 
 requests, pubsub, geopy, datetime, bleak, beautifulsoup4, wikipedia, meshtastic, googlesearch-python, dadjokes
 Successfully installed beautifulsoup4-4.12.3 bleak-0.22.3 certifi-2024.12.14 charset-normalizer-3.4.1 dadjokes-1.3.2 datetime-5.5 
 dbus-fast-2.28.0 ephem-4.1.6 geographiclib-2.0 geopy-2.4.1 googlesearch-python-1.2.5 idna-3.10 maidenhead-1.7.0 meshtastic-2.5.10 
 packaging-24.2 protobuf-5.29.3 pubsub-0.1.2 pyephem-9.99 pypubsub-4.0.3 pyserial-3.5 pytz-2024.2 pyyaml-6.0.2 requests-2.32.3 
 schedule-1.2.2 six-1.17.0 soupsieve-2.6 tabulate-0.9.0 typing-extensions-4.12.2 urllib3-2.3.0 wikipedia-1.4.0 zope.interface-7.2


 Which bot do you want to install as a service? Pong Mesh or None? (pong/mesh/n)
 Pong bot is a simple bot for network testing, Mesh bot is a more complex bot more suited for meshing around
 mesh

 Do you want to add a local user (meshbot) no login, for the bot? (y/n) y
 useradd: user 'meshbot' already exists
 groupadd: group 'meshbot' already exists
 Added user meshbot with no home directory
 Added meshbot to dialout, tty, and bluetooth groups
 Permissions set for meshbot on logs and data directories

 service files updated
 Created symlink /etc/systemd/system/default.target.wants/pong_bot.service → /etc/systemd/system/pong_bot.service.
 to start pong bot service: systemctl start pong_bot

 Do you want to install the emoji font for debian/ubuntu linux? (y/n) y
 Reading package lists... Done
 Building dependency tree... Done
 Reading state information... Done
 The following NEW packages will be installed:
 fonts-noto-color-emoji
 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
 Need to get 9,894 kB of archives.
 After this operation, 11.0 MB of additional disk space will be used.
 Get:1 http://deb.debian.org/debian bookworm/main arm64 fonts-noto-color-emoji all 2.042-0+deb12u1 [9,894 kB]
 Fetched 9,894 kB in 17s (587 kB/s)
 Selecting previously unselected package fonts-noto-color-emoji.
 (Reading database ... 176233 files and directories currently installed.)
 Preparing to unpack .../fonts-noto-color-emoji_2.042-0+deb12u1_all.deb ...
 Unpacking fonts-noto-color-emoji (2.042-0+deb12u1) ...
 Setting up fonts-noto-color-emoji (2.042-0+deb12u1) ...
 Processing triggers for fontconfig (2.14.1-4) ...
 Emoji font installed!, reboot to load the font

 Optionally if you want to install the multi gig LLM Ollama compnents we will execute the following commands

 curl -fsSL https://ollama.com/install.sh | sh
 ollama pull gemma2:2b
 Total download is multi GB, recomend pi5/8GB or better for this

 Do you want to install the LLM Ollama components? (y/n) n
 Press enter to complete the installation, these commands saved to install_notes.txt
 Good time to reboot? (y/n) y
 Broadcast message from root@aprsc25 on pts/1 (Sun 2025-01-12 19:11:54 CET):

 The system will reboot now!

 Installation complete!
 root@aprsc25:/opt/meshing-around#

3.2 Reboot

3.3 Complete the installation fore this read these commands saved to install_notes.txt

3.4 Configuration

 $ mv config.ini config.ini.old
 $ vi config.ini

 Modify these lines

 Interface de connexion au Rpi
 Définissez l'interface appropriée pour votre méthode (série/ble/tcp). Bien que BLE et TCP fonctionnent, ils ne sont pas aussi 
 fiables que les connexions série. Il existe un chien de garde pour reconnecter TCP si possible. 
 Si besoin pour obtenir l'adresse MAC BLE, utilisez la commande :
 $ meshtastic --ble-scan
 Remarque : le code a été testé avec un seul périphérique BLE et est écrit pour ne prendre en charge qu'un seul port BLE.

 root@aprsc25:/opt/meshing-around# meshtastic --ble-scan
 INFO file:ble_interface.py scan line:116 Scanning for BLE devices (takes 10 seconds)...
 Found: name='GHE1_5e0c' address='24:A1:60:7F:5E:0E'
 BLE scan finished
 root@aprsc25:/opt/meshing-around#


 Dans notre cas la connexion sera de type USB; il faut donc décommenter le port USB (/dev/ttyUSB0)

 # config.ini
 # type can be serial, tcp, or ble.
 # port is the serial port to use; commented out will try to auto-detect
 # hostname is the IP address of the device to connect to for TCP type
 # mac is the MAC address of the device to connect to for BLE type

 [interface]
 type = serial
 # port = /dev/ttyACM0
 port = /dev/ttyUSB0
 # hostname = meshtastic.local
 # mac = 24:A1:60:7F:5E:0E

 # Additional interface for dual radio support
 [interface2]
 enabled = False
 type = serial
 # port = /dev/ttyUSB0
 # port = /dev/ttyACM1
 # port = COM1
 # hostname = localhost
 # mac = 00:11:22:33:44:55


 Paramètres de localisation
 Les prévisions météorologiques sont définies par défaut sur NOAA. Pour les emplacements situés hors des États-Unis, vous pouvez 
 définir UseMeteoWxAPIsur True, pour utiliser une API météo globale. Les valeurs par défaut lat et lon sont les valeurs par défaut 
 lorsqu'un nœud n'a pas de données de localisation, ainsi que la valeur par défaut pour toutes les recherches de répéteurs NOAA. 
 C'est également le centre du rayon pour Sentry.
 # location module
 [location]
 enabled = True
 #lat = 48.8534
 #lon = 2.3488.0
 lat = 47.30852
 lon = 6.01049

 # use Open-Meteo API for weather data not NOAA useful for non US locations
 UseMeteoWxAPI = True

 # NOAA Hydrology unique identifiers, LID or USGS ID
 riverListDefault = # NOAA Hydrology data, unique identifiers, LID or USGS ID

 # Default to metric units rather than imperial
 useMetric = True

3.5 Backup config.ini

 $ cp config.ini config.ini.backup

4. Connecter le Rpi au Module avec un cable USB (Serial mode)


Process de mise à jour

 1. Se placer dans le réperoire d'installation
 $ cd /opt/mashing-around

 2. Faire la mise à jor avec la commande suivante
 $ git pull

Si des fichiers autres que le fichier de configuration ont été modifiés l'upgrade ne se fera pas Voir le résultat de la tentative ci-dessous suite à la modification de install.sh :

 root@aprsc25:/opt/meshing-around# git pull
 remote: Enumerating objects: 129, done.
 remote: Counting objects: 100% (128/128), done.
 remote: Compressing objects: 100% (72/72), done.
 remote: Total 129 (delta 75), reused 101 (delta 52), pack-reused 1 (from 1)
 Receiving objects: 100% (129/129), 65.61 KiB | 509.00 KiB/s, done.
 Resolving deltas: 100% (75/75), completed with 13 local objects.
 From https://github.com/spudgunman/meshing-around
 6c9f9f2..f1ad470  main       -> origin/main
 [new tag]         v1.6.5     -> v1.6.5
 Updating 6c9f9f2..f1ad470
 error: Your local changes to the following files would be overwritten by merge:
         install.sh
 Please commit your changes or stash them before you merge.
 Aborting
 root@aprsc25:/opt/meshing-around# 
 root@aprsc25:/opt/meshing-around# git pull
 Updating 6c9f9f2..f1ad470
 error: Your local changes to the following files would be overwritten by merge:
        install.sh
 Please commit your changes or stash them before you merge.
 Aborting
 root@aprsc25:/opt/meshing-around#

 root@aprsc25:/opt/meshing-around# error: Your local changes to the following files would be overwritten by merge:
        install.sh
 Please commit your changes or stash them before you merge.
 bash: error:: command not found
 bash: install.sh: command not found
 bash: Please: command not found
 root@aprsc25:/opt/meshing-around#

Il y a les 3 options suivantes pour résoudre ce problème :

 1. Commit the change using
    $ git commit -m "My message" 

 2. Stash it. Stashing acts as a stack, where you can push changes, and you pop them in reverse order.
    To stash, type :
    $ git stash 
    Do the merge, and then pull the stash:
    $ git stash pop

 3. Discard the local changes using git reset --hard or git checkout -t -f remote/branch
    $ git reset --hard or $ git checkout -t -f remote/branch
    Or: Discard local changes for a specific file using 
    $ git checkout filename

Dans mon cas j'ai opté pour la 3ème option avec la commande suivante:

    $ git reset

Puis le git pull

    $ git pull --hard

 root@aprsc25:/opt/meshing-around# git reset --hard
 HEAD is now at 6c9f9f2 Update config.template
 root@aprsc25:/opt/meshing-around# git pull
 Updating 6c9f9f2..f1ad470
 Fast-forward
 Dockerfile                         |  13 ++-
 README.md                          |  15 +---
 config.template                    |  22 ++++-
 entrypoint.sh                      |   7 --
 install.sh                         |  28 ++++++-
 logs/README.md                     |  18 ++---
 mesh_bot.py                        | 111 ++++++++++++++-----------
 modules/filemon.py                 |   2 +-
 modules/globalalert.py             |  21 ++++-
 modules/locationdata.py            |  19 ++---
 modules/settings.py                |  79 ++++++++++++++++++
 modules/system.py                  | 432 +++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------
 modules/web.py                     |  51 ++++++++++++
 pong_bot.py                        |  76 ++++++++++-------
 script/docker/README.md            |  25 ++++++
 script/docker/compose.yaml         |  52 ++++++++++++
 script/docker/docker-install.bat   |   6 ++
 script/docker/docker-terminal.bat  |   2 +
 script/docker/entrypoint.sh        |   6 ++
 script/docker/ollama-entrypoint.sh |  16 ++++
 runShell.sh => script/runShell.sh  |   2 +-
 sysEnv.sh => script/sysEnv.sh      |   7 +-
 22 files changed, 644 insertions(+), 366 deletions(-)
 delete mode 100644 entrypoint.sh
 create mode 100644 modules/web.py
 create mode 100644 script/docker/README.md
 create mode 100644 script/docker/compose.yaml
 create mode 100644 script/docker/docker-install.bat
 create mode 100644 script/docker/docker-terminal.bat
 create mode 100644 script/docker/entrypoint.sh
 create mode 100644 script/docker/ollama-entrypoint.sh
 rename runShell.sh => script/runShell.sh (58%)
 rename sysEnv.sh => script/sysEnv.sh (85%)
 root@aprsc25:/opt/meshing-around# git pull
 Already up to date.
 root@aprsc25:/opt/meshing-around# ls
 config.ini         config.template  Dockerfile         install.sh  logs         news.txt     requirements.txt
 config.ini.backup  CONTRIBUTING.md  etc                launch.sh   mesh_bot.py  pong_bot.py  script
 config.old         data             install_notes.txt  LICENSE     modules      README.md    venv
 root@aprsc25:/opt/meshing-around# ls -l
 total 248
 -rw-r--r-- 1 root    root     6947 Jan 12 20:44 config.ini
 -rw-r--r-- 1 root    root     6947 Jan 12 20:44 config.ini.backup
 -rw-r--r-- 1 root    root     6911 Jan 12 18:59 config.old
 -rw-r--r-- 1 root    root     7454 Jan 18 00:27 config.template
 -rw-r--r-- 1 root    root      118 Jan 11 13:41 CONTRIBUTING.md
 drwxr-xr-x 2 meshbot meshbot  4096 Jan 18 00:26 data
 -rw-r--r-- 1 root    root      621 Jan 18 00:27 Dockerfile
 drwxr-xr-x 3 root    root     4096 Jan 12 19:10 etc
 -rw-r--r-- 1 root    root      462 Jan 12 19:10 install_notes.txt
 -rwxr-xr-x 1 root    root    13121 Jan 18 00:27 install.sh
 -rwxr-xr-x 1 root    root      807 Jan 11 13:41 launch.sh
 -rw-r--r-- 1 root    root    35148 Jan 11 13:41 LICENSE
 drwxr-xr-x 2 meshbot meshbot  4096 Jan 18 00:27 logs
 -rwxr-xr-x 1 root    root    68941 Jan 18 00:27 mesh_bot.py
 drwxr-xr-x 4 root    root     4096 Jan 18 00:27 modules
 -rw-r--r-- 1 root    root       25 Jan 11 13:41 news.txt
 -rwxr-xr-x 1 root    root    22320 Jan 18 00:27 pong_bot.py
 -rw-r--r-- 1 root    root    23420 Jan 18 00:27 README.md
 -rw-r--r-- 1 root    root      124 Jan 11 13:41 requirements.txt
 drwxr-xr-x 3 root    root     4096 Jan 18 00:27 script
 drwxr-xr-x 5 root    root     4096 Jan 12 18:14 venv

J'ai ensuite relancé le script d'install. Ceci plus pour test que par nécéssité du fait que le script à été mis à jour et que je n'ai pas encore mis le service en production

 root@aprsc25:/opt/meshing-around# ./install.sh
 ########################
 Meshing Around Installer
 ########################

 This script will try and install the Meshing Around Bot and its dependencies.
 Installer works best in raspian/debian/ubuntu or foxbuntu embedded systems.
 If there is a problem, try running the installer again.

 Checking for dependencies...

 Are You installing into an embedded system like a luckfox or -native? most should say no here (y/n)n

 Dependencies installed

 Adding user to dialout, bluetooth, and tty groups for serial access

 Config file already exists, moving to backup config.old

 Config files generated!
 lat,long updated in config.ini to 49.4097,1.0900

 Recomended install is in a python virtual environment, do you want to use venv? (y/n)y
 The Following could be messy, or take some time on slower devices.
 Creating virtual environment...

 Found virtual environment for python

 Found virtual environment for python

 Virtual environment created
 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
 Requirement already satisfied: meshtastic in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 1)) (2.5.10)
 Requirement already satisfied: pubsub in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 2)) (0.1.2)
 Requirement already satisfied: datetime in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 3)) (5.5)
 Requirement already satisfied: pyephem in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 4)) (9.99)
 Requirement already satisfied: requests in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 5)) (2.32.3)
 Requirement already satisfied: maidenhead in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 6)) (1.7.0)
 Requirement already satisfied: beautifulsoup4 in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 7)) (4.12.3)
 Requirement already satisfied: dadjokes in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 8)) (1.3.2)
 Requirement already satisfied: geopy in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 9)) (2.4.1)
 Requirement already satisfied: schedule in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 10)) (1.2.2)
 Requirement already satisfied: wikipedia in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 11)) (1.4.0)
 Requirement already satisfied: googlesearch-python in ./venv/lib/python3.11/site-packages (from -r requirements.txt (line 12)) 
 (1.2.5)
 Requirement already satisfied: bleak<0.23.0,>=0.22.3 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 1)) (0.22.3)
 Requirement already satisfied: packaging<25.0,>=24.0 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 1)) (24.2)
 Requirement already satisfied: protobuf>=4.21.12 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt (line 
 1)) (5.29.3)
 Requirement already satisfied: pypubsub<5.0.0,>=4.0.3 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 1)) (4.0.3)
 Requirement already satisfied: pyserial<4.0,>=3.5 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 
 1)) (3.5)
 Requirement already satisfied: pyyaml<7.0.0,>=6.0.1 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 1)) (6.0.2)
 Requirement already satisfied: tabulate<0.10.0,>=0.9.0 in ./venv/lib/python3.11/site-packages (from meshtastic->-r requirements.txt 
 (line 1)) (0.9.0)
 Requirement already satisfied: six<2,>=1 in ./venv/lib/python3.11/site-packages (from pubsub->-r requirements.txt (line 2)) 
 (1.17.0)
 Requirement already satisfied: zope.interface in ./venv/lib/python3.11/site-packages (from datetime->-r requirements.txt (line 3)) 
 (7.2)
 Requirement already satisfied: pytz in ./venv/lib/python3.11/site-packages (from datetime->-r requirements.txt (line 3)) (2024.2)
 Requirement already satisfied: ephem in ./venv/lib/python3.11/site-packages (from pyephem->-r requirements.txt (line 4)) (4.1.6)
 Requirement already satisfied: charset-normalizer<4,>=2 in ./venv/lib/python3.11/site-packages (from requests->-r requirements.txt 
 (line 5)) (3.4.1)
 Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.11/site-packages (from requests->-r requirements.txt (line 5)) 
 (3.10)
 Requirement already satisfied: urllib3<3,>=1.21.1 in ./venv/lib/python3.11/site-packages (from requests->-r requirements.txt (line 
 5)) (2.3.0)
 Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.11/site-packages (from requests->-r requirements.txt (line 
 5)) (2024.12.14)
 Requirement already satisfied: soupsieve>1.2 in ./venv/lib/python3.11/site-packages (from beautifulsoup4->-r requirements.txt (line 
 7)) (2.6)
 Requirement already satisfied: geographiclib<3,>=1.52 in ./venv/lib/python3.11/site-packages (from geopy->-r requirements.txt (line 
 9)) (2.0)
 Requirement already satisfied: dbus-fast<3,>=1.83.0 in ./venv/lib/python3.11/site-packages (from bleak<0.23.0,>=0.22.3->meshtastic- 
 >-r requirements.txt (line 1)) (2.28.0)
 Requirement already satisfied: typing-extensions>=4.7.0 in ./venv/lib/python3.11/site-packages (from bleak<0.23.0,>=0.22.3- 
 >meshtastic->-r requirements.txt (line 1)) (4.12.2)
 Requirement already satisfied: setuptools in ./venv/lib/python3.11/site-packages (from zope.interface->datetime->-r 
 requirements.txt 
 (line 3)) (66.1.1)


 Which bot do you want to install as a service? Pong Mesh or None? (pong/mesh/n)
 Pong bot is a simple bot for network testing
 Mesh bot is a more complex bot more suited for meshing around
 None will skip the service install
 mesh

 Do you want to add a local user (meshbot) no login, for the bot? (y/n)y
 useradd: user 'meshbot' already exists
 groupadd: group 'meshbot' already exists
 Added user meshbot with no home directory
 Added meshbot to dialout, tty, and bluetooth groups
 Permissions set for meshbot on logs and data directories

 service files updated
 to start mesh bot service: systemctl start mesh_bot

 Do you want to install the emoji font for debian/ubuntu linux? (y/n)y
 Reading package lists... Done
 Building dependency tree... Done
 Reading state information... Done
 fonts-noto-color-emoji is already the newest version (2.042-0+deb12u1).
 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
 Emoji font installed!, reboot to load the font

 Optionally if you want to install the multi gig LLM Ollama compnents we will execute the following commands

 curl -fsSL https://ollama.com/install.sh | sh
 ollama pull gemma2:2b
 Total download is multi GB, recomend pi5/8GB or better for this

 Do you want to install the LLM Ollama components? (y/n)n
 Press enter to complete the installation, these commands saved to install_notes.txt

 Good time to reboot? (y/n)n

 Installation complete!
 root@aprsc25:/opt/meshing-around#

Correction d'un message d'erreur du à une coupure de réseau durant l'édition du fichier config.ini

 Message d'erreur :

 E325: ATTENTION
  Found a swap file by the name ".config.ini.swp"
           owned by: root   dated: Sun Jan 12 20:32:05 2025
          file name: /opt/meshing-around/config.ini
           modified: YES
          user name: root   host name: aprsc25
         process ID: 2130 (STILL RUNNING)
  While opening file "config.ini"
             dated: Sun Jan 12 20:36:27 2025
      NEWER than swap file!

 Correctif :

 (1) Another program may be editing the same file.  If this is the case,
     be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
 (2) An edit session for this file crashed.
     If this is the case, use ":recover" or "vim -r config.ini"
     to recover the changes (see ":help recovery").
     If you did this already, delete the swap file ".config.ini.swp"
     to avoid this message.

Mise à jour du 26/01/2025

 root@aprsc25:/opt/meshing-around# git pull
 remote: Enumerating objects: 221, done.
 remote: Counting objects: 100% (63/63), done.
 remote: Total 221 (delta 63), reused 63 (delta 63), pack-reused 158 (from 1)
 Receiving objects: 100% (221/221), 78.68 KiB | 739.00 KiB/s, done.
 Resolving deltas: 100% (148/148), completed with 5 local objects.
 From https://github.com/spudgunman/meshing-around
   f1ad470..830ec95  main       -> origin/main
 * [new tag]         v1.6.7     -> v1.6.7
 * [new tag]         v1.6.9     -> v1.6.9
 Updating f1ad470..830ec95
 Fast-forward
 README.md                          |  39 ++++++---
 config.template                    |  12 +++
 install.sh                         |  13 +--
 mesh_bot.py                        |  79 ++++++++++++------
 modules/checklist.py               | 160 +++++++++++++++++++++++++++++++++++++
 modules/globalalert.py             |   2 +-
 modules/locationdata.py            |   4 +-
 modules/qrz.py                     |  53 ++++++++++++
 modules/settings.py                |  20 ++++-
 modules/system.py                  |  14 +++-
 pong_bot.py                        |  10 ++-
 script/send-environment-metrics.py |  53 ++++++++++++
 12 files changed, 412 insertions(+), 47 deletions(-)
 create mode 100644 modules/checklist.py
 create mode 100644 modules/qrz.py
 create mode 100644 script/send-environment-metrics.py
 root@aprsc25:/opt/meshing-around#

 root@aprsc25:/opt/meshing-around# git pull
 Already up to date.
 root@aprsc25:/opt/meshing-around#

Mon API key pour accès aux données de n2yo

 API Key on https://www.n2yo.com/login/edit/ SACGEM-3DJ8A3-FBWW4V-3SX9
 user f8ghe pass tnevniph