i like to get data from a table, but the variable name is dynamic. See my example:
Code:
12345678910111213141516
-- devicesdevices = {
{'9d', 'SENSOR', '8/4/5', 'v.hum'},
{'9e', 'COMMON', '8/4/6', 'v.tst'}
}
-- data get from webservicev = {hum=1, tst='abc'}
log(v.hum, v.tst)
-- print some data from v, based on data in devicesfork,k_itemsinpairs(devices) do-- log variable namelog(k_items[4])
-- log the data in variable with name k_items[4], for example the data in v.hum or v.tst (1 or abc)end
Like this, and make sure that v is defined before devices:
Code:
12345678910111213141516
-- data get from webservicev = {hum=1, tst='abc'}
log(v.hum, v.tst)
-- devicesdevices = {
{'9d', 'SENSOR', '8/4/5', v.hum},
{'9e', 'COMMON', '8/4/6', v.tst}
}
-- print some data from v, based on data in devicesfork,k_itemsinpairs(devices) do-- log variable namelog(k_items[4])
-- log the data in variable with name k_items[4], for example the data in v.hum or v.tst (1 or abc)end
15.03.2021, 13:04 (This post was last modified: 15.03.2021, 13:05 by gjniewenhuijse.)
(15.03.2021, 13:02)admin Wrote: Like this, and make sure that v is defined before devices:
Code:
12345678910111213141516
-- data get from webservicev = {hum=1, tst='abc'}
log(v.hum, v.tst)
-- devicesdevices = {
{'9d', 'SENSOR', '8/4/5', v.hum},
{'9e', 'COMMON', '8/4/6', v.tst}
}
-- print some data from v, based on data in devicesfork,k_itemsinpairs(devices) do-- log variable namelog(k_items[4])
-- log the data in variable with name k_items[4], for example the data in v.hum or v.tst (1 or abc)end
No thats not possible, because my devices are defined before i get the data from the webservice.
Now i defined v hardcoded, but normally this thats comes from the web and is parsed.
-- devicesdevices = {
{'9d', 'SENSOR', '8/4/5', 'hum'},
{'9e', 'COMMON', '8/4/6', 'tst'}
}
-- data get from webservicev = {hum=1, tst='abc'}
log(v.hum, v.tst)
-- print some data from v, based on data in devicesfork,k_itemsinpairs(devices) dokey = k_items[4]
val = v[ key ]
-- log variable namelog(val)
-- log the data in variable with name k_items[4], for example the data in v.hum or v.tst (1 or abc)end
-- devicesdevices = {
{'9d', 'SENSOR', '8/4/5', 'attributes.soilHumidity.value'},
{'9e', 'COMMON', '8/4/6', 'attributes.batteryLevel.value'}
}
-- data get from webservicev = { attributes= { soilHumidity={value=1},batteryLevel={value=100} } }
log(v)
log(v.attributes.soilHumidity.value)
log(v.attributes.batteryLevel.value)
-- print some data from v, based on data in devices (dynamic)fork,k_itemsinpairs(devices) dokey = k_items[4]
val = v[ key ]
log(key, val)
end