Cellular.py olympe example script fails

Bonjour,

Je cherche à connecter un drone anafi AI en 4G via olympe et le skyctrl. En suivant l’exemple présent dans le git d’olympe cellular.py (fonction test_cellular_explicite), j’obtiens l’erreur “ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol”. Quelqu’un a-t-il déjà eu ce type de problème ? Est-ce un problème de version d’une librairie dans pip ?

Test of cellular explicite pairing
- SkyController connected
- Drone connected
    cellular link status: "olympe.enums.<property object at 0x73e94d2bede0>.LinkStatus.ready"
- Cellular pairing of the SkyController and the Drone
- Connect cellular using the new user APC token
- Waiting for cellular link to be running
    cellular link status: "olympe.enums.<property object at 0x73e94d2bede0>.LinkStatus.running"
    cellular user_apc_token: [MY NEW APC TOKEN]
2025-08-29 10:45:30,692 [ERROR] 	olympe.cellular - step - Unhandled coroutine exception
Traceback (most recent call last):
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 132, in step
    result = self._coro.send(None)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/networking.py", line 1063, in _process_data
    data = await self._process_tls_data()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/networking.py", line 1029, in _process_tls_data
    data = self._ssl_object.read()
  File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/ssl.py", line 917, in read
    v = self._sslobj.read(len)
ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:2578)
2025-08-29 10:45:30,692 [ERROR] 	olympe.cellular - step -   File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/threading.py", line 973, in _bootstrap
    self._bootstrap_inner()
  File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/__init__.py", line 520, in run
    self._run_task_list(self.async_pomp_task)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/__init__.py", line 458, in _run_task_list
    ret = f(*args, **kwds)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 199, in _wakeup
    self.step()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 157, in step
    self._loop.logger.error("".join(traceback.format_stack()))

2025-08-29 10:45:30,693 [ERROR] 	olympe.cellular - step - Unhandled coroutine exception
Traceback (most recent call last):
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 132, in step
    result = self._coro.send(None)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/networking.py", line 1063, in _process_data
    data = await self._process_tls_data()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/networking.py", line 1029, in _process_tls_data
    data = self._ssl_object.read()
  File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/ssl.py", line 917, in read
    v = self._sslobj.read(len)
ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:2578)
2025-08-29 10:45:30,693 [ERROR] 	olympe.cellular - step -   File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/threading.py", line 973, in _bootstrap
    self._bootstrap_inner()
  File "/home/blabla/.pyenv/versions/3.10.16/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/__init__.py", line 520, in run
    self._run_task_list(self.async_pomp_task)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/__init__.py", line 458, in _run_task_list
    ret = f(*args, **kwds)
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 199, in _wakeup
    self.step()
  File "/home/blabla/olympe_samples/.venv/lib/python3.10/site-packages/olympe/concurrent/_task.py", line 157, in step
    self._loop.logger.error("".join(traceback.format_stack()))

2025-08-29 10:45:30,755 [ERROR] 	ulog - mux - mux_channel_ip_disconnected err=2(No such file or directory)

Bonjour @Remi ,

A première vue ce n’est pas un problème qui a été remonté.

  • Avez-vous modifié ou ajouté des certificats TLS/SSL sur la machine ?
  • Avez-vous testé sur une autre machine ou un autre environnement pour voir si le problème se reproduit ?

Bien cordialement,
Hugo

Bonjour,

Je viens d"essayer sur une install neuve en ubuntu 24.04 avec python 3.12.3, sans pare-feu ou proxy qui pourrait gêner la communication.

J’ai exactement le même message.

Est-ce la version ubuntu/python qui ne serait pas compatible ? Une version de librairie python ?

“pip3 list” me retourne les versions suivantes des libs:

  • requests: 2.32.5
  • urllib3: 2.5.0
  • parrot-olympe: 7.7.5

Cordialement,
Rémi

Bonjour,

Olympe et ses exemples (y compris cellular.py) ont été principalement testés et validés sur Ubuntu 22.04. Certaines erreurs SSL ou comportements inattendus peuvent donc apparaître sur d’autres versions d’Ubuntu (ou avec certaines versions de Python/pip) en raison de différences dans OpenSSL ou les librairies système.

Nous allons investiguer ce problème sur Ubuntu 24.04 afin d’identifier la cause et proposer une solution adaptée.

Bien cordialement,
Hugo