To get a more or less accurate local temperature I'm polling buienradar.
Stations with a number 29 or less can get retrieved with a json call.
Twente however is numer 30 and buienradar refuses to send data ( the json call is not successfull)
Here is my script.
Code: Select all
-- Buienradar gegevens
-- Buienradar json: https://data.buienradar.nl/2.0/feed/json
-- Groenlo-Hupsel = item.json.actual.stationmeasurements[9]
-- Groningen = item.json.actual.stationmeasurements[10]
-- Twente = item.json.actual.stationmeasurements[30]
return {
active = true,
on = {
timer = { 'every minute' }, -- every minute for testing, 10 minutes when active
httpResponses = { 'BuienradarRetrieved' } -- matches callback string below
},
logging = {level = domoticz.LOG_INFO,
marker = 'Buienradar meetstations'
},
execute = function(domoticz, item)
if (item.isTimer) then
domoticz.openURL({
url = 'https://data.buienradar.nl/2.0/feed/json',
--method = 'GET',
callback = 'BuienradarRetrieved'
})
end
if (item.isHTTPResponse) then
if (item.ok and item.isJSON) then
-- domoticz.utils.dumpTable(item.json)
-- domoticz.log(item.json.actual.stationmeasurements[9].temperature,domoticz.LOG_INFO)
local Groenlo_temp = item.json.actual.stationmeasurements[9].temperature
local Groningen_temp = item.json.actual.stationmeasurements[10].temperature
local Home_temp = (Groenlo_temp + Groningen_temp)/2
domoticz.devices('Temp_Home').updateTemperature(Home_temp)
domoticz.log('Groenlo temperature = ' .. Groenlo_temp, domoticz.LOG_INFO)
domoticz.log('Groningen temperature = ' .. Groningen_temp, domoticz.LOG_INFO)
else
-- oops
domoticz.log('Error fetching Buienradar data', domoticz.LOG_ERROR)
end
end
end
}Code: Select all
2023-12-18 00:24:00.557 Error: dzVents: Error: (3.1.8) Buienradar meetstations: An error occurred when calling event handler Buienradar
2023-12-18 00:24:00.557 Error: dzVents: Error: (3.1.8) Buienradar meetstations: ...omoticz/scripts/dzVents/generated_scripts/Buienradar.lua:37: attempt to concatenate a nil value (local 'Twente_temp')
)