lua: Vigicrue

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
chatainsim
Messages : 36
Inscription : 25 mars 2015, 17:04

lua: Vigicrue

Messagepar chatainsim » 12 déc. 2017, 00:09

Bonjour,
Je ne sais pas si ça peut intéresser des gens mais j'ai fait un petit script lua pour récupérer les données depuis le site de Vigicrue.
Il permet d'avoir les infos dans les customs sensors :
Image
Il faut récupérer l'id de la station sur le site de https://www.vigicrues.gouv.fr.
Après avoir choisi votre station, dans l'url il y a l'id.

Exemple, pour Grenoble Bastille :
https://www.vigicrues.gouv.fr/niv3-station.php?CdStationHydro=W141001001&CdEntVigiCru=19&GrdSerie=H&ZoomInitial=1&CdStationsSecondaires=

L'id est W141001001

Le script est dispo sur github ici : https://github.com/chatainsim/scripts_d ... icrue2.lua
J'ai aussi quelques autres scripts dispo : https://github.com/chatainsim/scripts_domoticz

Le script est de type lua -> time.
Dernière édition par chatainsim le 13 janv. 2018, 21:38, édité 3 fois.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


lamouette
Messages : 150
Inscription : 07 déc. 2016, 16:10

Re: lua: Vigicrue

Messagepar lamouette » 14 déc. 2017, 11:44

Merci, je viens de l'implémenter sans soucis.

Attention tout de même à ceux qui n'ont pas leur fichier JSON.lua dans /opt/domoticz/scripts/lua/ il faudra modifier le chemin en conséquence.

Certaines stations ne remontent pas non plus le débit, ce qui laisse des erreurs dans les logs.

chatainsim
Messages : 36
Inscription : 25 mars 2015, 17:04

Re: lua: Vigicrue

Messagepar chatainsim » 14 déc. 2017, 11:55

lamouette a écrit :Merci, je viens de l'implémenter sans soucis.

Attention tout de même à ceux qui n'ont pas leur fichier JSON.lua dans /opt/domoticz/scripts/lua/ il faudra modifier le chemin en conséquence.

Certaines stations ne remontent pas non plus le débit, ce qui laisse des erreurs dans les logs.

Ah c'est intéressant comme retour.
As tu une station en tête qui ne remonte pas le débit ?
ça me permettra de faire des tests et d'améliorer le script.

lamouette
Messages : 150
Inscription : 07 déc. 2016, 16:10

Re: lua: Vigicrue

Messagepar lamouette » 14 déc. 2017, 11:58

chatainsim a écrit :As tu une station en tête qui ne remonte pas le débit ?
ça me permettra de faire des tests et d'améliorer le script.



Celle-ci par exemple : H300000201

https://www.vigicrues.gouv.fr/services/ ... tie=simple

Pas très bavarde : {"VersionFlux":"Beta 0.3","Serie":{"CdStationHydro":"H300000201","LbStationHydro":"Poissy","Link":"http:\/\/www.vigicrues.gouv.fr\/services\/station.json?CdStationHydro=H300000201","GrdSerie":"Q","ObssHydro":[]}}

Celle-ci aussi : F712000102

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


chatainsim
Messages : 36
Inscription : 25 mars 2015, 17:04

Re: lua: Vigicrue

Messagepar chatainsim » 14 déc. 2017, 14:34

lamouette a écrit :
chatainsim a écrit :As tu une station en tête qui ne remonte pas le débit ?
ça me permettra de faire des tests et d'améliorer le script.



Celle-ci par exemple : H300000201

https://www.vigicrues.gouv.fr/services/ ... tie=simple

Pas très bavarde : {"VersionFlux":"Beta 0.3","Serie":{"CdStationHydro":"H300000201","LbStationHydro":"Poissy","Link":"http:\/\/www.vigicrues.gouv.fr\/services\/station.json?CdStationHydro=H300000201","GrdSerie":"Q","ObssHydro":[]}}

Celle-ci aussi : F712000102

Merci,
Je viens de mettre à jour le script pour prendre en compte le cas ou Vigicrue ne retourne pas de data.
Si tu veux tester et me faire un retour.

lamouette
Messages : 150
Inscription : 07 déc. 2016, 16:10

Re: lua: Vigicrue

Messagepar lamouette » 14 déc. 2017, 14:55

De mon côté c'est ok ;)

Merci

balajol
Messages : 476
Inscription : 13 nov. 2015, 18:54

Re: lua: Vigicrue

Messagepar balajol » 17 déc. 2017, 20:11

Bonsoir chatainsim,
Merci pour ce partage.
Si quelqu'un a une version adaptée "Windows" je suis preneur.
Après 2 H je jette l'éponge pour le moment , trop de choses à faire ;)
Merci par avance.
Cdt
Bertrand

Code : Tout sélectionner

-- Parameters to change according to you needs
debug=true
 -- Station ID, from one to many
Station = {'E4035710'}
 -- IDX of sensor for height value | STATION_ID='IDX_SENSOR'
 SIDXHeight = {E4035710='1081'}
 -- IDX of sensor for speed value | STATION_ID='IDX_SENSOR'
 SIDXSpeed = {E4035710='1082'}
-- JSON.lua path
json = (loadfile "C:/Program Files (x86)/Domoticz/scripts/lua/JSON.lua")()
 
 -- End of parameters
 
 
 time = os.date("*t")
 -- Function to update sensor
 local function update(idx, value1)
     local cmd = idx..'|0|'..value1
     --print(cmd)
     table.insert (commandArray, { ['UpdateDevice'] = cmd } )
 end
 -- function to get data from url
 local function getdata(urlh,urls)
     local DataHeight = assert(io.popen('C:/curl-7.50.3-win32-mingw/bin/curl.exe "'..urlh..'"'))
     local BlocJsonHeight = DataHeight:read('*all')
     DataHeight:close()
     local JsonHeight = json:decode(BlocJsonHeight)
     local Height = JsonHeight.Serie.ObssHydro
     
     local DataSpeed = assert(io.popen('C:/curl-7.50.3-win32-mingw/bin/curl.exe "'..urls..'"'))
     local BlocJsonSpeed = DataSpeed:read('*all')
     DataSpeed:close()
     local JsonSpeed = json:decode(BlocJsonSpeed)
     local Speed = JsonSpeed.Serie.ObssHydro
     
     return Height, Speed
 end
 commandArray = {}
    if (time.min == 15 or time.min == 30) then
     for k,v in pairs(Station) do
         local IDStation = v
         local IDXHeight = SIDXHeight[v]
         local IDXSpeed = SIDXSpeed[v]
        local urlHeight = 'https://www.vigicrues.gouv.fr/services/observations.json/index.php?CdStationHydro='..IDStation..'&GrdSerie=H&FormatSortie=simple'
         local urlSpeed = 'https://www.vigicrues.gouv.fr/services/observations.json/index.php?CdStationHydro='..IDStation..'&GrdSerie=Q&FormatSortie=simple'
         ResultHeight,ResultSpeed=getdata(urlHeight,urlSpeed)
   
         if (#ResultHeight ~= 0) then
                 if (debug) then print("ResultHeight: "..ResultHeight[#ResultHeight][2]) end
                 update(IDXHeight, ResultHeight[#ResultHeight][2])
         else
                 if (debug) then print('Height level is empty.') end
         end
         if (#ResultSpeed ~= 0) then
                 if (debug) then print("ResultSpeed: "..ResultSpeed[#ResultSpeed][2]) end
                 update(IDXSpeed, ResultSpeed[#ResultSpeed][2])
         else
                 if (debug) then print('Speed is empty.') end
         end
 
 
     end
 end
 
 
 return commandArray



erreurl28.PNG
Erreur
erreurl28.PNG (4.45 Kio) Consulté 1437 fois


Erreur de syntaxe surement Grossière de ma part :(
J'ai modiifé les accès : statio, Json et curl..
Merci pour tout aide éventuelle
cdt
Bertrand
v3.8153 sur PC Windows7 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, Divers SOMFY RTS etc..

chatainsim
Messages : 36
Inscription : 25 mars 2015, 17:04

Re: lua: Vigicrue

Messagepar chatainsim » 17 déc. 2017, 20:54

balajol a écrit :Bonsoir chatainsim,
Merci pour ce partage.
Si quelqu'un a une version adaptée "Windows" je suis preneur.
Après 2 H je jette l'éponge pour le moment , trop de choses à faire ;)
Merci par avance.
Cdt
Bertrand

Code : Tout sélectionner

-- Parameters to change according to you needs
debug=true
 -- Station ID, from one to many
Station = {'E4035710'}
 -- IDX of sensor for height value | STATION_ID='IDX_SENSOR'
 SIDXHeight = {E4035710='1081'}
 -- IDX of sensor for speed value | STATION_ID='IDX_SENSOR'
 SIDXSpeed = {E4035710='1082'}
-- JSON.lua path
json = (loadfile "C:/Program Files (x86)/Domoticz/scripts/lua/JSON.lua")()
 
 -- End of parameters
 
 
 time = os.date("*t")
 -- Function to update sensor
 local function update(idx, value1)
     local cmd = idx..'|0|'..value1
     --print(cmd)
     table.insert (commandArray, { ['UpdateDevice'] = cmd } )
 end
 -- function to get data from url
 local function getdata(urlh,urls)
     local DataHeight = assert(io.popen('C:/curl-7.50.3-win32-mingw/bin/curl.exe "'..urlh..'"'))
     local BlocJsonHeight = DataHeight:read('*all')
     DataHeight:close()
     local JsonHeight = json:decode(BlocJsonHeight)
     local Height = JsonHeight.Serie.ObssHydro
     
     local DataSpeed = assert(io.popen('C:/curl-7.50.3-win32-mingw/bin/curl.exe "'..urls..'"'))
     local BlocJsonSpeed = DataSpeed:read('*all')
     DataSpeed:close()
     local JsonSpeed = json:decode(BlocJsonSpeed)
     local Speed = JsonSpeed.Serie.ObssHydro
     
     return Height, Speed
 end
 commandArray = {}
    if (time.min == 15 or time.min == 30) then
     for k,v in pairs(Station) do
         local IDStation = v
         local IDXHeight = SIDXHeight[v]
         local IDXSpeed = SIDXSpeed[v]
        local urlHeight = 'https://www.vigicrues.gouv.fr/services/observations.json/index.php?CdStationHydro='..IDStation..'&GrdSerie=H&FormatSortie=simple'
         local urlSpeed = 'https://www.vigicrues.gouv.fr/services/observations.json/index.php?CdStationHydro='..IDStation..'&GrdSerie=Q&FormatSortie=simple'
         ResultHeight,ResultSpeed=getdata(urlHeight,urlSpeed)
   
         if (#ResultHeight ~= 0) then
                 if (debug) then print("ResultHeight: "..ResultHeight[#ResultHeight][2]) end
                 update(IDXHeight, ResultHeight[#ResultHeight][2])
         else
                 if (debug) then print('Height level is empty.') end
         end
         if (#ResultSpeed ~= 0) then
                 if (debug) then print("ResultSpeed: "..ResultSpeed[#ResultSpeed][2]) end
                 update(IDXSpeed, ResultSpeed[#ResultSpeed][2])
         else
                 if (debug) then print('Speed is empty.') end
         end
 
 
     end
 end
 
 
 return commandArray



erreurl28.PNG


Erreur de syntaxe surement Grossière de ma part :(
J'ai modiifé les accès : statio, Json et curl..
Merci pour tout aide éventuelle
cdt
Bertrand

Es tu sur que ton id station est bonne ?
Je regarde ça plus tard dans la soirée mais vérifie déjà ça. Essaye celle là : E403571001

balajol
Messages : 476
Inscription : 13 nov. 2015, 18:54

Re: lua: Vigicrue

Messagepar balajol » 17 déc. 2017, 21:14

Re,
Merci de ta réponse en effet cela semble fonctionner avec ton Id de station, je fait d'autres essais avec des stations proches et je reviens rendre compte
Merci encore
Cdt
Bertrand
v3.8153 sur PC Windows7 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, Divers SOMFY RTS etc..

chatainsim
Messages : 36
Inscription : 25 mars 2015, 17:04

Re: lua: Vigicrue

Messagepar chatainsim » 17 déc. 2017, 21:54

balajol a écrit :Re,
Merci de ta réponse en effet cela semble fonctionner avec ton Id de station, je fait d'autres essais avec des stations proches et je reviens rendre compte
Merci encore
Cdt
Bertrand

Je viens de modifier mon post pour préciser ou trouver l'id.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités