diff --git a/CHANGELOG.md b/CHANGELOG.md
index 172188b36efa7c479ff314043832a43e1f36e6f3..c717ce1ade288069b51ddb9909d79e4258c9f118 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # CHANGELOG:
 
+## 17 aout 2019
+**Ajouts:**
+- meteo : on peut demander des prévisions dans n heures
+
+---
+
 ## 16 aout 2019
 **Ajout:**
 - nouveau système de TTS plus rapide par une simple requete http vers google translate 
diff --git a/Jarvis.py b/Jarvis.py
index d7474e6b77cb0be644a3de0da251175edc7361a9..cac044d85d9226002187b4e30a6a1565fe1851c9 100755
--- a/Jarvis.py
+++ b/Jarvis.py
@@ -22,23 +22,6 @@ def tts_custom(text, file, lang='fr-CA'):  # plus rapide que gtts mais meme resu
             f.write(r.content)
 
 
-def var_name(var):
-    """return the name of the variable var"""
-    for name, value in globals().items():
-        if value is var and name != "i":
-            return name
-    return '?????'
-
-
-def printv(var):
-    '''
-    return the name of the variable var associated with the value of the var itself
-    exemple:
-        toto_is_toto = 'tata';printv(toto) returns the string : 'toto is toto : tata'
-    '''
-    return str(var_name(var).replace("_", " ") + ' : ' + var)
-
-
 def get_speech(message="entrée"):
     if voix:
         print('[-] %s (voix) : ' % message)
@@ -49,12 +32,14 @@ def get_speech(message="entrée"):
                     r.adjust_for_ambient_noise(source, duration=2)
                     audio = r.listen(source, timeout=1)
                     print('[speech_detected]')
+                    os.system('mpg321 sounds/compris.mp3 2>/dev/null')
                 entre = r.recognize_google(audio, language="fr")
                 understand = True
                 print(entre)
                 os.system('mpg321 sounds/compris.mp3 2>/dev/null')
             except:
                 print("[!] impossible de comprendre votre charabia [!]")
+                os.system('mpg321 sounds/pascompris.mp3 2>/dev/null')
                 entre = ''
     else:
         entre = input('[-] %s (clavier) :' % message)
@@ -215,19 +200,31 @@ def location(entre):
 
 def meteo(entre):
     '''donne la meteo de l'endroit demandé'''
+    dans_n_heures = None
+    try:
+        if all(word in entre for word in [' dans ', ' heure']):
+            dans_n_heures = int(entre.split(' dans ')[-1].split(' heure')[0])
+        elif all(word in entre for word in [' dans ', 'h']):
+            dans_n_heures = int(entre.split(' dans ')[-1].split('h')[0])
+    except:
+        pass
     if "meteo de" in entre:
-        entre1 = entre.replace("meteo de ", "")
-        if "donne moi la" in entre:
-            entre1 = entre.replace("donne moi la ", "")
-        if "donne la" in entre:
-            entre1 = entre.replace("donne la ", "")
+        entre1 = entre.split('meteo de ')[-1].split(' dans')[0]
         entre1 = entre1.split(" ")
         villes = entre1[0]
         villes = villes + entre1[1] if len(entre1) == 3 else villes
-        pay = entre1[1] if len(entre1) == 2 else entre1[2]
-        parle(usefull.meteo_de(villes, pay.upper()[:2], all_data=False))
+        pays = entre1[-1] if len(entre1) > 1 else ''
+        parle('je vais donner la météo {} de {} {}.'.format('dans %dh' % dans_n_heures if dans_n_heures is not None else 'actuelle', villes, pays), False)
+        try:
+            parle(usefull.meteo_de(villes, pays.upper()[:2], all_data=False, dans_n_heures=dans_n_heures), False)
+        except Exception as e:
+            parle(random.choice(truc_cassé) + str(e) + 'Vous avez donné le bon pays ?')
     elif "meteo" in entre:
-        parle(usefull.meteo_de(all_data=False))
+        parle('je vais donner la météo {} de {} {}.'.format('dans %dh' % dans_n_heures if dans_n_heures is not None else 'actuelle', ville_actuelle, pays_actuel), False)
+        try:
+            parle(usefull.meteo_de(ville_actuelle, pays_actuel.upper()[:2], all_data=False, dans_n_heures=dans_n_heures), False)
+        except Exception as e:
+            parle(random.choice(truc_cassé) + str(e))
 
 
 def dire_un_truc_en_mode_random(verbosity):
@@ -261,7 +258,6 @@ def tests(entre):
 
     # meteo
     if "meteo" in entre:
-        parle('Une petite minute.')
         meteo(entre)
 
     # verrouillage jarvis
@@ -283,7 +279,7 @@ def tests(entre):
     # répond à merci si on lui a demandé quelquechose avant
     if ("merci" in entre or "Merci" in entre) and comprispreced == 1 and ("et vous" not in entre and "et toi" not in entre):
         merci = 1
-        parle(random.choice(("A votre service.", "De rien", "Il n'y a pas de quoi !", 't\'inquiètes, je suis payé pour ça')))
+        parle(random.choice(("A votre service.", "De rien", "Il n'y a pas de quoi !", 't\'inquiètes, je suis paysé pour ça')))
 
     # fait une recherche sur wikipédia
     if "cherche" in entre and "sur wiki" in entre:
diff --git a/__pycache__/myimports.cpython-37.pyc b/__pycache__/myimports.cpython-37.pyc
index 543d09bb9213e4a6cb518d49c1be418705aa97c1..b50a74624a63b76c5cbae7017616d1340c78054d 100644
Binary files a/__pycache__/myimports.cpython-37.pyc and b/__pycache__/myimports.cpython-37.pyc differ
diff --git a/database.txt b/database.txt
index e084b91d805f041f176a7a8fbd59d49291e2b148..08206109b24072c158644505a4f58b5c8e95abab 100644
--- a/database.txt
+++ b/database.txt
@@ -30,4 +30,15 @@ Bonjour !
 |pays : RE, ville : Petite-Ile, lattitude : -21.35, longitude : 55.57, température : 22°, température minimum : 17 °Celsius, température max : 25 °Celsius, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 mètres par secondes, direction du vent : 130°, pourcentage de nuages : 0%, description : clear sky.
 |pays : RE, ville : Petite-Ile, lattitude : -21.35, longitude : 55.57, température : 22°, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 m/s, pourcentage de nuages : 0%, description : clear sky.
 |pays : RE, ville : Petite-Ile, température : 22°, humidité : 57%, pression : 1020hPa, vitesse du vent : 8.7 m/s, pourcentage de nuages : 0%, description : clear sky.
+|je vais donner la météo de meteode saint-leu
+|Houston, on a un problème !
+|je vais donner la météo de saint-leu .
+|Houston, on a un problème !Vous avez donné le bon pays ?
+|je vais donner la météo de saint-leu reunion.
+|je vais donner la météo de saint-leu heures.
+|Ousp j'ai glissé chef !Vous avez donné le bon pays ?
+|je vais donner la météo 24 de saint-leu reunion.
+|je vais donner la météo actuelle de saint-leu reunion.
+|Ousp j'ai glissé chef !name 'pays' is not defined
+|Houston, on a un problème !'int' object is not callable
 |
\ No newline at end of file
diff --git a/myimports.py b/myimports.py
index 78781802eaa1a82f5fec77ac25b069db4c734849..3f700f622ab4279ac9cb5de7f0b9623d4b7a5e53 100644
--- a/myimports.py
+++ b/myimports.py
@@ -55,6 +55,8 @@ pygame.mixer.init(frequency=24000)
 # engine.setProperty('voice', voice.id)
 url = "https://translate.google.com/translate_tts"
 topics = []
+ville_actuelle = 'petite-ile'
+pays_actuel = 'reunion'
 r = sr.Recognizer()
 r.dynamic_energy_threshold = True
 r.pause_threshold = 0.5
diff --git a/saved_voice/32.mp3 b/saved_voice/32.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..f554bc96c4e9d687df9c50ae50ff0b2c1b6557c3
Binary files /dev/null and b/saved_voice/32.mp3 differ
diff --git a/saved_voice/33.mp3 b/saved_voice/33.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..0d276732957d39c79e368400d13a44e24a6d6dec
Binary files /dev/null and b/saved_voice/33.mp3 differ
diff --git a/saved_voice/34.mp3 b/saved_voice/34.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..2ba59679b689a386505fa5ca4a43a13ec33de6b2
Binary files /dev/null and b/saved_voice/34.mp3 differ
diff --git a/saved_voice/35.mp3 b/saved_voice/35.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..df65a346ae04f6f80562abfe1b1f8f07acb74133
Binary files /dev/null and b/saved_voice/35.mp3 differ
diff --git a/saved_voice/36.mp3 b/saved_voice/36.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c4a163674cf83e1363293b605010e16ba87a4635
Binary files /dev/null and b/saved_voice/36.mp3 differ
diff --git a/saved_voice/37.mp3 b/saved_voice/37.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..923dbf61f1ce1519aed279cd3f72aeaa56a6d752
Binary files /dev/null and b/saved_voice/37.mp3 differ
diff --git a/saved_voice/38.mp3 b/saved_voice/38.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..3a277018d2bad027af4411770e93b46776b813cc
Binary files /dev/null and b/saved_voice/38.mp3 differ
diff --git a/saved_voice/39.mp3 b/saved_voice/39.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..1ac0394658b50fcd1d0f98ec05f3f910e774dd62
Binary files /dev/null and b/saved_voice/39.mp3 differ
diff --git a/saved_voice/40.mp3 b/saved_voice/40.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c7b549963734525ec28acacc64377ef85bc1fd75
Binary files /dev/null and b/saved_voice/40.mp3 differ
diff --git a/saved_voice/41.mp3 b/saved_voice/41.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..51e6cefa3b7314fa3af735ef5eca8670ea1acbc3
Binary files /dev/null and b/saved_voice/41.mp3 differ
diff --git a/saved_voice/42.mp3 b/saved_voice/42.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..d39408549373ab9cd81bcd2fdc0bdb8b4460587d
Binary files /dev/null and b/saved_voice/42.mp3 differ
diff --git a/saved_voice/43.mp3 b/saved_voice/43.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c5a3f59bd7eca06aed39c85f064b172b7b31f0a0
Binary files /dev/null and b/saved_voice/43.mp3 differ
diff --git a/usefull/__pycache__/meteo.cpython-37.pyc b/usefull/__pycache__/meteo.cpython-37.pyc
index 8f2ca460dd58c22c31b22d47a98cdab530b15c25..7a995488e503f212f0b51928b09cdd1f4328d0f2 100644
Binary files a/usefull/__pycache__/meteo.cpython-37.pyc and b/usefull/__pycache__/meteo.cpython-37.pyc differ
diff --git a/usefull/meteo.py b/usefull/meteo.py
index fb95561980b85bcfb9438e5512f5d8cd9cba9b6b..fbe9808de108c492b6fcf520c8fa56f5782075b8 100755
--- a/usefull/meteo.py
+++ b/usefull/meteo.py
@@ -20,12 +20,14 @@ def printv(var):
     return str(var_name(var).replace("_", " ") + ' : ' + var)
 
 
-def meteo_de(villes="petite-ile", pay="RE", all_data=True):
+def meteo_de(villes="petite-ile", pay="RE", all_data=True, dans_n_heures=None):
     global compris, ville, pays, lattitude, longitude, température,\
         température_minimum, température_max, humidité, pression,\
         vitesse_du_vent, direction_du_vent, nuages, \
         description, volume_pluie_des_3_dernière_heures, \
         volume_neige_des_3_dernière_heures
+    if dans_n_heures is not None:
+        return forecast(villes, pay, all_data, dans_n_heures=dans_n_heures)
 
     pay = pay.upper()[:2]
     api = "c23d0a0ffe081307fb6fbba06125aef3"
@@ -80,9 +82,9 @@ def meteo_de(villes="petite-ile", pay="RE", all_data=True):
 
     result = ", ".join([printv(i) for i in liste])
     if a1:
-        result += printv(volume_pluie_des_3_dernière_heures)
+        result += ' ' + printv(volume_pluie_des_3_dernière_heures)
     if a2:
-        result += printv(volume_neige_des_3_dernière_heures)
+        result += ' ' + printv(volume_neige_des_3_dernière_heures)
     return result + '.'
 
 
@@ -150,15 +152,15 @@ def forecast(villes="petite-ile", pay="RE", all_data=True, dans_n_heures=None):
         if dans_n_heures // 3 == i:
             result_dans_n_heure = ", ".join([printv(i) for i in liste])
         if a1:
-            result += printv(volume_pluie_des_3_dernière_heures)
+            result += ' ' + printv(volume_pluie_des_3_dernière_heures)
             if dans_n_heures // 3 == i:
-                result_dans_n_heure += printv(volume_pluie_des_3_dernière_heures)
+                result_dans_n_heure += ' ' + printv(volume_pluie_des_3_dernière_heures)
         if a2:
-            result += printv(volume_neige_des_3_dernière_heures)
+            result += ' ' + printv(volume_neige_des_3_dernière_heures)
             if dans_n_heures // 3 == i:
-                result_dans_n_heure += printv(volume_neige_des_3_dernière_heures)
+                result_dans_n_heure += ' ' + printv(volume_neige_des_3_dernière_heures)
         result += '\n\n'
-    if dans_n_heures != None:
+    if dans_n_heures is not None:
         return result_dans_n_heure
     return result