Is there a way to parse parameters to http://www.onweeractueel.nl/domoticz_bo.json ?

I wrote a script in dzvents for this but sometimes the json result is too large (which returns "lua script execution exceeded maximum number of lines")

What would be great, if possible, is to send a parameter with max/min LAT and LON so that the number of results gets lower.

For those interested in my dzvents version:

Code: Select all

```
return {
on = {
timer = { 'every 15 minutes' },
httpResponses = { 'blitz' } -- matches callback string below
},
data = {
last = { initial = 0 }
},
execute = function(domoticz, triggerItem)
local lightning = domoticz.devices('Bliksemteller')
local preLight = tonumber(lightning.rawData[1])
distance = function(lat1, lng1, lat2, lng2)
radius = 6371
dLat = (lat2 - lat1) * math.pi / 180
dLng = (lng2 - lng1) * math.pi / 180
lat1 = lat1 * math.pi / 180
lat2 = lat2 * math.pi / 180
val = math.sin(dLat / 2) * math.sin(dLat / 2) + math.sin(dLng / 2) * math.sin(dLng / 2) * math.cos(lat1) * math.cos(lat2)
ang = 2 * math.atan2(math.sqrt(val), math.sqrt(1 - val))
return radius * ang
end
local latHome = 00.000000 --replace with your own coordenates
local lngHome = 00.000000 --replace with your own coordenates
local distanceRange = 20 --change to the maximum distance you want for filtering (in KMs)
local last = tonumber(domoticz.data.last)
if (triggerItem.isTimer) then
domoticz.openURL({
url = 'https://www.onweeractueel.nl/domoticz_bo.json',
method = 'GET',
callback = 'blitz'
})
elseif (triggerItem.isHTTPResponse) then
local response = triggerItem
if (response.ok and response.isJSON) then
local value = 0
local ignored = 0
tl = #response.json
tc = 1
repeat
local times = tonumber(response.json[tc][1])
local lat = tonumber(response.json[tc][2])
local lng = tonumber(response.json[tc][3])
local distanceBetween = distance(latHome, lngHome, lat, lng)
if (distanceBetween <= distanceRange) then
if (times > last) then
value = value + 1
else
value = 0
end
domoticz.data.last = times
end
tc = tc + 1
until tc > tl
print('Blitz Value = '..value)
if value ~= preLight then
lightning.updateCustomSensor(value)
end
else
print('**blitz failed to fetch info')
end
end
end
}
```