Hi Rex-
This is more of a general LUUP programming question, so maybe another thread is more appropriate.
Do you happen to know if all the parameters from the URL Action call automatically get stored and are supposed to be accessible via the luup.variable_get call or is there some other object that this information is available from?
For example, with the synology sms url, the camera name is part of the message param.
http://your.vera.ip.address:3480/data_request?id=action&output_format=xml&DeviceNum=161&serviceId=urn:dcineco-com:serviceId:VMotion1&action=SetTripped&OnTime=10[b]&message=Some string with CAMERA NAME in it[/b]
Would you expect to be able to get the message param using luup_variable.get? I see that is how you set Tripped, but can’t seem to get it working for message.
thanks in advance,
dlca1
D_VMotion.xml
<?xml version="1.0"?>
<implementation>
<functions>
function initstatus(lul_device)
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","Tripped","0",lul_device)
local armed = luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","Armed", lul_device)
if armed == nil then
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","Armed","1",lul_device)
end
status = luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","LastTrip", lul_device)
if status == nil then
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","LastTrip","",lul_device)
end
message = luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","message", lul_device)
if message == nil then
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","message","initial",lul_device)
end
end
function unTrip(devnostr)
if devnostr ~= nil then
local devID = tonumber(devnostr)
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","Tripped",0,devID)
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","message","reset",devID)
end
end
</functions>
<startup>initstatus</startup>
<actionList>
<action>
<serviceId>urn:micasaverde-com:serviceId:SecuritySensor1</serviceId>
<name>SetArmed</name>
<run>
local newarm = lul_settings.newArmedValue
if newarm ~= nil then
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","Armed",newarm,lul_device)
end
</run>
</action>
<action>
<serviceId>urn:dcineco-com:serviceId:VMotion1</serviceId>
<name>SetTripped</name>
<run>
local status = luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","Tripped",lul_device)
local tempMsg = luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","message",lul_device)
if status ~= "1" then
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","Tripped",1,lul_device)
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","message",tempMsg,lul_device)
luup.log("Setting Message: ".. tempMsg ..".")
local now = os.time()
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1","LastTrip",now,lul_device)
local ont = lul_settings.OnTime or "5"
luup.call_delay("unTrip",tonumber(ont),lul_device)
end
</run>
</action>
</actionList>
</implementation>
I added the param to S_VMotion.xml as well
<argument>
<name>message</name>
<direction>in</direction>
</argument>