[Python] Récupérer Alertes Météo France

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

[Python] Récupérer Alertes Météo France

Message par patrice »

J'ai crée un script python dont le rôle est de récupérer les états de vigilance de Météo France (Alerte orange,rouge,vert)

Ce script utilise des widget Alerte dont la création est expliquée ici http://easydomoticz.com/comment-creer-un-widget-alerte/
Il en faut au moins 2 ,un pour l'état des crues et l'autre pour l'etat global d'alerte et le risque associé (pluie,inondation,neige)
On peut également en utiliser 3 différents (1pour crues,1pour la couleur,1 pour le texte (neigne,pluie)
Le script devrait être assez documenté pour une bonne compréhension

Ce script nécessite le module requests : sudo apt-get install python-setuptools puis sudo pip requests

Une fois téléchargé puis recopié sous le nom que vous voulez en .py , faites un chmod 777 sur ce fichier
On lance ce script par ./le_nom_choisi.py NumeroDepartement
./recupvigi.py 75 , récupère la vigilance du département 75

Beaucoup de choses sont paramétrables dans la partie haute du script (couleurs,Idx des widget,). On peut aussi fixer un département en supprimant qq lignes et en indiquant Departement=75, ainsi on a plus besoin de donner le numéro en paramètre du script
Les alertes meteo france sont mise à jour 2 fois par jour à 6H et a 16H, placez ce script dans le crontab à 6H10 et 16H10 par ex.

Le script est dans la pièce jointe afin d'éviter les pertes de formatage du texte liées à l'affichage dans le forum.
Pièces jointes
recupvigi.py
(4.12 Kio) Téléchargé 944 fois
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Alderaan
Messages : 1
Inscription : 30 nov. 2014, 19:10

Re: Récupérer Alertes Météo France

Message par Alderaan »

Hello,

Merci pour le script :)
J'ai voulu le tester avec 3 alertes, mais j'ai l'erreur suivante:

Code : Tout sélectionner

  File "./meteofrance.py", line 117
    message_risk=risk
                    ^
IndentationError: unindent does not match any outer indentation level
Je ne comprend pas trop ou est l'erreur, on dirait que la valeur de risk n'est pas retournée.

Merci pour ton aide.
sarakha63
Messages : 6
Inscription : 30 nov. 2014, 20:34

Re: Récupérer Alertes Météo France

Message par sarakha63 »

Bonjour à tous

L'erreur c'est juste un problème d'indentation sur toute la fin de fichier.

Code : Tout sélectionner

    if risk=="RAS":
        couleur_risk=dict_couleur_widget_texte[risk]
        message_risk=risk
    else:
        message_risk=risk
        couleur_risk='4'
     
     # composons l'url
     #  si le message est RAS la coueleur est gris
     # on recupere un message texte neige pluie ... dans message_risk , la couelur est celle de couleur_gen
    domoticz_idx=str(periph_idx['risk'])
    url_domoticz='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+domoticz_idx+'&nvalue='+couleur_gen+'&svalue='+risk
    r=requests.get(url_domoticz)
    if  r.status_code != 200:

        print "Erreur API"


  #  print crues,couleur_vigilance,risk,message_risk
  #  print couleur_crues,couleur_gen,couleur_risk

else:
    print "Erreur API"
Pas mal ce forum, j'ai pas mal de script à partager notamment l'interaction avec le harmony hub, et la balance withings

Cordialement
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Récupérer Alertes Météo France

Message par deennoo »

Bonjour,

j'essaye ton script et j ai cette erreur

./recupvigi.py
File "./recupvigi.py", line 44
dict_couleur_widget_texte={'RAS' : 0,
^
SyntaxError: invalid syntax

Que faire ? (je pars du script downloadable)
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Récupérer Alertes Météo France

Message par patrice »

Bonsoir
Chez moi il fonctionne comme il se doit,
Je t'ai reposté le fichier dans la pièce jointe au texte du forum, j'y ai ajouté le support de utf8 histoire de faire une modif quelconque .
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
atlantis007
Messages : 65
Inscription : 11 janv. 2015, 22:31
Localisation : biarritz (64)

Re: Récupérer Alertes Météo France

Message par atlantis007 »

moi j utilise se script que j ai récupéré sur le site de domoticz il marche très bien il faut mettre le bon IDX et changer le département
moi c est le 64 est c est tout. :)

------------------------------------------------------------------------------------------------------------------------------------------------

commandArray = {}

-- Time to run?

time = os.date("*t")

if ((time.hour == 7 or time.hour == 13 or time.hour == 19) and time.min == 00) then

TabColor = {['gris']="0",['vert']="1", ['jaune']="2", ['orange']="3", ['rouge']="4"}

print('----------------------------')
print('-- RECUPERATION VIGILANCE --')
print('----------------------------')


local handle = io.popen('curl "http://api.domogeek.fr/vigilance/64/color"')
local color = handle:read("*a")
handle:close()

local handle = io.popen('curl "http://api.domogeek.fr/vigilance/64/risk"')
local risk = handle:read("*a")
handle:close()

print ('Color: '..color..' - Risk: '..risk)

commandArray['UpdateDevice'] = 'IDX|'..TabColor[color]..'|'..risk

end


return commandArray


-------------------------------------------------------------------------------------------------------------------------------------------
hobbe
Messages : 111
Inscription : 15 déc. 2014, 15:33

Re: Récupérer Alertes Météo France

Message par hobbe »

Je crois que l'idée du topic était d'avoir une version Python.
Peut-être faut-il l'ajouter au titre ?

Sinon, ça ressemble beaucoup à mon script décrit dans Vigilance météo.
L'idée du tableau TabColor est bonne, je vais la reprendre ;)
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Récupérer Alertes Météo France

Message par deennoo »

salut,

cela ne marche pas chez moi.

quelque n est super claire :

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de meteofrance
# on passe le numero du departemeznt en appelant le script
# sinon supprimer ces lignes et decommenter Departement=
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

quelles sont les lignes a enlever ?

if len(sys.argv) ==1:
print "Donner un departement"
sys.exit(0)

else:
Departement =sys.argv[1]


????

tu pouvais eclairer ma lanterne ce serait sympa !
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Récupérer Alertes Météo France

Message par deennoo »

Bon J'ai reussi enfin !

Il manque deux trois basic quand meme :

1 - Installer Python :
- sudo apt-get install python-dev

2 - Installer PIP (comme y a deux python et qu'on ne sait pas lequel est utilisé on installe PIP pour les deux :
- sudo apt-get install python3-pip
- sudo apt-get install python-pip

3 on installe requests =
- sudo pip install requests


Ensuite pour le crontab :

crontab -e

Puis :
10 6 * * * ./domoticz/scripts/recupvigi.py 33 (/domoticz/scripts/ = emplacement ou est le script et 33 c'est votre departement ok ?)
10 16 * * * ./domoticz/scripts/recupvigi.py 33 (/domoticz/scripts/ = emplacement ou est le script et 33 c'est votre departement ok ?)

Laborieux mon histoire !!

le script LUA vigilance meteo ne fonctionnait pas non plus chez moi...et je ne sais pas pourquoi.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
brakc
Messages : 63
Inscription : 08 mars 2015, 21:37

Re: Récupérer Alertes Météo France

Message par brakc »

sarakha63 a écrit :Bonjour à tous

...

Pas mal ce forum, j'ai pas mal de script à partager notamment l'interaction avec le harmony hub, et la balance withings

Cordialement
Slt, je serais preneur de ton script withings stp ;-)
Répondre