To demonstrate just how easy this is, if you run this code in Lua Startup:
function HTTP_user (_,p)
luup.log ("HTTP_user: " .. tostring(p))
for a,b in pairs (p) do global[a] = b end
local out = {}
for a,b in pairs (global) do out[#out+1] = a .. ' = ' .. b end
return table.concat (out, '\n'), "text/plain"
end
global = {} -- 'global' table, call it whatever you like
luup.register_handler ("HTTP_user", "user")
Then an HTTP request like:
http://VeraIP:3480/data_request?id=lr_user&a=42&b=something
will produce the response:
b = something
a = 42
and set the global table (named ‘global’ in this case) to contain those variables (all string values)
A further HTTP request:
http://VeraIP:3480/data_request?id=lr_user&c=something_else&a=1234
gives the response:
b = something
a = 1234
c = something_else
which has added a new variable and modified the value of another.
Scenes, of course, can access these variables through the global table. If you like, you could modify the HTTP handler to run a scene number as specified by a parameter.