[LUA] Horaires de marées
Publié : 18 avr. 2016, 18:16
Bonjour,
Je mets à disposition de la communauté ce petit script sans prétention.
Il permet d'afficher dans un capteur text le coefficient de marées ainsi que les horaires de pleine mer et basse mer.
Pour trouver le numéro de votre port favoris, il faut aller sur maree.info, taper le nom du port (ou de la ville) et cliquer dessus.
L'URL de la page ouverte sera de type : http://maree.info/122
Vous avez deviné, 122 est le numéro à mettre après "port ="
Je mets à disposition de la communauté ce petit script sans prétention.
Il permet d'afficher dans un capteur text le coefficient de marées ainsi que les horaires de pleine mer et basse mer.
Code : Tout sélectionner
local scriptName = 'maree'
local scriptVersion = '2.0'
-- Dummy à créer :
local textDeviceIdx = 133
local port = 122
return {
active = false,
logging = {
level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting
marker = scriptName..' '..scriptVersion
},
on = {
timer = {'every 6 hours'},
httpResponses = {
scriptName,
},
},
execute = function(domoticz, item)
if item.isTimer then
local url = "http://horloge.maree.frbateaux.net/ws"..port..".js"
domoticz.log('Requesting data from maree.fr', domoticz.LOG_DEBUG)
domoticz.openURL({url = url, method = 'GET', callback = scriptName}).afterSec(7)
end
if not item.isHTTPResponse then return end
local response = item
if (not response.ok) or (response.trigger ~= scriptName) then
domoticz.log('Last http response was not what expected. Trigger: '..response.trigger, domoticz.LOG_ERROR)
domoticz.log(response.data, domoticz.LOG_ERROR)
return
end
if response.trigger == scriptName then
local horaires = ""
local coeff = ""
domoticz.log('maree data has been received', domoticz.LOG_DEBUG)
local contents = response.data
--domoticz.log('data : '..contents, domoticz.LOG_DEBUG)
for _,v in ipairs(response.lines) do
--domoticz.log(v)
if (string.find(tostring(v),"Coef")~= nil ) then
domoticz.log ("coeff : "..v:sub(46):gsub(";",""))
coeff = v:sub(46):gsub(";","")
end
if (string.find(tostring(v),"marégramme")~= nil ) then
domoticz.log ("horaires : "..v:sub(48,v:find("<div")-1):gsub("<b>",""):gsub("</b>",""):gsub("<br>"," "))
horaires = v:sub(48,v:find("<div")-1):gsub("<b>",""):gsub("</b>",""):gsub("<br>"," ")
end
end
domoticz.devices(textDeviceIdx).updateText('Coeff '..coeff.." "..horaires)
end
end
}
Pour trouver le numéro de votre port favoris, il faut aller sur maree.info, taper le nom du port (ou de la ville) et cliquer dessus.
L'URL de la page ouverte sera de type : http://maree.info/122
Vous avez deviné, 122 est le numéro à mettre après "port ="