Problème de lecture de donénes avec Pyserie (Python)

Sur ce sujet, je dois pour l'instant m'avouer vaincu >:( >:( >:( et c'est pourquoi je me tourne vers vous.

Afin de poursuivre mon apprentissage d'Arduino, je me suis dis qu'il serait bien que j'essaye de communiquer en serie entre un programme en python et mon Arduino Uno.

J'arrive à lire et à envoyer indépendamment des données en python mais je n'arrive pas par contre à combiner les deux : à savoir envoyer un message en python, le lire avec l'arduino et le renvoyer à mon programme.

Parfois cela marche, souvent non... Je pense que le problème est entre le clavier est la chaise et que cela vient d'une information que je n'ai pas bien compris.

Pourriez-vous m'aider à comprendre svp ?

Voici mes codes :

Arduino

String serie_msg = "";

void setup() {
   Serial.begin(9600);
}

void loop() {
  if(Serial.available()) { //Si reception message
    serie_msg = Serial.readString(); //lecture
    delay(500);
    Serial.print(serie_msg);
  }
}

Python

def envoi_msg_et_recep(msg):
    msg_retour =""
    port_serie = Serial('/dev/ttyACM0', 9600)
    #port_serie.open()
    if port_serie.isOpen():
        port_serie.write(bytes(msg, 'UTF-8'))
        while port_serie.inWaiting() == 0:
            sleep(0.5)

        while (port_serie.inWaiting() != 0): 
            msg_retour = msg_retour + port_serie.read().decode("utf-8")
        print("msg retour :" + msg_retour) 



envoi_msg_et_recep("test ")

Le résultat la plupart des temps : Il reste coincé sur la première boucle while...

Merci beaucoup :)

Essaie de lire ceci : commander-un-arduino-par-la-ligne-serie