[LUA] Horaires de marées
Re: [LUA] Horaires de marées
A minima, son DomoticZ devrait tourner un peu mieux 
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: [LUA] Horaires de marées
Purée je m'en douté.... j'avais pu la date exact ou j'ai passé la maj. Bon ça m'a permis de remettre tout à jour
Re: [LUA] Horaires de marées
C'est pareil chez les copains : https://community.jeedom.com/t/plugin-v ... 8h/72564/2
Même source de données !
Le serveur semble filtrer les accès.
Un appel CURL n'est plus supporté. Il va falloir ruser
Même source de données !
Le serveur semble filtrer les accès.
Un appel CURL n'est plus supporté. Il va falloir ruser
Re: [LUA] Horaires de marées
Nouvelle version en DzVents !
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
}
Re: [LUA] Horaires de marées
Bonjour impeccable merci.
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: [LUA] Horaires de marées
@Neutrino merci il me manquait cette info dans ma domotique et en plus en dzvents 
Re: [LUA] Horaires de marées
Bonjour
Voici ma version adaptée @Neutrino
et l'erreur en retour :
Si quelqu'un pouvait me venir en aide...
Merci d'avance
Voici ma version adaptée @Neutrino
Code : Tout sélectionner
local scriptName = 'maree'
local scriptVersion = '2.0'
-- Dummy à créer :
local textDeviceIdx = 54
local port = 8
return {
active = true,
logging = {
level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting
marker = scriptName..' '..scriptVersion
},
on = {
timer = {'every minute'},
-- 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
}Code : Tout sélectionner
2021-12-06 12:13:00.483 Status: dzVents: Info: maree 2.0: ------ Start internal script: maree_coef:, trigger: every minute
2021-12-06 12:13:00.483 Status: dzVents: Debug: maree 2.0: Requesting data from maree.fr
2021-12-06 12:13:00.483 Status: dzVents: Debug: maree 2.0: OpenURL: url = http://horloge.maree.frbateaux.net/ws8.js
2021-12-06 12:13:00.484 Status: dzVents: Debug: maree 2.0: OpenURL: method = GET
2021-12-06 12:13:00.484 Status: dzVents: Debug: maree 2.0: OpenURL: post data = nil
2021-12-06 12:13:00.484 Status: dzVents: Debug: maree 2.0: OpenURL: headers = nil
2021-12-06 12:13:00.484 Status: dzVents: Debug: maree 2.0: OpenURL: callback = maree
2021-12-06 12:13:00.484 Status: dzVents: Info: maree 2.0: ------ Finished maree_coef
2021-12-06 12:13:07.757 Status: dzVents: Info: Handling httpResponse-events for: "maree
2021-12-06 12:13:07.757 Status: dzVents: Info: maree 2.0: ------ Start internal script: maree_coef: HTTPResponse: "maree"
2021-12-06 12:13:07.758 Status: dzVents: Debug: maree 2.0: maree data has been received
2021-12-06 12:13:07.758 Status: dzVents: Debug: maree 2.0: data : //Horloge
2021-12-06 12:13:07.758 document.getElementById( "Aiguille" ).title="Cliquez pour plus de détails sur la marée du jour";
2021-12-06 12:13:07.758 <b>PM 13h00</b><div title=\"Cliquez pour afficher le marégramme et les prédictions des marées sur 7 jours\">+ d'info</div>";
2021-12-06 12:13:07.758 Status: dzVents: Info: maree 2.0: ------ Finished maree_coef
2021-12-06 12:13:07.758 Error: dzVents: Error: (2.4.28) maree 2.0: An error occurred when calling event handler maree_coef
2021-12-06 12:13:07.758 Error: dzVents: Error: (2.4.28) maree 2.0: ...omoticz/scripts/dzVents/generated_scripts/maree_coef.lua:47: bad argument #1 to 'ipairs' (table expected, got nil)Merci d'avance
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB Version: Pro XL1/1035
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.11.012 + Version : 031d
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB Version: Pro XL1/1035
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.11.012 + Version : 031d
Re: [LUA] Horaires de marées
Version de DzVents trop ancienne, il faut la 3.1.0 minimum.
-
Lou Castelou
- Messages : 36
- Inscription : 24 avr. 2017, 15:58
Re: [LUA] Horaires de marées
Super.
Cela fonctionne impeccablement.
Merci et bonne journée.
Cela fonctionne impeccablement.
Merci et bonne journée.
-
pierrotori
- Messages : 821
- Inscription : 29 févr. 2016, 12:11
Re: [LUA] Horaires de marées
bonjour
avez vous aussi depuis ce matin cette erreur Données des marées non disponible ?
erreur:
coeff : ML="51" // WARNING : Merci d'indiquer le UserAgent réel qui fait la requête, par exemple le nom script ou le plugin utilisé (ainsi qu'un lien vers les sources le cas échéant, ex. github).
Alors que quand je l'execute dans edge ca fonctionne ?!?
Pierrotori
avez vous aussi depuis ce matin cette erreur Données des marées non disponible ?
erreur:
coeff : ML="51" // WARNING : Merci d'indiquer le UserAgent réel qui fait la requête, par exemple le nom script ou le plugin utilisé (ainsi qu'un lien vers les sources le cas échéant, ex. github).
Alors que quand je l'execute dans edge ca fonctionne ?!?
Pierrotori