Luup Lua extensions
In addition to the [Lua] commands described in the [Lua reference manual], you can also reference in your Lua code global variables the Luup engine provides, or call functions and hooks within the Luup engine, and use local variables which the Luup engine may pass to your Lua code depending on what kind of Lua code you wrote:
Contents |
Global Variables
The Luup engine provides the following global variables that can be referenced anywhere in your Lua code:
lug_device
This is a table containing information on all the devices in the system. The index is the device number. See: Lua_Device_Structure for details. Each device has the following attributes:
Room_Num: This is the number of the room the device is in.
DeviceType: This is a number representing the type of device. See: Luup_Device_Types_Categories for a list.
Category_Num: This is a category for the device. See: Luup_Device_Types_Categories
Device_Num_Parent: This is the number of the parent device. See: Lua_Device_Structure for details.
IP: If this device is IP based, this is the IP address.
MAC: If this device is IP based, this is the MAC address.
ID: If this device has an internal ID that is specific to the device, it is contained here. For example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.
Description: This is the text description for the device as supplied by the user in the web ui.
UDN: This is the UDN for the UPnP device.
Examples:
The description of device 4, the UDN of device 3: lug_device[4].Description, lug_device[3].UDN
Log all the attributes from all the devices:
for k,v in pairs(lug_device) do for k2,v2 in v lu_log("Device #" .. k .. ":" .. k2 .. "=" .. "v2") end end
Luup Functions
General purpose
lu_CallAction
lu_DeviceSupportsService
lu_GetDevicesByService
lu_GetVariable
lu_GetXmlNodeText
lu_log
lu_SetCommFailure
lu_SetVariable
lu_WatchVariable
lu_RegisterHandler
Reporting child devices
lu_chdev_append
lu_chdev_start
lu_chdev_sync
I/O data
lu_iop_intercept_incoming
lu_iop_open
lu_iop_recv_block
lu_iop_send
Job Handling
lu_job_set
lu_job_get