<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mios.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mios.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guessed</id>
		<title>MiOS - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mios.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guessed"/>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Special:Contributions/Guessed"/>
		<updated>2026-04-13T16:52:27Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.8</generator>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2014-02-26T20:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* function: variable_get */ Change example to show that it returns a timestamp result in addition to the value.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Now running version: ' .. luup.version)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: device  ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device &lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;if( version_branch ~= 1 or version_major ~= 0 or version_minor &amp;lt; 843 ) then&lt;br /&gt;
    luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
    return false&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number of hours offset from UTC, as found on the location tab in the setup UI.  It accounts for DST, so, for example, Pacific Standard time will be -8 or -9 depending on DST.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Contains 0 for MiOS &amp;lt; 1.5.250 (Vera V2) / &amp;lt; 1.5.249 (Vera V3).&lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number.&lt;br /&gt;
&lt;br /&gt;
The members are:&lt;br /&gt;
* '''room_num''': (number) This is the number of the room the device is in. &lt;br /&gt;
* '''device_type''': (string) This is a string representing the type of the device.&lt;br /&gt;
* '''category_num''': (number) This is a category for the device.  See: [[Luup_Device_Categories]] for a list. &lt;br /&gt;
* '''subcategory_num''': (number) This is a sub category for the device.&lt;br /&gt;
* '''device_num_parent''': (number) This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
* '''ip''': (string) If this device is IP based, this is the IP address. &lt;br /&gt;
* '''mac''': (string) If this device is IP based, this is the MAC address. &lt;br /&gt;
* '''user''': (string) If this device is IP based and requires http authentication, this is the username&lt;br /&gt;
* '''pass''': (string) If this device is IP based and requires http authentication, this is the password&lt;br /&gt;
* '''id''': (string) 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. &lt;br /&gt;
* '''embedded''': (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
* '''hidden''': (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
* '''invisible''': (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
* '''description''': (string) This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
* '''udn''': (string) This is the UDN for the UPnP device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example to log device #5's IP address and its internal ID:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;for k, v in pairs(luup.devices) do&lt;br /&gt;
    for k2, v2 in pairs(v) do&lt;br /&gt;
        luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. tostring(v2))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return true&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Room #1 is called: ' .. luup.rooms[1])&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the scene number. The members are: room_num (number), description(string), hidden(boolean)&lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== variable: event_server ===&lt;br /&gt;
&lt;br /&gt;
type: string&lt;br /&gt;
&lt;br /&gt;
Contains the notification/event server. On UI5 it can be either ''cms1.mios.com'' or ''cms2.mios.com''.&lt;br /&gt;
&lt;br /&gt;
=== variable: ra_server ===&lt;br /&gt;
&lt;br /&gt;
type: string&lt;br /&gt;
&lt;br /&gt;
Contains the remote access server. Can be either ''fwd1.mios.com'' or ''fwd2.mios.com''.&lt;br /&gt;
&lt;br /&gt;
=== variable: pk_accesspoint ===&lt;br /&gt;
&lt;br /&gt;
type: number&lt;br /&gt;
&lt;br /&gt;
Contains the serial number of this Vera.&lt;br /&gt;
&lt;br /&gt;
=== variable: hw_key ===&lt;br /&gt;
&lt;br /&gt;
type: string&lt;br /&gt;
&lt;br /&gt;
Contains the Vera hardware key.&lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function ''function_name'' (the first parameter), which must be passed as a string, will be called in ''seconds'' seconds (the second parameter), and will be passed the string ''data''. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead. &lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed. Normally it is called by a worker thread and is expected to return immediately.&lt;br /&gt;
&lt;br /&gt;
As of December 19, 2011, for all builds after 1.5.237, the 'thread' will be ignored.  Each Lua state has its own worker thread now, so all calls to call_delay and call_timer will occur in a separate thread.&lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]]&lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
version: UI5 and above&lt;br /&gt;
&lt;br /&gt;
Checks whether a device has successfully completed it's startup sequence. If so, is_ready returns true. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a condition to the &amp;lt;incoming&amp;gt; block that only processes data if is_ready(lul_device) is true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;incoming&amp;gt;&lt;br /&gt;
    if (luup.is_ready(lul_device) == false) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    doSomething(lul_device)&lt;br /&gt;
&amp;lt;/incoming&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local lul_arguments = {}&lt;br /&gt;
lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;] = 50&lt;br /&gt;
lul_resultcode, lul_resultstring, lul_job, lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&lt;br /&gt;
                                                                                  &amp;quot;SetLoadLevelTarget&amp;quot;, lul_arguments,&lt;br /&gt;
                                                                                  5)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]], [startup (bool)] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP 'service' + 'variable' will be set to the 'value' for this device. If there are events or notifications tied to the variable they will be fired. &lt;br /&gt;
&lt;br /&gt;
The device parameter: if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'. If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: value (string) and Unix time stamp (number) of when the variable last changed&lt;br /&gt;
&lt;br /&gt;
Returns the value of the UPnP service + variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). If the service+variable or device does not exist, it returns nothing.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Example usage]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value, tstamp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value .. &amp;quot; last changed (Epoch): &amp;quot; .. tstamp)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device parameter: if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
[[Caution - Incorrect usages]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = tonumber(luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.variable_get&amp;lt;/code&amp;gt; returns two parameters and &amp;lt;code&amp;gt;tonumber&amp;lt;/code&amp;gt; also accepts two parameters. However the parameters are incompatible: the Unix timestamp returned by &amp;lt;code&amp;gt;luup.variable_get&amp;lt;/code&amp;gt; is being used as a number base in the function &amp;lt;code&amp;gt;tonumber&amp;lt;/code&amp;gt;. The number base is limited to a power of 36 or less and the current timestamps are in the range of thousands of millions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = tostring(luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.variable_get&amp;lt;/code&amp;gt; returns two parameters and &amp;lt;code&amp;gt;tostring&amp;lt;/code&amp;gt; only expects one&lt;br /&gt;
&lt;br /&gt;
=== function: attr_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value. Examples of attributes are 'mac', 'name', 'id', etc.&lt;br /&gt;
&lt;br /&gt;
=== function: attr_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: string or none  (note: none means nothing at all. It does not mean 'nil')&lt;br /&gt;
&lt;br /&gt;
Gets the top level attribute for the device.  Examples of attributes are 'mac', 'name', 'id', etc.  If the attribute doesn't exist, it returns nothing.  If nothing is passed in for device, it gets the top level attribute from the master userdata, like firmware_version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;-- This code logs nil if theDeviceNumber is invalid.&lt;br /&gt;
local theName = luup.attr_get ('name', theDeviceNumber)&lt;br /&gt;
luup.log(theName)&lt;br /&gt;
return true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;-- This code fails if theDeviceNumber is invalid.&lt;br /&gt;
luup.log(luup.attr_get ('name', theDeviceNumber))&lt;br /&gt;
return true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: ip_set ===&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Not available in UI5 or lower&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
parameters: value (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]]&lt;br /&gt;
&lt;br /&gt;
returns: none&lt;br /&gt;
&lt;br /&gt;
Sets the IP address for a device.  This is better than setting the &amp;quot;ip&amp;quot; attribute using attr_set because it updates internal values additionally, so a reload isn't required.&lt;br /&gt;
&lt;br /&gt;
=== function: mac_set ===&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Not available in UI5 or lower&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
parameters: value (string), device (string or number)&lt;br /&gt;
&lt;br /&gt;
returns: none&lt;br /&gt;
&lt;br /&gt;
Sets the mac address for a device.  This is better than setting the &amp;quot;mac&amp;quot; attribute using attr_set because it updates internal values additionally, so a reload isn't required.&lt;br /&gt;
&lt;br /&gt;
=== function: reload ===&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Not available in UI5 or lower&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
parameters: none&lt;br /&gt;
&lt;br /&gt;
returns: none&lt;br /&gt;
&lt;br /&gt;
Reloads the Luup engine.&lt;br /&gt;
&lt;br /&gt;
=== function: create_device ===&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Not available in UI5 or lower&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
parameters:&lt;br /&gt;
* device_type (string)&lt;br /&gt;
* internal_id (string)&lt;br /&gt;
* description (string)&lt;br /&gt;
* upnp_file (string)&lt;br /&gt;
* upnp_impl (string)&lt;br /&gt;
* ip (string)&lt;br /&gt;
* mac (string)&lt;br /&gt;
* hidden (boolean)&lt;br /&gt;
* invisible (boolean)&lt;br /&gt;
* parent (number)&lt;br /&gt;
* room (number)&lt;br /&gt;
* pluginnum (number)&lt;br /&gt;
* statevariables (string)&lt;br /&gt;
* pnpid (number)&lt;br /&gt;
* nochildsync (string)&lt;br /&gt;
* aeskey (string)&lt;br /&gt;
* reload (boolean)&lt;br /&gt;
* nodupid (boolean)&lt;br /&gt;
&lt;br /&gt;
returns: the device ID&lt;br /&gt;
&lt;br /&gt;
This creates the device with the parameters given, and returns the device ID.&lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string and content_type it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the Smartphone Web Interface plugin as an example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
    local lul_html = &amp;quot;&amp;lt;head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;title&amp;gt;Main&amp;lt;/title&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;/head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;body&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;Choose a room:&amp;lt;br/&amp;gt;\n&amp;quot;&lt;br /&gt;
    local lul_content_type = &amp;quot;text/html&amp;quot;&lt;br /&gt;
    return lul_html, lul_content_type&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above.&lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nil), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a UDN and if a number as a device ID, ''function_name'' will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to ''function_name''. If variable is nil, ''function_name'' will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service ID (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]]&lt;br /&gt;
&lt;br /&gt;
returns: ''true'' if the device supports the service, ''false'' otherwise&lt;br /&gt;
&lt;br /&gt;
A device supports a service if there is at least a command or state variable defined for that device using that service. Setting UPnP variables is unrestricted and free form, and the engine doesn't really know if a device actually uses it or does anything with it. So this function isn't really definitive.&lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (int), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]]&lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to 1 if the device is failing, 0 if it's working, and 2 if the device is reachable but there's an authentication error. If device is a string it is interpreted as a udn, if it's a number, as a device id. The lu_status URL will show for the device: &amp;lt;tooltip display=&amp;quot;1&amp;quot; tag2=&amp;quot;Lua Failure&amp;quot;/&amp;gt; and Lua Failure is shown in red in UI5 for the device.&lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: ''true'' if it's past sunset and before sunrise, ''false'' otherwise.&lt;br /&gt;
&lt;br /&gt;
=== function: sleep  ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
=== function: sunset / sunrise ===&lt;br /&gt;
&lt;br /&gt;
parameters: none&lt;br /&gt;
&lt;br /&gt;
returns: The next sunset / sunrise in a Unix timestamp (i.e. the number of seconds since 1/1/1970 in UTC time). You can do a diff with os.time to see how long it will be for the next event.  luup.sunset-os.time is the number of seconds before the next sunset. Be sure the location and timezone are properly set or the sunset/sunrise will be wrong.&lt;br /&gt;
&lt;br /&gt;
required firmware: 1.5.353&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: the first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If '''Timeout''' is specified, the function will timeout after that many seconds. The default value for '''Timeout''' is 5 seconds. If '''Username''' and '''Password''' are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]], ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Adds one child to device.&lt;br /&gt;
&lt;br /&gt;
Pass in the ptr which you received from the luup.chdev.start call. Give each child a unique id so you can keep track of which is which. You can optionally provide a description which the user sees in the user interface.&lt;br /&gt;
&lt;br /&gt;
device_type is the UPnP device type, such as urn:schemas-upnp-org:device:BinaryLight:1.&lt;br /&gt;
&lt;br /&gt;
If device_filename is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any device_type you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in implementation_filename. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in implementation_filename.&lt;br /&gt;
&lt;br /&gt;
If embedded is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The parameters are UPnP service,variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a, and = to separate service, variable and value, like this: service,variable=value\nservice...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
luup.chdev.append(device, children,&lt;br /&gt;
    string.format(&amp;quot;Input-%d&amp;quot;, i), string.format(&amp;quot;Input %d&amp;quot;, i),&lt;br /&gt;
    &amp;quot;urn:schemas-micasaverde-com:device:TemperatureSensor:1&amp;quot;, &amp;quot;D_TemperatureSensor1.xml&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;quot;, &amp;quot;urn:upnp-org:serviceId:TemperatureSensor1,CurrentTemperature=50&amp;quot;, true)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]], ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== Module: io  ==&lt;br /&gt;
io.open&amp;lt;br/&amp;gt;&lt;br /&gt;
io.write&amp;lt;br/&amp;gt;&lt;br /&gt;
io.intercept&amp;lt;br/&amp;gt;&lt;br /&gt;
io.read&amp;lt;br/&amp;gt;&lt;br /&gt;
io.is_connected&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]], ip (string), port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port.&lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred.&lt;br /&gt;
&lt;br /&gt;
The written data is modified depending upon the value of the [[Luup_Plugins_ByHand#&amp;lt;protocol&amp;gt;|&amp;lt;protocol&amp;gt; tag]].&lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called ''intercept'' previously so the data is passed. The time unit for ''timeout'' is seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false&lt;br /&gt;
&lt;br /&gt;
== Module: luup.job  ==&lt;br /&gt;
&lt;br /&gt;
=== function: status  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job_number (number), [[Luup_Lua_extensions#device:_string_or_number|device (string or number)]] &lt;br /&gt;
&lt;br /&gt;
returns: job_status (number), notes (string) &lt;br /&gt;
&lt;br /&gt;
If '''job_number''' is invalid the function returns ''-1''. If '''device''' is a string it is interpreted as an UDN, if it's a number, as a device ID.&lt;br /&gt;
&lt;br /&gt;
This is the list with all job statuses and their meaning:&lt;br /&gt;
* '''-1''': No job, i.e. job doesn't exist.&lt;br /&gt;
*  '''0''': Job waiting to start.&lt;br /&gt;
*  '''1''': Job in progress.&lt;br /&gt;
*  '''2''': Job error.&lt;br /&gt;
*  '''3''': Job aborted.&lt;br /&gt;
*  '''4''': Job done.&lt;br /&gt;
*  '''5''': Job waiting for callback. Used in special cases.&lt;br /&gt;
*  '''6''': Job requeue. If the job was aborted and needs to be started, use this special value.&lt;br /&gt;
*  '''7''': Job in progress with pending data. This means the job is waiting for data, but can't take it now.&lt;br /&gt;
&lt;br /&gt;
=== function: set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string), value (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This stores a setting for a job. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;job&amp;gt;&lt;br /&gt;
    luup.job.set(lul_job, &amp;quot;comments&amp;quot;, &amp;quot;In progress...&amp;quot;)&lt;br /&gt;
    local comments = luup.job.setting(lul_job, &amp;quot;comments&amp;quot;)&lt;br /&gt;
    luup.log(&amp;quot;job comments = &amp;quot; .. comments)&lt;br /&gt;
&amp;lt;/job&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: setting  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string) &lt;br /&gt;
&lt;br /&gt;
returns: value (string) &lt;br /&gt;
&lt;br /&gt;
This returns a setting for a job.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
=== device: string or number ===&lt;br /&gt;
*If a number, it is the device ID&lt;br /&gt;
*If a string, it is the UDN for the UPnP device&lt;br /&gt;
Both of these can be found in the User Interface (UI5) under the advanced Tab as &amp;quot;id&amp;quot; and &amp;quot;local_udn&amp;quot; respectively.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local update_frequency = luup.variable_get(&amp;quot;S_WebcamDropboxUploaderSettings1.xml&amp;quot;,&amp;quot;SendFrequency&amp;quot;,87)&lt;br /&gt;
local update_frequency = luup.variable_get(&amp;quot;S_WebcamDropboxUploaderSettings1.xml&amp;quot;,&amp;quot;SendFrequency&amp;quot;,&amp;quot;uuid:4d494342-5342-5645-0057-000001c9d682&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code</id>
		<title>Luup plugins and Luup code</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code"/>
				<updated>2012-09-26T15:38:45Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Alphabetical list of all Luup plugins, Luup code fragments and Vera clients */ Obsolete HDMI-CEC Plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''All Luup plugins, Luup code fragments and Vera clients by category'''  =&lt;br /&gt;
&lt;br /&gt;
== '''Alarm System integration'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Ademco Honeywell Vista 20P Alarm Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4531.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DSC Alarm Panel &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| GE Caddx Networx NX-584 NX-8E Alarm Plugin &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paradox Alarm Plugin &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Development'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070].&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Energy management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Home Entertainment management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows application &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29]&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385]&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Interfacing'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0]&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin]&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Monitoring'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D]&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras]&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView]&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Notifications'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0]&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| cf. Battery low notification&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| cf. ADD&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Temperature or Weather measurement'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''UI'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled rece &lt;br /&gt;
| client &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Utility'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891]&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0].&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM &lt;br /&gt;
| FRITZ!Box Call Monitor &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88&lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| TedStriker &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0]&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| cf. WakeupRamp&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| cf. Slowly dim your lights&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Watering System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#ff0000&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Alphabetical list of all Luup plugins, Luup code fragments and Vera clients'''  =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Category &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Unique MCVID &lt;br /&gt;
! Remarks &lt;br /&gt;
! Screenshot&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| cf. Battery low notification &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled receivers. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Energy management &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| cf. ADD &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Brultech Power Monitor &lt;br /&gt;
| Energy Monitoring integration for Brultech ECM-1240 devices. &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Brultech ECM-1240 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_brultech-power-monitor] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| dataMine Graphing Plugin &lt;br /&gt;
| Records and graphs variables. A GUI is provided to select any MIOS variable and graphs are presented in real-time with zoom/scroll capability. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Chris Jackson &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php/topic,7750.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_datamine]&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#DSC_PowerSeries_Panels|DSC Alarm Panel]]&lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elk M1 Family Panels&amp;lt;br&amp;gt;&lt;br /&gt;
| Integration with the Elk M1 alarm panels via the RS232 port. &lt;br /&gt;
| plugin&amp;lt;br&amp;gt;&lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6916.0]&amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_elk-alarm-panel]&amp;lt;br&amp;gt;&lt;br /&gt;
| Working&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Energy management &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Watering System management &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM &lt;br /&gt;
| FRITZ!Box Call Monitor &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Monitoring &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#GE.2FCaddx_NetworX_Panels|GE Caddx NetworX NX-584 NX-8E Alarm Plugin]] &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| Utility &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels via AD2USB &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels via the AD2USB adapter. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| AD2USB Adapter&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7266.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_vista-alarm-panel-ad2usb]&amp;lt;br&amp;gt;&lt;br /&gt;
| Beta &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels with RS232&amp;lt;br&amp;gt;&lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels with a RS232 interface. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| dfad1469 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6626.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ademco-panels-plugin] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IO Relay Plugin &lt;br /&gt;
| This component permits the control of Relay and Analog IO boards from IORelay.com (National Control Devices). Controls up to 8 Relays and 8 Analog inputs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ProXR, ProXR Lite, Reactor Relay board from iorelay.com &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_iorelay] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| UI &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows application &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| Development &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#Paradox_EVO_Panels|Paradox Alarm Plugin]] &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| TedStriker &lt;br /&gt;
| guessed, Henk &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ping-sensor] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| System management &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| cf. WakeupRamp &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| Utility &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| Notifications &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| cf. Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?action=dlattach;topic=5865.0;attach=1826;image]&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Sources'''  =&lt;br /&gt;
&lt;br /&gt;
Sources:&amp;lt;br&amp;gt;http://forum.micasaverde.com/&amp;lt;br&amp;gt;http://code.mios.com/&amp;lt;br&amp;gt;http://wiki.micasaverde.com/index.php/Luup_Projects&amp;lt;br&amp;gt;http://forum.micasaverde.com/index.php?topic=6280.msg40147#msg40147&amp;lt;br&amp;gt;http://www.micasaverde.com/list-of-apps.php&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Todo'''  =&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]] [[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-09-26T15:34:44Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Weather Plugin */ Example now moved to the Wiki for the Weather plugin, since that Wiki is maintained, and secured correctly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=On/Off Switch=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device Category 3,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:BinaryLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:SwitchPower1''||''Status''||If the device is on, the value is ''1'', otherwise it's ''0''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Dimmable Light=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 2, &lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:DimmableLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, ''LoadLevelStatus'' indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:Dimming1''||''LoadLevelStatus''||If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from ''0-100'' indicating a percentage of brightness.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Thermostat=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Other Devices or Services=&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;rain&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;ConditionGroup&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather ConditionGroup using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''ConditionGroup''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-09-26T15:33:21Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Other Devices or Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=On/Off Switch=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device Category 3,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:BinaryLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:SwitchPower1''||''Status''||If the device is on, the value is ''1'', otherwise it's ''0''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Dimmable Light=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 2, &lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:DimmableLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, ''LoadLevelStatus'' indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:Dimming1''||''LoadLevelStatus''||If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from ''0-100'' indicating a percentage of brightness.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Thermostat=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Other Devices or Services=&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;rain&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;ConditionGroup&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather ConditionGroup using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''ConditionGroup''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=Weather Plugin=&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough</id>
		<title>Luup Somfy Walkthrough</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough"/>
				<updated>2012-05-30T05:49:04Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Step 5: Create the child devices for the blinds */ Add the other reference to D_BinaryLight1.xml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This page is for developers wanting to learn how to write a plugin.  If you simply want to use the Somfy plugin see: [[Somfy_Plugin]]&lt;br /&gt;
&lt;br /&gt;
This page walks through in detail the process of creating a Luup plugin to control the Somfy RS232 interface for motorized blinds as a sample.  The Somfy documentation (see: [http://www.blindshademotors.com/documents/accessories-special-applications/rs232-to-rts-compatability.pdf]) explains that you talk to the controller using RS232 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity.  The interface supports up to 16 blinds.  The communication is one-way only; there are no response codes or incoming data from the blinds when they change manually.  Here is the relevant section from the manual.&lt;br /&gt;
&lt;br /&gt;
 RS232 Operation&lt;br /&gt;
 1. Set RS232 communication settings to: 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity&lt;br /&gt;
 2. Use the ASCII protocol command string syntax: &amp;lt;!&amp;gt; &amp;lt;2 digit channel number&amp;gt; &amp;lt;Directional Command&amp;gt;&lt;br /&gt;
 3. The directional commands must be capital letters and are as follows:&lt;br /&gt;
   U: UP&lt;br /&gt;
   D: DOWN&lt;br /&gt;
   S: STOP&lt;br /&gt;
 4. Examples: Motor 2 Up: !02U&lt;br /&gt;
   Motor 5 Down: !05D&lt;br /&gt;
   Motor 1 Stop: !01S&lt;br /&gt;
&lt;br /&gt;
==Step 1: SSH into Vera==&lt;br /&gt;
&lt;br /&gt;
Since this device is so simple it may not be necessary to debug anything.  But we'll do this anyway.  You need to give Vera a root password, which is the administrator password to login directly.  Do this by either: a) from a command prompt in Windows, Linux or Mac type telnet [ip address of vera] and when you see the ''root@HomeControl:~#'' prompt enter: ''passwd'' and type in a password twice.  Then type exit.  Or b) In Vera's web ui click Advanced, Net &amp;amp; Wi-fi and the 'Advanced Configuration' link, and supply the password there.  Note, sometimes Windows Vista doesn't have the telnet utility installed, so you have to use step b.&lt;br /&gt;
&lt;br /&gt;
Once you have a root password set, you will no longer be able to use telnet to login to Vera, you must use ssh.  The reason you should use ssh to login for debugging, and not telnet, is because some of the useful key sequences, like Ctrl+C, don't work in telnet.&lt;br /&gt;
&lt;br /&gt;
Once you've setup a root password, from a Mac or Linux console type: ''ssh [ip of vera]''  From a Windows PC, download putty.exe here: [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html].  You don't need to install putty, just put the .exe on your desktop or in a folder.  When you run putty.exe, type in Vera's IP address and click 'open'.  If you don't see the root password or need help logging in see [[Logon_Vera_SSH#Can.27t_find_the_root_password.3F|Logon # Can't find the root password?]].&lt;br /&gt;
&lt;br /&gt;
When you see ''login as:'', enter: ''root'' and then enter your password.  Now from the ''root@HomeControl:#'' prompt type:&lt;br /&gt;
&lt;br /&gt;
  cd /var/log/cmh&lt;br /&gt;
  tail -f LuaUPnP.log&lt;br /&gt;
&lt;br /&gt;
Do something in Vera's web ui and you'll see the logs go.  Whenever the system rotates the logs, meaning purges the log files because Vera's memory is limited for storing logs, your tail will end.  Press the 'up' arrow and hit 'enter' to display the tail command again and restart it.  Press Ctrl + c when you've confirm the logs are working ok.&lt;br /&gt;
&lt;br /&gt;
In Vera's web ui, choose Advanced, Logs, and check 'Verbose logging'.  This option will create large logs that have lots of information we may need for debugging.  It will stay checked for 24 hours and then automatically turn itself off so you're not creating unnecessarily large log files.&lt;br /&gt;
&lt;br /&gt;
==Step 2a: Add your device with the web generator tool==&lt;br /&gt;
&lt;br /&gt;
  --coming soon.  for now use step 2b.&lt;br /&gt;
&lt;br /&gt;
== Step 2b: Add your device by building the XML files by hand ==&lt;br /&gt;
&lt;br /&gt;
To do this you'll want a good text editor. I'm using, such as Notepad++ available here: [http://notepad-plus.sourceforge.net/uk/site.htm] by clicking Download, Download Notepad++ executable files, download and run the npp....Installer.exe file, and you may also want to download the 'XML plugin' from the download page, and unzip it putting the file \Program Files\Notepad++\plugins. &lt;br /&gt;
&lt;br /&gt;
In Vera's setup UI, go to Devices, Luup plugins, click 'Luup files' and download the files: &lt;br /&gt;
&lt;br /&gt;
''D_BinaryLight1.xml'' since there is no UPnP device specification for blinds, and blinds are essentially binary devices that are either up/down, we can implement the up/down using the same service that a light switch uses, and that way any UPnP control point that can control a light switch, will also be able to control blinds. &lt;br /&gt;
&lt;br /&gt;
''S_SwitchPower1.xml'' because when you open D_BinaryLight1.xml, you'll see that in the 'services' section, this is the filename (SCPDURL) for the SwitchPower service. &lt;br /&gt;
&lt;br /&gt;
[[Media:D_TestSerial.zip | ''D_TestSerial.xml'']] because this is a sample serial device we can use as a template. &lt;br /&gt;
&lt;br /&gt;
[[Media:I_TestSerial.zip | ''I_TestSerial.xml'']] because this is a sample implementation for our serial device. &lt;br /&gt;
&lt;br /&gt;
Open D_TestSerial.xml in your text editor and re-save it as a different name, such as D_SomfyBlinds.xml. Change the xml field deviceType to &amp;quot;urn:somfy-com:device:blinds:1&amp;quot; or use your own domain name instead of somfy-com. Change friendlyName to &amp;quot;Somfy Blind Controller&amp;quot;, manufacturer to &amp;quot;Somfy&amp;quot;, manufacturerURL to &amp;quot;somfy.com&amp;quot;, modelDescription to &amp;quot;16 port RS232 to Somfy blind interface&amp;quot;, modelName to &amp;quot;1810686&amp;quot; (the Somfy part number). modelURL and serialNumber and UPC aren't really important so you can just remove them. Add in their place a protocol tag with the value 'raw', and handlechildren (we'll explain this one later) with the value 1, like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;protocol&amp;gt;raw&amp;lt;/protocol&amp;gt;&lt;br /&gt;
  &amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 'raw' protocol is because the Somfy device doesn't have any particular low level protocol, like terminating blocks of data with a carriage return, etc. Remove all the tags in 'servicelist'. &lt;br /&gt;
&lt;br /&gt;
Change the filename in the ''implementationFile'' tag from I_TestSerial.xml to I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Open I_TestSerial.xml and delete the sample Lua code within the 'actionList' tag. We have to put some Lua code in the implementation file for the Luup engine to start it, so for now just put a placeholder in the 'functions' xml tag: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    luup.log(&amp;quot;Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lug_device[lul_device].ID)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and in the 'startup' xml tag, put: ''lug_startup'', like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;startup&amp;gt;lug_startup&amp;lt;/startup&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So we've created a Lua function, lug_startup, told the Luup engine to call it when the engine is starting up. The name lug_startup is arbitrary, it can be anything you want. Save the file as I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Back on Vera's setup ui under 'Luup files' you the first 'upload' button to upload D_SomfyBlinds.xml and the 2nd to upload I_SomfyBlinds.xml. Check ''Restart Luup after upload'' because the files won't be processed unless we restart the Luup engine, and click 'go'. Now leave your browser tab open at this page so that as we change the implementation file we can just click 'go' without having to select the files again. &lt;br /&gt;
&lt;br /&gt;
In another browser tab go to Vera's device page again and under 'Add device' put the new device filename ''D_SomfyBlinds.xml'' in the input box, and choose the room where the blind controller is located, click 'Add device'. You'll have a new, blank device in that room, so give it a description &amp;quot;Somfy Blind Controller&amp;quot;, then click 'save'. &lt;br /&gt;
&lt;br /&gt;
Note that if the Somfy device was bi-direction we should attempt to communicate with it during the startup sequence and the startup function should return false if the sequence failed, or true if it succeeded, followed by some comments and the name of the module, which information is shown to the user in the info panel. So: return false,'Interface not responding','Somfy Blind' or return true,'Initialized OK','Somfy Blind'&lt;br /&gt;
&lt;br /&gt;
==Step 3: Setup the port==&lt;br /&gt;
&lt;br /&gt;
Vera talks to serial devices using a serial port proxy that turns the serial port into a network port.  This way the serial port can reside anywhere on the network.  Here are 3 ways to connect Vera to the Somfy device:&lt;br /&gt;
&lt;br /&gt;
1.  Get the UC232R-10 usb-&amp;gt;serial adapter here: [http://www.futureelectronics.com/en/Pages/index.aspx]  Connect it to one of Vera's USB ports.  In Vera's web ui, click the 'save' button, which, even if the 'save' button is grayed out, causes the Luup engine to re-initialize and scan for new serial ports.  Wait 30 seconds.&lt;br /&gt;
&lt;br /&gt;
2.  Use any Windows COM port or USB-&amp;gt;serial port device.  Download [[Windows_Serial_Proxy]] and run it as explained there.  Wait 30 seconds after running it and it will exit after it has reported the port to the Luup engine.&lt;br /&gt;
&lt;br /&gt;
3.  Connect a Global Cache GC-100 to your network.  Wait 30 seconds or so for the Luup engine to find it.  This should happen automatically.  Bring up the GC100's setup page in your web browser; you can find the IP address in Vera's device page under the + sign, and set the baud/parity/etc. for the port to match.  In the case of the GC-100, this information is supplied to the GC-100 itself and the values in the Serial Port Configuration page have no effect.&lt;br /&gt;
&lt;br /&gt;
After you've done 1, 2 or 3, go to Devices, Luup plugins and click &amp;quot;Serial port configuration&amp;quot;.  The serial port should be on the list.  Use the pull-down's to set the serial port options: baud=9600, Data Bits=8, Stop Bits=1, Parity=none.  For the 'Use with device', select your Somfy Blind controller.  Choose 'Save'.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Test the port==&lt;br /&gt;
&lt;br /&gt;
First, make note of the device id for your Somfy blinds by clicking '+' next to the device in the device list.  Next, go to Devices, Luup Plugins, Test Luup code.  In the 'Device number' input box put the device number for the Somfy blinds.  This way whatever code we test uses the Lua instance for the Somfy blinds, which will be configured already to use the serial port.&lt;br /&gt;
&lt;br /&gt;
In the 'Code' input box, type: ''luup.io.write('!01U')'' and click 'Go'.  That is a command according to the Somfy specs, which should make motor #1 go up.  You can try other commands and click 'Go' each time.  If everything is working ok, skip to step 6.  If it's not working, you will want to do some debugging.  Here's some debug things to try:&lt;br /&gt;
&lt;br /&gt;
1.  Be sure you checked 'Verbose logging' in Step 1. In your ssh console (ie putty if you're using windows) enter ''tail -f LuaUPnP.log | grep '^5\|^01' '' where the | means to send the output through the grep utility, which will filter out only certain lines.  The ^ means 'lines that start with'.  Line that start with 5 are logs related to Lua, and lines that start with 01 are critical errors.  The \| means 'or' for grep.  Now go back and click 'go' again in the Test Luup window.  Return to the ssh console and you should see a line that starts with 51, which means data sent within Luup, that shows !01U, in this format: ''51      06/29/09 17:19:53.453   0x21 0x30 0x31 0x55 0xd 0xa (!01U\r\n)'', where the human-readable ascii text is in () at the end, following the binary/hex.  If you're going to be switching back and forth between the ssh console and web ui to do tests, then before you switch to the web ui, you can either hit 'enter' a few times in the ssh console to add some blank space, or press Ctrl+c and then 'up' followed by 'enter' to restart tail.  That way you've created some separation between existing log entries and new ones so you can clearly see what is happening when you click 'go'.  If you're not seeing anything, in the Test Luup window add the line ''lu_log('test somfy')'' above the luup.io.write.  You should see 'test somfy' get logged when you press 'go'.&lt;br /&gt;
&lt;br /&gt;
2.  Assuming you do see the line '51' log entry showing that the Luup engine is trying to send data, you may want to check the serial port itself.  You can go back to the 'serial port configuration' and remove the 'Somfy blind' device from the serial port so the Luup engine won't open the port.  Make a note of the network ip and port for the serial port.  Click 'Save' to save your changes.  Now from a command prompt run: ''telnet [ip] [port]''.  If you don't have telnet, open another putty session and click the 'telnet' radio box, put in the ip address and port and click 'open'. You should now be able to type the commands in the telnet session: ''!01U'' and see the blinds work.  If it still doesn't work, try connecting the blinds directly to your PC and using a terminal program, like Hyperterminal, to talk directly to the serial port and confirm the connections are ok.&lt;br /&gt;
&lt;br /&gt;
==Step 5: Create the child devices for the blinds ==&lt;br /&gt;
&lt;br /&gt;
In Luup, when you have an interface device which is able to control multiple devices this is represented as a tree where the interface is a 'virtual' device, that probably doesn't implement any actions itself, and multiple 'child devices' under the interface device for each device the interface can control.  The Somfy Blind controller is such a device because the 1 interface can control 16 blinds.  If it only controlled 1 blind, we wouldn't need to implement the parent/multiple child architecture, because we would have just 1 device which implemented the blind functions.  We also wouldn't need to create any functions in Lua and we'd simply have put the control protocol in the 'action' tags in the implementation XML.  But we want a parent 'Somfy interface' with up to 16 different child devices for each of the 16 blinds the device can control.  This means it's a bit more complicated, so we'll want to use Lua functions, like 'lug_startup'.&lt;br /&gt;
&lt;br /&gt;
The way to implement multiple children is with the 'Reporting child devices' commands documented in [[Luup_Lua_extensions]].  This is how a parent device, in this case the Somfy blind interface, reports to the Luup engine what child devices it has and what ID number it will use internally to keep track of each one.  Every device in Luup has an &amp;quot;ID&amp;quot; value which has no meaning to the Luup engine itself, but which is used by parent devices to keep track of the children.  Many interface devices have a way to get from them the list of child devices so the parent can manage the children automatically.  The Somfy doesn't.  So we have 2 choices: 1) Just automatically report 16 child devices since the interface supports 16 devices, or 2) Let the user indicate which Somfy blind numbers he has and report just those child devices.  The advantage of #1 is that it's very simple, but the drawback is that the user will see 16 blinds in his home, even if he only has 1.  So, we will do it with #2.  The first question is where to let the user store the list of blind numbers that are active.  The usual way to store this information is to create a UPnP service which contains variables for all the various parameters the user should specify to configure the device.  Creating a UPnP service description document and adding it to the device description is a lot of work to get only 1 parameter: a list of device numbers.  But, what we can do is instead just create a variable in Lua using some service id/variable we made up, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This won't be an 'official' UPnP variable and won't show up in a UPnP scanner.  But, it does show up in Vera's user interface as a variable the user can edit the value.  We want to be sure we set this to a default value if it's not already there so the user sees it in the UI and can change it.&lt;br /&gt;
&lt;br /&gt;
Now we'll add the Lua code to iterate through all the blinds and create the devices, which will go in the lug_startup function we created earlier.  We could put the code directly in the XML implementation file.  But that means saving/uploading the file each time, and is a bit more tedious.  It's often easier to debug it first in the 'Test Luup code' window.  So we'll this to test first.  First, put in the code box: ''lug_startup(123)'' but change the 123 to the actual device number of the Somfy blind, and click 'go'.  Switch back to the ssh console that is tail'ing the LuaUPnP.log.  You'll see that it logged ''Somfy blind #... starting up with ID''.  This is because we already created the lug_startup function in the implementation file, and in the code box we just called that function.  Now put this in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID=&amp;quot;01,02&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;,&amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    luup.log(&amp;quot;test2--Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lul_ID)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where 123 should be your actual device number for the device.  The Lua code in ''function lug_startup'' will cause the lug_startup function that was already in the implementation file to be replaced with this version, without actually executing the function (just updating it), so afterward we also have lug_startup(123) to actually run the new version we updated.  When you click 'go' you'll see in the ssh log that the it now says ''test2--Somfy blind'', so you can see the lug_startup function was replaced.  Note that any functions you create in the 'Test Luup Code' window will still stay in the Luup engine until you reload the Luup engine.  So if you type in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
click 'go', nothing will get logged.  If you then erase the code box and type: ''some_test()'' when you click 'go', you'll see &amp;quot;some_test&amp;quot; in the log.  If you want to update the some_test function, and run it at the same time, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test2&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  some_test()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you click 'go', you'll see &amp;quot;some_test2&amp;quot; be logged.  So we'll create a simple startup that creates all 16 blinds by putting this in the Test Luup code window:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
      luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;D_BinaryLight1.xml&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''for i=1,16'' is runs the block before 'end' 16 times, assigning the variable 'i' to 1 to 16 each time.  We want the devices to be 0 padded to 2 digits, so 1 should be &amp;quot;01&amp;quot;.  This is because the ID which the Somfy needs is a zero-padded 2 digit number.  It also will make it easier to filter just the blinds we want to control as explained later.  The statement ''s = string.format(&amp;quot;%02d&amp;quot;, i)'' converts the numeric value 'i' to a string that is padded to decimal places.  This is documented in Lua (see [http://www.lua.org/pil/20.html#StringLib]).&lt;br /&gt;
&lt;br /&gt;
luup.chdev.start() takes as a parameter our device id (ie the parent device) and it tells the Luup engine we're going to start listing all our children.  It returns a handle which we pass in to to the other chdev_ functions.  luup.chdev.append() adds each child and it takes the parent device number, the handle from lu_chdev_start, the id the parent will use to identify the device (s=01, 02, etc.), and the device type.  This is a UPnP device.  We'll use the existing UPnP standard &amp;quot;Binary light&amp;quot; because this way every UPnP control point will treat the blinds as a light and show the user an 'on' and 'off' button.  We could create our own device type for blinds which had actions &amp;quot;open&amp;quot; and &amp;quot;close&amp;quot;, but then the UPnP Control Points (like the iPhone interface) would need to be updated to know how to present the user with blinds.  luup.chdev.sync() is called when we're done to synchronize the child device list with Luup's database, and create/remove any new/missing devices, and restart the Luup engine if devices were added or removed.  See: [[Luup_Lua_extensions]]&lt;br /&gt;
&lt;br /&gt;
Before you click 'go', restart your tail in the ssh window with: ''tail -f LuaUPnP.log | grep '^5\|^01\|^03\|^09\|^11' '' because the 03 logs indicate when the Luup engine stops and restart, the 09 logs show us when devices are created/deleted, and the 11 logs show when the child device functions are calls.  Now when you click 'go', you should see in the logs ''Child_Devices::AddChild'' is called 16 times, and then 16 times ''Child_Devices::ProcessChildDevice created device''.  You should also see lines starting with '03' that show the Luup engine is reloading since new devices were just created.  When it restarts, you'll see 16 new devices in the logs starting with 09.&lt;br /&gt;
&lt;br /&gt;
Now if you click 'go' again, you'll see 16 logs for ''Child_Devices::AddChild'', but no devices will be created or removed because the 16 devices were already created, and the parent/child device lists are still in sync.  We have the same 16 child devices with no new ones or removed ones.&lt;br /&gt;
&lt;br /&gt;
Now if you refresh Vera's web UI, you'll see the Somfy device has '16' embedded devices, each with &amp;quot;on&amp;quot; and &amp;quot;Off&amp;quot;.  The 'true' at the end of the luup.chdev.append means the child devices are 'embedded'.  That means when they're shown in Vera's web UI, they're all grouped together as one compound device.  If you changed the 'true' to a 'false', all 16 blinds would show up as completely separate devices.  This is really just a cosmetic difference.  The advantage to using 'false' (non-embedded) is that the user can put each blind in a different room.  In this case it's probably better to treat the devices as non-embedded, since it is likely the 16 blinds will be scattered around the house.  So change the true at the end of luup.chdev.append to a false.  Then click 'go'.  Now, the 16 blinds are removed, and re-added as non-embedded devices.  So, if you refresh Vera's web UI and go to devices, you'll 16 different blinds that you can put into different rooms, in addition to the &amp;quot;Somfy blind interface&amp;quot; device.&lt;br /&gt;
&lt;br /&gt;
Next, we'll update our Lua code to only create child devices that are specified in the &amp;quot;ID&amp;quot; parameter of the &amp;quot;Somfy blind interface&amp;quot; so that if the user doesn't have 16 devices he can specify just the ones he does have.  To make our coding easier, we'll document in the notes for the user that when specifying the list of blinds in the &amp;quot;ID&amp;quot; he must use 01,02, etc., rather than 1,2, etc. because by storing all child devices as 2 digits, we can do a simple search without having to actually parse the ID.  In other words, if we want to know if blind #1 is active, we can safely search the ID for 01 and know that it will only match if blind #1 is active.  If the user stored single digit blind numbers, like ''5,6,11'' then searching for '1' would give us a false positive and we'd need to write more Lua code to break the list apart.  This also makes it easier to send the blind commands because the Somfy protocol says the blind number must be 2 digits, so we won't need to pad the ID's with 0 for the Somfy device.  This is why we did the for loop with 16 text strings using string.format which would have given us normal, non-zero-padded numbers.&lt;br /&gt;
&lt;br /&gt;
Put a -- in front of the luup.chdev.append in the window and click 'go' again.  -- means &amp;quot;comments&amp;quot; in Lua, and lines starting with -- are ignored.  Therefore, by eliminating the luup.chdev.append, now the luup.chdev.sync will remove all 16 children since none were appended.  This way we can reload Vera's web UI, go to the devices page, and we won't have those 16 blinds anymore requiring us to provide a room.  Click '+' next to the Somfy blind interface, click 'Advanced' and in the BlindIds enter: '02,07,13', click 'save'.  Now in the 'Test Luup code' window enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
   child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
   for i = 1,16 do&lt;br /&gt;
     s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
     if (string.find(lul_ID,s) ~= nil) then&lt;br /&gt;
       luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
       luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;D_BinaryLight1.xml&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
     end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the '123' to your actual device number.  Now when you click 'go' you'll see the logs indicate we only have 3 blinds with ID's 02, 07 and 13.  Since this part of the code is done, you can copy/paste this from the Luup test code window into the implementation.  '''IMPORTANT:''' Be sure the ''lug_startup(123)'' is NOT in your implementation file, or else your lug_startup function will be called twice at each startup: once by the Luup engine with the actual device number, and once when the startup functions are loaded into the Lua engine with your hard-coded number used for testing, which won't necessarily correspond to the real device number.  We also add the variable lul_prefix because the URTS version 1 takes an ! in the front of every command, whereas with version 2 it's a 2 digit number from 01 to 16.  So we'll default to 01, the default value for an URTS version 2, but we'll let the user change it.  We'll store this in a global variable, lul_prefix, so it's available for use in the other functions in our plugin.&lt;br /&gt;
&lt;br /&gt;
If you're editing the XML file by hand, you can save your changes and click 'go' in the Luup files upload page in your web browser to upload your changes.&lt;br /&gt;
&lt;br /&gt;
Every time you re-start the Luup engine, such as clicking 'Save', you'll see in the logs this startup sequence.&lt;br /&gt;
&lt;br /&gt;
==Step 5b: Polish up the startup sequence ==&lt;br /&gt;
&lt;br /&gt;
The the startup sequence as it is the user will always think the Somfy module loaded fine, even when it didn't, giving the user a false sense that everything was ok even when he hadn't yet specified basic parameters.&lt;br /&gt;
&lt;br /&gt;
Now, the code first checks for basic startup parameters, which are stored in UPNP variables, and sets them to a default value if they're not already specified.  You should at least set them an empty string because by setting them to something then the user will see them in the web user interface and be able to easily change them, as opposed to creating them again from scratch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
  if (lul_ID = nil) then&lt;br /&gt;
    lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, since this device uses an IO Port (ie a serial port, or an ethernet port, or a usb connection), we should check that the connection is specified and is active before doing the startup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
    luup.log('No port for Somfy', 1)&lt;br /&gt;
    luup.task('Choose the Serial Port for the URTSI', 2, 'Somfy Blind Interface', -1)&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there's a failure of any kind, we should call luup.task and put in some sort of description with the status code 2 (Error), and then 'return false'.  This way the user sees in the web panel that the module 'Somfy Blind Interface' is in an error condition and what the problem is (he didn't choose the serial port).  If we didn't do the 'return false', the user would think the Somfy module was ok since, when the startup function doesn't return false, the architecture assumes the module is running fine.  If we called return false, didn't call luup.task, then the user see that the module was failing, but would have only a generic &amp;quot;Startup sequence failed&amp;quot; without knowing the explicit reason.&lt;br /&gt;
&lt;br /&gt;
So now the startup sequence looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
&lt;br /&gt;
    if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
      luup.log('No port for Somfy', 1)&lt;br /&gt;
      luup.task('Choose the Serial Port for the URTSI',2,'Somfy Blind Interface', -1)&lt;br /&gt;
      return false&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      if (string.find (lul_ID,s) ~= nil) then&lt;br /&gt;
        luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
        luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &lt;br /&gt;
                          &amp;quot;urn:schemas-micasaverde-com:device:WindowCovering:1&amp;quot;,&lt;br /&gt;
                          &amp;quot;D_WindowCovering1.xml&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 6a: Implementation the actions in the web generator ==&lt;br /&gt;
&lt;br /&gt;
--coming soon--&lt;br /&gt;
&lt;br /&gt;
==Step 6b: Implementation the actions in the xml file ==&lt;br /&gt;
&lt;br /&gt;
The reason we added the ''&amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;'' tag to the Somfy blind interface's device file earlier is because we're going to put all the actions for the child devices (the blinds) within the main implementation file for the Somfy.  So, whenever an action comes in for a child device (a blind), the Lua code in the parent devices implementation file will handle it.  Replace the actionList tag in the implementation file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;actionList&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;serviceId&amp;gt;urn:upnp-org:serviceId:SwitchPower1&amp;lt;/serviceId&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;SetTarget&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;run&amp;gt;&lt;br /&gt;
        local lul_command = lul_prefix .. luup.devices[lul_device].id .. 'U\r'&lt;br /&gt;
        local lul_reverse = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:HaDevice1&amp;quot;, &amp;quot;ReverseOnOff&amp;quot;, lul_device)&lt;br /&gt;
&lt;br /&gt;
        if (lul_settings.newTargetValue == &amp;quot;1&amp;quot; or (lul_settings.newTargetValue == &amp;quot;0&amp;quot; and lul_reverse == &amp;quot;1&amp;quot;)) then&lt;br /&gt;
          lul_command = lul_prefix .. luup.devices[lul_device].id .. 'D\r'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (luup.io.write(lul_command) == false) then&lt;br /&gt;
          luup.log(&amp;quot;cannot send: &amp;quot; .. tostring(lul_command),1)&lt;br /&gt;
          luup.set_failure(true)&lt;br /&gt;
          return false&lt;br /&gt;
        end&lt;br /&gt;
      &amp;lt;/run&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/actionList&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This provides the implementation or the SetTarget UPnP action, which is what is sent when the user clicks 'on' or 'off' for a light switch, or 'open' or 'close' for blinds.  We store the command to send in the variable lul_command and put the 'local' keyword in front so the variable is only available while the 'SetTarget' action is running.  We also check the HADevice service's ReverseOnOff value.  As a convention in Luup, we created this as a common service that all home automation devices have, and the ReverseOnOff variable, if true, means reverse the usual on/off behavior, so on is off and off is on.  We did this because it's not uncommon for binary switches, particularly blinds, to be wired the wrong way, or for it to be subjective which position is on vs. off.  This way the user can add this variable for his configuration if the operation is backwards from what he would expect.  lu_SetCommFailure sets a &amp;quot;communication failure&amp;quot; flag for the device, which logs a critical error, and allows the user to see that the device is having problems.  Whenever the Luup engine reloads, such as clicking 'save', the flag is cleared again.&lt;br /&gt;
&lt;br /&gt;
Now when you click 'on' or 'off' for the blinds you'll see in the log it is sending the corresponding data to the blinds.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2012-03-23T14:38:33Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* variable: devices */ Correct lug_devices -&amp;gt; luup.devices (the syntax since 2009)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Now running version: ' .. luup.version)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: device  ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device &lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;if( version_branch ~= 1 or version_major ~= 0 or version_minor &amp;lt; 843 ) then&lt;br /&gt;
    luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
    return false&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number of hours offset from UTC, as found on the location tab in the setup UI.  It accounts for DST, so, for example, Pacific Standard time will be -8 or -9 depending on DST.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Contains 0 for MiOS &amp;lt; 1.5.250 (Vera V2) / &amp;lt; 1.5.249 (Vera V3).&lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number.&lt;br /&gt;
&lt;br /&gt;
The members are:&lt;br /&gt;
* '''room_num''': (number) This is the number of the room the device is in. &lt;br /&gt;
* '''device_type''': (string) This is a string representing the type of the device.&lt;br /&gt;
* '''category_num''': (number) This is a category for the device.  See: [[Luup_Device_Categories]] for a list. &lt;br /&gt;
* '''device_num_parent''': (number) This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
* '''ip''': (string) If this device is IP based, this is the IP address. &lt;br /&gt;
* '''mac''': (string) If this device is IP based, this is the MAC address. &lt;br /&gt;
* '''user''': (string) If this device is IP based and requires http authentication, this is the username&lt;br /&gt;
* '''pass''': (string) If this device is IP based and requires http authentication, this is the password&lt;br /&gt;
* '''id''': (string) 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. &lt;br /&gt;
* '''embedded''': (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
* '''hidden''': (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
* '''invisible''': (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
* '''description''': (string) This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
* '''udn''': (string) This is the UDN for the UPnP device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example to log device #5's IP addess and its internal ID:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;for k, v in pairs(luup.devices) do&lt;br /&gt;
    for k2, v2 in pairs(v) do&lt;br /&gt;
        luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. &amp;quot;v2&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Room #1 is called: ' .. luup.rooms[1])&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the scene number. The members are: room_num (number), description(string), hidden(boolean)&lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function ''function_name'' (the first parameter), which must be passed as a string, will be called in ''seconds'' seconds (the second parameter), and will be passed the string ''data''. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead. &lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed. Normally it is called by a worker thread and is expected to return immediately.&lt;br /&gt;
&lt;br /&gt;
As of December 19, 2011, for all builds after 1.5.237, the 'thread' will be ignored.  Each Lua state has its own worker thread now, so all calls to call_delay and call_timer will occur in a separate thread.&lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
version: UI5 and above&lt;br /&gt;
&lt;br /&gt;
Checks whether a device has successfully completed it's startup sequence. If so, &amp;lt;tt&amp;gt;is_ready&amp;lt;/tt&amp;gt; returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a condition to the &amp;lt;tt&amp;gt;&amp;lt;incoming&amp;gt; block&amp;lt;/tt&amp;gt; that only processes data if &amp;lt;tt&amp;gt;is_ready(lul_device)&amp;lt;/tt&amp;gt; is &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; parameter, if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;incoming&amp;gt;&lt;br /&gt;
    if (luup.is_ready(lul_device) == false) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    doSomething(lul_device)&lt;br /&gt;
&amp;lt;/incoming&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device, which, if it's a string, is interpreted as a udn, and if it's a number, is the device number. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local lul_arguments = {}&lt;br /&gt;
lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;] = 50&lt;br /&gt;
lul_resultcode, lul_resultstring, lul_job, lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&lt;br /&gt;
                                                                                  &amp;quot;SetLoadLevelTarget&amp;quot;, lul_arguments,&lt;br /&gt;
                                                                                  5)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), device (string or number), [startup (bool)] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP service+variable will be set to value for device, which if it's a string, is interpreted as a udn, and if it's a number, as a device id. If there are events or notifications tied to the variable they will be fired. &lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'. If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: value (string), time (number) &lt;br /&gt;
&lt;br /&gt;
If the service+variable or device does not exist, it returns nothing. Otherwise it returns the value of the UPnP service+variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). You can assign just the value to a variable, as follows:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: attr_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value. Examples of attributes are 'mac', 'name', 'id', etc. &lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the WAP mobile phone plugin as an example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
    local lul_html = &amp;quot;&amp;lt;head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;title&amp;gt;Main&amp;lt;/title&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;/head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;body&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;Choose a room:&amp;lt;br/&amp;gt;\n&amp;quot;&lt;br /&gt;
    return lul_html&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nil), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a UDN and if a number as a device ID, ''function_name'' will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to ''function_name''. If variable is nil, ''function_name'' will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns:&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.device_supports_service doesn't work reliably: http://forum.micasaverde.com/index.php?topic=5600.0&lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (boolean), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to true if the device is failing. If device is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: boolean &lt;br /&gt;
&lt;br /&gt;
Returns true if it's past sunset and before sunrise. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: sleep  ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.sleep doesn't work reliably: http://bugs.micasaverde.com/view.php?id=1480&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: the first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If '''Timeout''' is specified, the function will timeout after that many seconds. The default value for '''Timeout''' is 5 seconds. If '''Username''' and '''Password''' are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Adds one child to &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
Pass in the &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; which you received from the &amp;lt;tt&amp;gt;luup.chdev.start&amp;lt;/tt&amp;gt; call. Give each child a unique id so you can keep track of which is which. You can optionally provide a &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; which the user sees in the user interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; is the UPnP device type, such as &amp;lt;tt&amp;gt;urn:schemas-upnp-org:device:BinaryLight:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;device_filename&amp;lt;/tt&amp;gt; is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any &amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;embedded&amp;lt;/tt&amp;gt; is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;parameters&amp;lt;/tt&amp;gt; are UPnP service,variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt; to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice&amp;lt;/tt&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
luup.chdev.append(device, children,&lt;br /&gt;
    string.format(&amp;quot;Input-%d&amp;quot;, i), string.format(&amp;quot;Input %d&amp;quot;, i),&lt;br /&gt;
    &amp;quot;urn:schemas-micasaverde-com:device:TemperatureSensor:1&amp;quot;, &amp;quot;D_TemperatureSensor1.xml&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;quot;, &amp;quot;urn:upnp-org:serviceId:TemperatureSensor1,CurrentTemperature=50&amp;quot;, true)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== Module: io  ==&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ip (string) port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port. &lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred. &lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called ''intercept'' previously so the data is passed. The time unit for ''timeout'' is seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false&lt;br /&gt;
&lt;br /&gt;
== Module: luup.job  ==&lt;br /&gt;
&lt;br /&gt;
=== function: status  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job_number (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: job_status (number), notes (string) &lt;br /&gt;
&lt;br /&gt;
If '''job_number''' is invalid the function returns ''-1''. If '''device''' is a string it is interpreted as an UDN, if it's a number, as a device ID.&lt;br /&gt;
&lt;br /&gt;
This is the list with all job statuses and their meaning:&lt;br /&gt;
* '''-1''': No job, i.e. job doesn't exist.&lt;br /&gt;
*  '''0''': Job waiting to start.&lt;br /&gt;
*  '''1''': Job in progress.&lt;br /&gt;
*  '''2''': Job error.&lt;br /&gt;
*  '''3''': Job aborted.&lt;br /&gt;
*  '''4''': Job done.&lt;br /&gt;
*  '''5''': Job waiting for callback. Used in special cases.&lt;br /&gt;
*  '''6''': Job requeue. If the job was aborted and needs to be started, use this special value.&lt;br /&gt;
*  '''7''': Job in progress with pending data. This means the job is waiting for data, but can't take it now.&lt;br /&gt;
&lt;br /&gt;
=== function: set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string), value (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This stores a setting for a job. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;job&amp;gt;&lt;br /&gt;
    luup.job.set(lul_job, &amp;quot;comments&amp;quot;, &amp;quot;In progress...&amp;quot;)&lt;br /&gt;
    local comments = luup.job.setting(lul_job, &amp;quot;comments&amp;quot;)&lt;br /&gt;
    luup.log(&amp;quot;job comments = &amp;quot; .. comments)&lt;br /&gt;
&amp;lt;/job&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: setting  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string) &lt;br /&gt;
&lt;br /&gt;
returns: value (string) &lt;br /&gt;
&lt;br /&gt;
This returns a setting for a job. &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/ZWave_Debugging</id>
		<title>ZWave Debugging</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/ZWave_Debugging"/>
				<updated>2012-03-15T04:19:34Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Advanced debugging for developers */ Add a link for Log levels page, since this [legacy] page comes up frequently in searches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
&lt;br /&gt;
== Custom device types or names based on Z-Wave ID's  ==&lt;br /&gt;
&lt;br /&gt;
In the configuration directory (normally /etc/cmh) is a file called zwave_products_sys.xml.  This contains a list of hardcoded settings for various ZWave devices.  The file is a series of values separated by tabs, with one entry on each line.  The format is:&lt;br /&gt;
&lt;br /&gt;
Manufacturer, Basic, Generic, Specific, ChildNumber, ProductType, ProductID, Devicefilename, ZWaveClass, Default name, Custom variables&lt;br /&gt;
&lt;br /&gt;
When a Z-Wave device is added it is compared against this file.  If the device's manufacturer ID, Basic ZWave device class, Generic device class, Specific device class, Product Type and Product ID match what's in the file, then rather than using the default device information, the device will use the UPnP XML device file in Devicefilename, and the ZWave class ZWaveClass, and will have the Default name, and the UPnP variables in &amp;quot;Custom variables&amp;quot;.  If any of Manufacturer, Basic, Generic, Specific, ChildNumber, ProductType, ProductID are not specified, it's considered a match.  If any of Devicefilename, ZWaveClass, Default name, Custom variables are not specified, the default values are used.  ChildNumber is when there's a multi-channel or multi-instance, this is what the child device will use.&lt;br /&gt;
&lt;br /&gt;
For example, for the Express controls 3-in-1 sensor which has manufacturer 001E and Product Type/ID are 2 and 1, the 3 embedded children are forced to be a motion sensor, light sensor, temperature sensor.&lt;br /&gt;
&lt;br /&gt;
 001E				1	2	1	D_MotionSensor1.xml	&lt;br /&gt;
 001E				2	2	1	D_LightSensor1.xml	&lt;br /&gt;
 001E				3	2	1	D_TemperatureSensor1.xml	&lt;br /&gt;
&lt;br /&gt;
zwave_products_sys.xml is distributed with each MIOS release, so any changes you make to it are lost on upgrade.  However, you can add your own rows in the file: zwave_products_user.conf (or zwave_products_user.xml?) in the same folder with the same format.  Those will be saved when you upgrade.&lt;br /&gt;
&lt;br /&gt;
To get the source values (manufacturer id, product type, etc.) grep for UpdateNode in LuaUPnP.log.&lt;br /&gt;
&lt;br /&gt;
== Easy Z-Wave Debugging  ==&lt;br /&gt;
&lt;br /&gt;
== Z-Wave specifics  ==&lt;br /&gt;
&lt;br /&gt;
Vera maps the command class BASIC to COMMAND_CLASS_SENSOR_BINARY, and responds to BASIC_GET or SENSOR_BINARY_GET with a _REPORT that has a value of 1 if Vera is running (ie it's always 1). &lt;br /&gt;
&lt;br /&gt;
== Advanced debugging for developers  ==&lt;br /&gt;
&lt;br /&gt;
Here are some hints for debugging Z-Wave protocol issues. You can access Vera by telnet, or if you already set a password, by ssh. &lt;br /&gt;
&lt;br /&gt;
First, be sure you check the box &amp;quot;verbose logs&amp;quot; under 'Advanced', 'Logging', or, from a console run /usr/bin/VerboseLogging.sh enable. &lt;br /&gt;
&lt;br /&gt;
The logs are in the directory /var/log/cmh. The first 2 digits are the 'log level'. The file: DCERouter.log contains the logging information from the core message router. The file: x-ZWave.log (where x is usually 9) contains all the logs from the Z-Wave module. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Log levels for data sent to the Z-Wave dongle&amp;lt;/u&amp;gt;:&amp;lt;br&amp;gt; 01 = critical errors&amp;lt;br&amp;gt; 02 = warnings&amp;lt;br&amp;gt; 04 = jobs &amp;lt;br&amp;gt;05 = warnings&amp;lt;br&amp;gt; 06 = variables (which indicates state changes)&amp;lt;br&amp;gt;07 = events&amp;lt;br&amp;gt;08 = commands&amp;lt;br&amp;gt;10 = status messages&amp;lt;br&amp;gt; 41 = data sent to the Z-Wave dongle&amp;lt;br&amp;gt;42 = data received from the Z-Wave dongle&amp;lt;br&amp;gt; 50 = luup log &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For commands run in a scene, the logs won't be getting data from the user, but from a scene, so to see this requests, you should grep for RunScene .&lt;br /&gt;
&lt;br /&gt;
For a complete list of the log levels, see the [[Luup_Loglevels|Luup Log Levels]] page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So, if you want to watch the router's logs and see what commands are being sent to the various devices, do this: &lt;br /&gt;
&lt;br /&gt;
'''cd /var/log/cmh&amp;lt;br&amp;gt; tail -f DCERouter.log | grep '^08'''' &lt;br /&gt;
&lt;br /&gt;
Now from Vera's dashboard, send commands to the devices and you'll see them in the log. The | grep '^08' means to filter only lines that start with 08, meaning log level 08 (&amp;quot;Commands&amp;quot;). tail -f means &amp;quot;follow the log&amp;quot;. To stop the tail and get back to the console, if you used ssh to login, you just press Ctrl+C. Unfortunately, often times telnet doesn't forward Ctrl+C, so, when using telnet you need to press Ctrl+Z and then type this to kill the tail command: killall tail; fg &lt;br /&gt;
&lt;br /&gt;
To watch the traffic on the Z-Wave serial bus, type: &lt;br /&gt;
&lt;br /&gt;
'''cd /var/log/cmh&amp;lt;br&amp;gt; tail -f 9-ZWave.log | grep '^41\|^42'''' &lt;br /&gt;
&lt;br /&gt;
which means show log level 41 or 42. Normally Vera is polling all the nodes every few seconds, so the logs fill up quickly with Z-Wave traffic from the polling. If you want to turn off automatic polling temporarily for this session so the logs aren't cluttered with polling traffic, type: &lt;br /&gt;
&lt;br /&gt;
'''/usr/bin/MessageSend localhost 0 9 1 966 5 0'''&amp;lt;br&amp;gt;(assuming the Z-Wave device is #9, as default, add 225 1 to make the change permanent) &lt;br /&gt;
&lt;br /&gt;
To force a poll of device 13, type:&amp;lt;br&amp;gt;'''/usr/bin/MessageSend localhost 0 9 1 966 2 13 5 UPDATE''' &lt;br /&gt;
&lt;br /&gt;
Next you can send &amp;quot;COMMAND: #191 - Send Code&amp;quot; to either a Z-Wave Node and the parameter 9 (Text) is a command, or send it to the Z-Wave device and it is a frame. The contents of text are a string of hex or decimal numbers separated with spaces, dashes or underscores, and hex values are preceded with 0x or x. So assuming a dimmable light is device 20 in node 15, either command below will dim it to 50%: &lt;br /&gt;
&lt;br /&gt;
'''/usr/bin/MessageSend localhost 0 9 1 191 9 &amp;quot;0 x13 15 0x3 0x26 0x1 50 4 1&amp;quot;''' #send data (func id x13) to node 15 command class 0x26 command 0x1 (set multi level) to 10% (size=3) with transmit options=4 and funcid=1 &lt;br /&gt;
&lt;br /&gt;
'''/usr/bin/MessageSend localhost 0 20 1 191 9 &amp;quot;x26 x1 50&amp;quot;''' #send the message directly to device 20 (the node, not 9 the Z-Wave dongle), so the node id and 'send data' frame are assumed &lt;br /&gt;
&lt;br /&gt;
--Luup update: wget &amp;quot;http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;amp;DeviceNum=1&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;amp;action=SendData&amp;amp;amp;Node=7&amp;amp;amp;Data=x26-x1-20&amp;quot; node 7 to 20% &lt;br /&gt;
&lt;br /&gt;
--Luup update: wget &amp;quot;http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;amp;DeviceNum=1&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;amp;action=SendData&amp;amp;amp;Data=0-x13-7-0x3-0x26-0x1-50-4-1&amp;quot; node 7 to 20% &lt;br /&gt;
&lt;br /&gt;
'''/usr/bin/MessageSend localhost 0 14 1 191 9 &amp;quot;x85 2 1&amp;quot;''' #Tell device 14 to report its association group 1 &lt;br /&gt;
&lt;br /&gt;
Ask node 4 (a thermostat) to report its temperature: &amp;quot;0 0x13 0x4 0x2 0x40 0x2 5 1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
You can also put an R in front of the binary data, and include the full frame, and it simulates a received frame on the serial api, rather than sending a frame. So to simulate receiving a FUNC_ID_ZW_APPLICATION_UPDATE from node 1 run:&amp;lt;br&amp;gt;'''/usr/bin/MessageSend localhost 0 9 1 191 9 &amp;quot;R0x1 0x9 0x0 0x49 0x84 0x1 0x3 0x2 0x2 0x1 0x38&amp;quot;'''&amp;lt;br&amp;gt; or an encrypted message from node 29 with FUNC_ID_APPLICATION_COMMAND_HANDLER, COMMAND_CLASS_SECURITY: '''&amp;quot;R0x01 0x1C 0x00 0x04 0x00 29 0x16 0x98 0x81 0xEC 0xE1 0x10 0x56 0xFC 0x13 0xDF 0x04 0x45 0x60 0x24 0xA8 0x43 0x89 0xE8 0x22 0x36 0x15 0xA9 0xB1 0x1C&amp;quot;''' &lt;br /&gt;
&lt;br /&gt;
--Luup update: wget &amp;quot;http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;amp;DeviceNum=1&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;amp;action=SendData&amp;amp;amp;Data=R0x1-0x16-0x0-0x4-0x0-0x4-0x10-0x8f-0x1-0x4-0x3-0x80-0x3-0x64-0x2-0x46-0x4-0x2-0x46-0x7-0x2-0x84-0x7-0x15&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Note that the logs will rotate regularly, meaning the DCERouter.log is archived as DCERouter.log.1.gz, and the old DCERouter.log.1.gz becomes DCERouter.log.2.gz. This is handled by the root cron process that runs /usr/bin/Rotate_Logs.sh. &lt;br /&gt;
&lt;br /&gt;
Every time you do something with Vera this results in a &amp;quot;job&amp;quot;. So let's assume you want to see what Vera is doing to configure a device. Type 'date' to see the date/time. Click the 'configure right now' button for the device. Type ''grep AddJob 9-ZWave.log'' to see all the log entries with 'AddJob' in them. Each one is given a number, and an abbreviated description. Say the first job after the 'date' is ''10 01/26/09 16:35:51.640 JobHandler::AddJob job#6&amp;amp;nbsp;:conf_jh#9 (0x00DD7390) P:40 S:0 &amp;amp;lt;00DD7390&amp;amp;gt; conf_jh#9 type ZWJob_ConfigureNode first 0'' This means it's job#6, the name 'conf_jh#9' means it's a configure job from the main job handler for node #9. You may see lots of other jobs right after #6 to do things like set the Version/Manufacturer, set Associations, etc., because the main configure job (#6) may spawn many other jobs. To see all the log entries for job #6, type ''grep &amp;quot;job#6&amp;quot; 9-ZWave.log''. Pay attention to the lines with m_eJobStatus which indicate the status, such as ''m_eJobStatus Job completed ok''. Let's say you want to see what data is being sent/received as part of job#6, you could do this: ''grep 'job#6\|^41\|^42\|^01\|^05' 9-ZWave.log'' so you see all log entries for job #6, all incoming/outgoing data, plus critical errors (1) and warnings (5). Look for the line 'ready to run' in the logs, which will indicate where job #6 is starting. The logs are color coded, and the less that comes with busybox in Vera doesn't support the -R parameter to view the logs in color, which is much easier to read. So, you can set a root password if you haven't already (type ''passwd''), and then use scp to copy the log files from Vera to another Linux/Mac/Windows with cygwin pc, and then run: ''grep 'job#6\|^41\|^42\|^01\|^05' 9-ZWave.log | less -R'' to see just the filtered portion of the logs in color. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; You can also use MessageSend to send Vera's normal DCE commands directly to devices. The ID's are the same as LinuxMCE. You can also '''tail -f DCERouter.log | grep '^08'''' &lt;br /&gt;
&lt;br /&gt;
From the console, if you want to see if a device is configured, enable verbose logging: '''/usr/bin/VerboseLogging.sh enable''', restart the Z-Wave device: '''/usr/bin/MessageSend localhost 0 9 7 1''' then wait for it to finish checking all the devices and '''grep UpdateNode 9-ZWave.log'''. You'll see: '''ZWaveJobHandler::UpdateNodes node 13 PK_DeviceTemplate 37 type ZWaveNonDimmableLight PK_Device 19 cap 0xc9 sec 0xc res 0x0 bas 0x4 gen 0x10 spe 0x3 config 1 LS (on/off)-45W-IPCAM classes 25,27,2b,2c,72,73,77,82,85,86,91,ef,''' config 1 means the device is configured. To reconfigure a device from the command line, send it command 776. For this device it would be: '''/usr/bin/MessageSend localhost 0 19 1 776'''. &lt;br /&gt;
&lt;br /&gt;
Reset the Z-Wave network:&amp;lt;br&amp;gt;'''/usr/bin/MessageSend localhost 0 9 1 776 51 SIS''' &lt;br /&gt;
&lt;br /&gt;
Do a 'soft reset' that doesn't lose any devices, but resets the dongle:&amp;lt;br&amp;gt; '''/usr/bin/MessageSend localhost 0 9 1 776 51 SOFT'''&lt;br /&gt;
&lt;br /&gt;
== Z-Wave Log Messages  ==&lt;br /&gt;
&lt;br /&gt;
=== Z-Wave LastNote  ===&lt;br /&gt;
&lt;br /&gt;
* '''Status=&amp;quot;Aborted&amp;quot; LastNote=&amp;quot;Timed out waiting for the node to reply&amp;quot;''' &lt;br /&gt;
* '''Status=&amp;quot;Aborted&amp;quot; LastNote=&amp;quot;Node is not configured&amp;quot;''' &lt;br /&gt;
* '''Status=&amp;quot;Aborted&amp;quot; LastNote=&amp;quot;Unable to get any information on node&amp;quot;''' &lt;br /&gt;
* '''Status=&amp;quot;Aborted&amp;quot; LastNote=&amp;quot;Transmit failed with code: 1&amp;quot;''': ''Code 1'' means that Vera received no acknowledge from the device. This can happen either because the node is out of range, there are interferences or because of routing issues.&lt;br /&gt;
&lt;br /&gt;
== Remote Upgrade with preserve settings  ==&lt;br /&gt;
&lt;br /&gt;
curl -k -s -S --fail --retry 3 -o /tmp/firmware.img http://download.controlmyhouse.net/betafirmware/ftp/wl500gP-1.0.543.trx &lt;br /&gt;
&lt;br /&gt;
/usr/bin/cmh-upgrade.sh &lt;br /&gt;
&lt;br /&gt;
== Z-Wave routing matrix  ==&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2099.msg8292#msg8292 and http://forum.micasaverde.com/index.php?topic=5130.0.&lt;br /&gt;
&lt;br /&gt;
== Z-Wave stress test  ==&lt;br /&gt;
&lt;br /&gt;
Start a stress test of the Z-Wave network with this command. Stop by doing a /usr/bin/Reload.sh &lt;br /&gt;
&lt;br /&gt;
wget &amp;quot;http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;amp;DeviceNum=1&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;amp;action=SendData&amp;amp;amp;Stress=X&amp;quot; &lt;br /&gt;
&lt;br /&gt;
where X is: &lt;br /&gt;
&lt;br /&gt;
 #define STRESS_TEST_CONSTANT		1  // Constant BASIC_SET's&lt;br /&gt;
 #define STRESS_TEST_NEIGHBOR_UPDATE	2  // Constant Neighbor updates&lt;br /&gt;
 #define STRESS_TEST_WATCHDOG		3  // Constant Watchdog checks -- bugs in the Z-Wave serial API cause this to crash&lt;br /&gt;
 #define STRESS_TEST_SOFT_RESET		4  // Constant soft resets&lt;br /&gt;
&lt;br /&gt;
== Dead battery operated devices  ==&lt;br /&gt;
&lt;br /&gt;
Vera does not flag malfunctioning battery operated devices on the GUI.&lt;br /&gt;
&lt;br /&gt;
Use the following code to log all malfunctioning battery operated devices to a file:&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5100.msg28346#msg28346&lt;br /&gt;
&lt;br /&gt;
Use the following code to get email notifications about malfunctioning battery operated devices:&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5130.0&lt;br /&gt;
&lt;br /&gt;
== Demo Mode ==&lt;br /&gt;
&lt;br /&gt;
Normally the state of a device changes after the Z-Wave command completes.  If, for demos, you want to be able to show the state change immediately, whether or not the job actually succeeds, open this URL:&lt;br /&gt;
&lt;br /&gt;
http://__ip_of_vera__:3480/data_request?id=lu_variableset&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:HaDevice1&amp;amp;Variable=SetState&amp;amp;Value=1&lt;br /&gt;
&lt;br /&gt;
It takes effect on the next reload.&lt;br /&gt;
&lt;br /&gt;
== Not getting status changes with door locks, or door locks out of sync  ==&lt;br /&gt;
&lt;br /&gt;
This is a commonly reported problem.  To debug this:&lt;br /&gt;
&lt;br /&gt;
(1) Turn on verbose logging: click Advanced from the tool box, logs tab.&lt;br /&gt;
&lt;br /&gt;
(2) Temporarily turn off polling so the logs don't have a bunch of background traffic: uncheck the poll nodes from the Z-Wave/options tab and click save.  You can turn polling back on when you're done&lt;br /&gt;
&lt;br /&gt;
(3) Wait a couple minutes after saving for Vera to settle down so the logs aren't going like crazy.  &lt;br /&gt;
&lt;br /&gt;
(4) Get Putty, a free Windows ssh client.  Just google for putty download.  You don't need to install it, just save it to your desktop.  Run it, put Vera's IP in the host name, leave SSH checked and click Open.  The user name is '''root''' and the password is on the bottom of Vera; it's the same as the wifi password or house id.  &lt;br /&gt;
&lt;br /&gt;
(5) Once you're logged in, type this command: &lt;br /&gt;
   &lt;br /&gt;
   tail -f /var/log/cmh/LuaUPnP.log | grep '^4\|^01\|HandlePoll\|^06'&lt;br /&gt;
&lt;br /&gt;
(6) You'll be following (tailing) Vera's logs.  grep is a filter to limit what you see to lines that start with 4 (which are the raw Z-Wave traffic--41 is traffic sent to Vera's Z-Wave chip, 42 is from the Z-Wave chip), lines that start with 01 are critical errors, lines that start with 06 are state changes, like lock/unlock, and lines containing the word HandlePoll indicate how Vera is handling any incoming data.  See [[Luup_Loglevels]]  If your tail command terminates, it means the logs rotated.  Hit the up arrow to bring the command up again, and enter to restart it.&lt;br /&gt;
&lt;br /&gt;
(7) Confirm that it's working by turning on and off a light from Vera's dashboard.  You should see some ZWave traffic (41 and 42 lines), and a status change (06 lines) for Target and Status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(8) Now have someone go next to the lock.  Before they do anything hit enter a few times to add some blank space so you can clearly see if there's new log activity.  If there's no log activity at all, not even 41 and 42 lines, that means there's no Z-Wave traffic.  So the lock is not sending Vera any messages.  If you see traffic, you should also see a status change (06 line) to indicate the door is now locked or unlocked.  If you don't, copy what you see in putty by just highlighting it with the mouse.  Putty automatically copies anything you copy into the clipboard.  Paste it into an email you send to support.&lt;br /&gt;
&lt;br /&gt;
== Manual routing ==&lt;br /&gt;
&lt;br /&gt;
If you are using Z-Wave 3.20, you can go to the advanced settings for a device, add a variable with the service id: urn:micasaverde-com:serviceId:ZWaveDevice1 and the variable name: ManualRoute and the value is a dot separated list of Z-Wave node ID's, just like the AutoRoute variable.  The Auto route variable may be something like this: &amp;quot;2-20x,7-59x,2.7-78&amp;quot;.  This means there are 3 routes found.  #1 uses node 2 as an intermediary, and it has a 'score' of 20.  The score is a measure of latency and accuracy, the lower number is better.  The 'x' that follows means the last attempt to use it failed, so it won't be used anymore.  The next route uses node #7, it scored worse, and also failed.  The 3rd route uses node 2 &amp;amp; 7.  It had the worst score (78), but it's currently working (no x).&lt;br /&gt;
&lt;br /&gt;
== Very large Z-Wave networks ==&lt;br /&gt;
&lt;br /&gt;
As part of the Heal/Repair process, each Z-Wave node is asked to discover all its neighbors.  This is a standard Z-Wave function and is built into the Z-Wave module and is performed the same way on all Z-Wave controllers.  The problem is that the amount of time it takes the Z-Wave network to perform this function grows exponentially based on the number of Z-Wave nodes.  So in a really large Z-Wave network, with say 150 nodes, it can take more than 10 minutes per node to do the discovery, which means the heal process can take days.  And during the Z-Wave node discovery the entire Z-Wave network is unavailable.  We have a built-in watchdog, though, so that after 10 minutes it aborts the neighbor node discovery.  Therefore, for large networks, the heal process may not complete at all and Z-Wave's built-in routing may never work.  There is a solution which is to use MIOS routing instead.  To do this, you need to build a network with the newer Z-Wave standard, 3.20.  Go into Setup, Z-Wave Settings, Options.  If the Version is not already 3.20, then check the option: Use Z-Wave version 3.20 instead of 2.78, then click save, then wait 5 minutes for it to re-flash the built-in Z-Wave chip, then go back into Setup, Z-Wave Settings, Advanced, and choose Reset Z-Wave network.  After a minute, confirm the version is 3.20.  Now check the option under Options &amp;quot;Use MiOS routing instead of Z-Wave (requires 4.5)&amp;quot;, and uncheck &amp;quot;Limit neighbors to Z-Wave discovery (requries MiOS routing)&amp;quot;.  Then click Save.  Pair your Z-Wave devices as normal.  When you are all finished, do a repair network by choosing Z-Wave Settings, Repair, and click 'Go'.  The Repair may take longer, however once it completes, you should be able to get a larger Z-Wave network to operate than you otherwise would.&lt;br /&gt;
&lt;br /&gt;
== Association ==&lt;br /&gt;
&lt;br /&gt;
Z-Wave associations for a device are stored in the UPNP Variable service: urn:micasaverde-com:serviceId:ZWaveDevice1 variable: AssociationSet.  You can view this by clicking the settings for a device, going to the advanced tab, and finding the AssociationSet variable.  The associations are ; delimited, with the first digit being the group number followed by a comma separated list of nodes to be associated with that group.  Note these are Z-Wave node ID's, not device ID's (ie the 'altid' in the UI).  For multi-channel there is a . following the node id with the endpoint id.  Example: 1,3.4,7;2,5.1,8  meaning group #1, node #3 endpoint #4, node #7 is non-multi-channel, group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
== Node version ==&lt;br /&gt;
&lt;br /&gt;
The version info variable contains the version data reported by the node, like this: 3,2,78,3,62  Which is the library type, the zwave version &amp;amp; sub version, and the manufacturer version and sub version.  So this node is running Z-Wave 2.78, manufacturer version 3.62.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T05:19:03Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: padding between some of the Devices to aid readability.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=On/Off Switch=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device Category 3,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:BinaryLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:SwitchPower1''||''Status''||If the device is on, the value is ''1'', otherwise it's ''0''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Dimmable Light=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 2, &lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:DimmableLight:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, ''LoadLevelStatus'' indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:Dimming1''||''LoadLevelStatus''||If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from ''0-100'' indicating a percentage of brightness.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Thermostat=&lt;br /&gt;
&lt;br /&gt;
==Device category==&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;30%&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Other Devices or Services=&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Weather Plugin=&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T05:12:24Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Dimmable Light */ Table-ize the display of variables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device Category 3,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:BinaryLight:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:SwitchPower1''||''Status''||If the device is on, the value is ''1'', otherwise it's ''0''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device category 2, &lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:DimmableLight:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, ''LoadLevelStatus'' indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:Dimming1''||''LoadLevelStatus''||If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from ''0-100'' indicating a percentage of brightness.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin  ===&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T04:59:08Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* On/Off Switch */ Table-ize the variable listings so it's easier to see.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device Category 3,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:BinaryLight:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:SwitchPower1''||''Status''||If the device is on, the value is ''1'', otherwise it's ''0''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin  ===&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T04:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Thermostat */ Add an example section, table-ize the variables to make it clearer to users.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
===Device category===&lt;br /&gt;
Device category 5,&lt;br /&gt;
UPnP device id: ''urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1''&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
{|  width=&amp;quot;85%&amp;quot; cellpadding=&amp;quot;10%&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! align=&amp;quot;left&amp;quot;|Service!! align=&amp;quot;left&amp;quot;|Variable!! align=&amp;quot;left&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''||''ModeStatus''||This indicates the current operating mode and will be one of the following basic values: &lt;br /&gt;
* ''Off''&lt;br /&gt;
* ''HeatOn''&lt;br /&gt;
* ''CoolOn''&lt;br /&gt;
* ''AutoChangeOver''&lt;br /&gt;
&lt;br /&gt;
In addition to the basic modes, some thermostats may also support the following modes:&lt;br /&gt;
* ''InDeadBand''&lt;br /&gt;
* ''AuxHeatOn''&lt;br /&gt;
* ''EconomyHeatOn''&lt;br /&gt;
* ''EmergencyHeatOn''&lt;br /&gt;
* ''AuxCoolOn''&lt;br /&gt;
* ''EconomyCoolOn''&lt;br /&gt;
* ''BuildingProtection''&lt;br /&gt;
* ''EnergySavingsHeating''&lt;br /&gt;
* ''EnergySavingsCooling'' &lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''||''CurrentSetpoint''||This indicates the current heat set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''||''CurrentSetpoint''||This indicatea the current cool set point.&lt;br /&gt;
|-&lt;br /&gt;
|''urn:upnp-org:serviceId:TemperatureSensor1''||''CurrentTemperature''||This indicates the current ambient temperature.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current temperature&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local outsideTemp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;, &amp;quot;CurrentTemperature&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin  ===&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T04:13:47Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* On/Off Switch */ Add examples for SwitchPower1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting whether the Switch/Light is on or off&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local switchOnOff = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 37)&lt;br /&gt;
    if (switchOnOff == &amp;quot;1&amp;quot;) then&lt;br /&gt;
      -- Switch is on&lt;br /&gt;
      ...&lt;br /&gt;
    end if&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Switch be turned on.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
Device category: 5, UPnP device id: urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''  Variable name: ''ModeStatus''&lt;br /&gt;
&lt;br /&gt;
This indicates the current operating mode and will be one of the following basic values: Off, HeatOn, CoolOn, AutoChangeOver.  In addition to the basic modes, some thermostats may also support the following modes: InDeadBand, AuxHeatOn, EconomyHeatOn, EmergencyHeatOn, AuxCoolOn, EconomyCoolOn, BuildingProtection, EnergySavingsHeating, EnergySavingsCooling&lt;br /&gt;
 &lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
These indicate the current heat/cool set points.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSensor1''  Variable name: ''CurrentTemperature''&lt;br /&gt;
&lt;br /&gt;
This indicates the current ambient temperature.&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin  ===&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2012-02-11T04:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Dimmable Light */ Add examples for dealing with the DimmableLight:1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
* Getting the current light/load level&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    local lightLevel = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelStatus&amp;quot;, 37)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Request that the Dimmer be set to 50% light/load level.   This will, eventually, set the variable after the device has responded to the request&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
Device category: 5, UPnP device id: urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''  Variable name: ''ModeStatus''&lt;br /&gt;
&lt;br /&gt;
This indicates the current operating mode and will be one of the following basic values: Off, HeatOn, CoolOn, AutoChangeOver.  In addition to the basic modes, some thermostats may also support the following modes: InDeadBand, AuxHeatOn, EconomyHeatOn, EmergencyHeatOn, AuxCoolOn, EconomyCoolOn, BuildingProtection, EnergySavingsHeating, EnergySavingsCooling&lt;br /&gt;
 &lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
These indicate the current heat/cool set points.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSensor1''  Variable name: ''CurrentTemperature''&lt;br /&gt;
&lt;br /&gt;
This indicates the current ambient temperature.&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin  ===&lt;br /&gt;
&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''. So I create a new Scene and add the following to the Luup Scene: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37'' Line 2 compares the returned variable to ''Showers'' If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level) Otherwise, it turns the lamp Off &lt;br /&gt;
&lt;br /&gt;
What good is this? Nothing past testing but it would be a good method to close the garage door if it is raining. &lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene every xx minutes or hours. Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Apps.mios_Developer%27s_Guide</id>
		<title>Apps.mios Developer's Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Apps.mios_Developer%27s_Guide"/>
				<updated>2012-01-07T21:49:42Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Add the standard Development category to the page, so it's a little easier to find.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''apps.mios.com''' is the new MiOS plugins marketplace for plugins compatible with UI5. It allows developers to easily create and publish their plugins. &lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Plugin Info ===&lt;br /&gt;
&lt;br /&gt;
==== Plugin Information ====&lt;br /&gt;
&lt;br /&gt;
*Description: The description that will appear next to the title in the Marketplace. &lt;br /&gt;
*Instructions URL: URL to the documentation page of this plugin, which should contain instructions for plugin configuration and usage notes. &lt;br /&gt;
*Visibility: For plugins intended to be made available to the public, the visibility should be ''public''. &lt;br /&gt;
*License: [http://en.wikipedia.org/wiki/Gpl GPL3], [http://en.wikipedia.org/wiki/BSD_licenses BSD], [http://en.wikipedia.org/wiki/Proprietary_software proprietary]&lt;br /&gt;
&lt;br /&gt;
==== UPnP Data ====&lt;br /&gt;
&lt;br /&gt;
This is the necessary information for creating the plugin device.&amp;amp;nbsp; If your plugin will have more than one device file, MiOS will use the information here to create the main plugin device.&amp;amp;nbsp; For the ''Elk Alarm Panel Plugin'' the main device is the panel device. &lt;br /&gt;
&lt;br /&gt;
[[Image:UPnP Data.png]] &lt;br /&gt;
&lt;br /&gt;
=== UPnP ===&lt;br /&gt;
&lt;br /&gt;
==== Plugin Devices ====&lt;br /&gt;
&lt;br /&gt;
*The first three fields are the ones from UPnP Data.&amp;amp;nbsp; This is the necessary information for creating the plugin device.&amp;amp;nbsp; If your plugin will have more than one device file, MiOS will use the information here to create the main plugin device.&amp;amp;nbsp; For the ''Elk Alarm Panel Plugin'' the main device is the panel device. &lt;br /&gt;
*Invisible: An invisible device is ''for internal use only'' and won't be presented to the user. An example for this is the ''Insteon Network'' device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Plugin Files ===&lt;br /&gt;
&lt;br /&gt;
Here you can add, remove, edit, upload and download the files used by the plugin.&amp;amp;nbsp; This is an interface for the SVN repository where the files are stored.&amp;amp;nbsp; To revert the files to a previous version, open the log and select which version to revert to. &lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT&amp;amp;nbsp;:''' When you add .lua files to the plugin, add them as '''Miscellaneous files'''.&amp;amp;nbsp; Do not add them as Lua files because if you do, LuaUPnP will load them into their lua state and run them as stand alone files in addition to merging them into the implementation. &lt;br /&gt;
&lt;br /&gt;
[[Image:Apps mios plugin files.png]] &lt;br /&gt;
&lt;br /&gt;
Pressing the Edit button will open the editor. For the device, service and implementation files there are wizards available for editing the files. &lt;br /&gt;
&lt;br /&gt;
=== Versions ===&lt;br /&gt;
&lt;br /&gt;
==== Releases ====&lt;br /&gt;
&lt;br /&gt;
This is the list with all the released or pending for approval plugin versions. &lt;br /&gt;
&lt;br /&gt;
==== Add Release ====&lt;br /&gt;
&lt;br /&gt;
*Platform: The target platform for the plugin. While most plugins will very likely target all the platforms, some plugins need separate versions for different platforms. &lt;br /&gt;
*Compatible firmware: Some plugins require features present only in newer firmwares versions to run. Others did things that were later incorporated in MiOS, so are now obsolete. These versions must be specified here. &lt;br /&gt;
*Dev, Alpha, Beta, RC: these are some of the software development phases. Only RC (Release Candidate) versions can be submitted for approval.&lt;br /&gt;
&lt;br /&gt;
After the version has been added to the Releases list, RC versions can be submitted for approval. Someone from Mi Casa Verde will have a look at the plugin and check for malicious code, and test it a little to make sure that it doesn't affect the stability or proper functioning of MiOS. If everything is OK, the plugin will be approved and it will become available to install for the targeted public (selected in the ''Visibility'' drop-down). &lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
&lt;br /&gt;
Versions are snapshots of the plugin, i.e. how the plugin looked at a particular SVN revision. It's recommended to create a version for every milestone or development phase reached, so that you can go back to it if something went wrong in the subsequent revisions. &lt;br /&gt;
&lt;br /&gt;
==== Publish ====&lt;br /&gt;
&lt;br /&gt;
Here you can publish the plugin in its current state and assign it a version. The comments will be added after the version so that you can create versions like ''1.4 Holiday Edition''. If a file contains sensitive data (e.g. a PIN code) it is recommended to encrypt it. &lt;br /&gt;
&lt;br /&gt;
== Steps for releasing a plugin ==&lt;br /&gt;
&lt;br /&gt;
#After you created the plugin and uploaded the files open the '''Versions''' page. &lt;br /&gt;
#On the bottom of the page enter the ''Major'' version number, the ''Minor'' version number and optionally a version ''comment'', then click '''Publish'''. The published version will appear in the ''Versions'' box. &lt;br /&gt;
#In the '''Add Release''' box select the published version from the ''RC'' drop-down list and optionally select a ''Platform'' and enter a ''Compatible firmware''. Click '''Add Release'''. The release will appear in the ''Releases'' box. &lt;br /&gt;
#In the '''Releases''' box click on '''Request approval'''. &lt;br /&gt;
#Someone from Mi Casa Verde will check the plugin for malicious code or poorly written code that will affect the MiOS stability, and if everything is OK it will be approved.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-10-08T15:25:01Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Misc actions */ Refactor sub-sections, add Thermostat UserOperatingMode1 example per forum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if (tonumber(lul_temp) &amp;lt; 26.6) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if ((tonumber(lul_temp) &amp;lt; 26.6&lt;br /&gt;
    and tonumber(lul_temp) &amp;gt; 25)&lt;br /&gt;
    or tonumber(lul_temp) &amp;lt; 23) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  return luup.is_night() == false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.is_night()) then&lt;br /&gt;
     return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Lighting and Switch Actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;0&amp;quot;}, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 5)&lt;br /&gt;
  if (lul_tmp == &amp;quot;1&amp;quot;) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;30&amp;quot;}, 6)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
===Motion Sensor Actions===&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;, &amp;quot;Armed&amp;quot;, &amp;quot;1&amp;quot;, 7)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;, &amp;quot;Armed&amp;quot;, &amp;quot;0&amp;quot;, 7)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Scene Actions===&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;, &amp;quot;RunScene&amp;quot;, {SceneNum = &amp;quot;5&amp;quot;}, 0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
===Thermostat Actions===&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, {NewCurrentSetpoint = &amp;quot;68&amp;quot;},&lt;br /&gt;
                   19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, {NewCurrentSetpoint = &amp;quot;68&amp;quot;},&lt;br /&gt;
                   19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Change the Thermostat Operating mode device #19====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
luup.call_action(&amp;quot;urn:upnp-org:serviceId:HVAC_UserOperatingMode1&amp;quot;,&lt;br /&gt;
                 &amp;quot;SetModeTarget&amp;quot;, {NewModeTarget = &amp;quot;Off&amp;quot;},&lt;br /&gt;
                 19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Camera Actions===&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
  local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
  local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
  local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
  function move_up()&lt;br /&gt;
    luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
  end&lt;br /&gt;
 &lt;br /&gt;
  -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
  luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
  luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Misc Actions===&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
  t =&amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local t = os.date('*t')&lt;br /&gt;
  local current_second = t.hour * 3600 + t.min * 60 + t.sec   -- number of seconds since midnight&lt;br /&gt;
  local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
  local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
  if (current_second &amp;gt; min_time_in_seconds) and (current_second &amp;lt; max_time_in_seconds) then&lt;br /&gt;
    -- do something&lt;br /&gt;
  else&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2011-10-04T03:56:19Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* function: call_action */ Wrap the line a little...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Now running version: ' .. luup.version)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: device  ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device &lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;if( version_branch ~= 1 or version_major ~= 0 or version_minor &amp;lt; 843 ) then&lt;br /&gt;
    luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
    return false&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number, as found on the location tab in the setup UI.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.timezone doesn't work.&lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number. The members are: room_num (number), device_type (string), category_num (number), device_num_parent (number), ip (string), mac (string), id (string), description (string), udn (string). [See also: [[Lua Device Structure]].] Example to log device #5's IP addess and its internal ID:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
room_num: This is the number of the room the device is in. &lt;br /&gt;
&lt;br /&gt;
device_type: This is a string representing the type of the device.&lt;br /&gt;
&lt;br /&gt;
category_num: This is a category for the device.  See: [[Luup_Device_Categories]] for a list. &lt;br /&gt;
&lt;br /&gt;
device_num_parent: This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
&lt;br /&gt;
ip: If this device is IP based, this is the IP address. &lt;br /&gt;
&lt;br /&gt;
mac: If this device is IP based, this is the MAC address. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
embedded: (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
&lt;br /&gt;
hidden: (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
&lt;br /&gt;
invisible: (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
&lt;br /&gt;
description: This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
&lt;br /&gt;
udn: This is the UDN for the UPnP device. &lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;for k, v in pairs(lug_device) do&lt;br /&gt;
    for k2, v2 in v do&lt;br /&gt;
        luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. &amp;quot;v2&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Room #1 is called: ' .. luup.rooms[1])&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the scene number. The members are: room_num (number), description(string), hidden(boolean)&lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called in 'seconds' seconds, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead. &lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed. Normally it is called by a worker thread and is expected to return immediately. &lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
version: UI5 and above&lt;br /&gt;
&lt;br /&gt;
Checks whether a device has successfully completed it's startup sequence. If so, &amp;lt;tt&amp;gt;is_ready&amp;lt;/tt&amp;gt; returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a condition to the &amp;lt;tt&amp;gt;&amp;lt;incoming&amp;gt; block&amp;lt;/tt&amp;gt; that only processes data if &amp;lt;tt&amp;gt;is_ready(lul_device)&amp;lt;/tt&amp;gt; is &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; parameter, if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;incoming&amp;gt;&lt;br /&gt;
    if (luup.is_ready(lul_device) == false) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    doSomething(lul_device)&lt;br /&gt;
&amp;lt;/incoming&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device, which, if it's a string, is interpreted as a udn, and if it's a number, is the device number. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local lul_arguments = {}&lt;br /&gt;
lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;] = 50&lt;br /&gt;
lul_resultcode, lul_resultstring, lul_job, lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&lt;br /&gt;
                                                                                  &amp;quot;SetLoadLevelTarget&amp;quot;, lul_arguments,&lt;br /&gt;
                                                                                  5)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), device (string or number), [startup (bool)] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP service+variable will be set to value for device, which if it's a string, is interpreted as a udn, and if it's a number, as a device id. If there are events or notifications tied to the variable they will be fired. &lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'. If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: value (string), time (number) &lt;br /&gt;
&lt;br /&gt;
If the service+variable or device does not exist, it returns nothing. Otherwise it returns the value of the UPnP service+variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). You can assign just the value to a variable, as follows:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: attr_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value. Examples of attributes are 'mac', 'name', 'id', etc. &lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the WAP mobile phone plugin as an example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
    local lul_html = &amp;quot;&amp;lt;head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;title&amp;gt;Main&amp;lt;/title&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;/head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;body&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;Choose a room:&amp;lt;br/&amp;gt;\n&amp;quot;&lt;br /&gt;
    return lul_html&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nil), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a UDN and if a number as a device ID, ''function_name'' will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to ''function_name''. If variable is nil, ''function_name'' will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns:&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.device_supports_service doesn't work reliably: http://forum.micasaverde.com/index.php?topic=5600.0&lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (boolean), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to true if the device is failing. If device is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: boolean &lt;br /&gt;
&lt;br /&gt;
Returns true if it's past sunset and before sunrise. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: sleep  ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.sleep doesn't work reliably: http://bugs.micasaverde.com/view.php?id=1480&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: the first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If '''Timeout''' is specified, the function will timeout after that many seconds. The default value for '''Timeout''' is 5 seconds. If '''Username''' and '''Password''' are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Adds one child to &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
Pass in the &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; which you received from the &amp;lt;tt&amp;gt;luup.chdev.start&amp;lt;/tt&amp;gt; call. Give each child a unique id so you can keep track of which is which. You can optionally provide a &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; which the user sees in the user interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; is the UPnP device type, such as &amp;lt;tt&amp;gt;urn:schemas-upnp-org:device:BinaryLight:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;device_filename&amp;lt;/tt&amp;gt; is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any &amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;embedded&amp;lt;/tt&amp;gt; is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;parameters&amp;lt;/tt&amp;gt; are UPnP service,variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt; to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice&amp;lt;/tt&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
luup.chdev.append(device, children,&lt;br /&gt;
    string.format(&amp;quot;Input-%d&amp;quot;, i), string.format(&amp;quot;Input %d&amp;quot;, i),&lt;br /&gt;
    &amp;quot;urn:schemas-micasaverde-com:device:TemperatureSensor:1&amp;quot;, &amp;quot;D_TemperatureSensor1.xml&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;quot;, &amp;quot;urn:upnp-org:serviceId:TemperatureSensor1,CurrentTemperature=50&amp;quot;, true)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== Module: io  ==&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ip (string) port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port. &lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred. &lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called ''intercept'' previously so the data is passed. The time unit for ''timeout'' is seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false&lt;br /&gt;
&lt;br /&gt;
== Module: luup.job  ==&lt;br /&gt;
&lt;br /&gt;
=== function: status  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job_number (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: job_status (number), notes (string) &lt;br /&gt;
&lt;br /&gt;
If job_number is invalid the function returns -1. If device is a string it is interpreted as an UDN, if it's a number, as a device ID. &lt;br /&gt;
&lt;br /&gt;
=== function: set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string), value (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This stores a setting for a job. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;job&amp;gt;&lt;br /&gt;
    luup.job.set(lul_job, &amp;quot;comments&amp;quot;, &amp;quot;In progress...&amp;quot;)&lt;br /&gt;
    local comments = luup.job.setting(lul_job, &amp;quot;comments&amp;quot;)&lt;br /&gt;
    luup.log(&amp;quot;job comments = &amp;quot; .. comments)&lt;br /&gt;
&amp;lt;/job&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: setting  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string) &lt;br /&gt;
&lt;br /&gt;
returns: value (string) &lt;br /&gt;
&lt;br /&gt;
This returns a setting for a job. &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough</id>
		<title>Luup Somfy Walkthrough</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough"/>
				<updated>2011-09-05T15:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Step 5b: Polish up the startup sequence */ Line wrap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This page is for developers wanting to learn how to write a plugin.  If you simply want to use the Somfy plugin see: [[Somfy_Plugin]]&lt;br /&gt;
&lt;br /&gt;
This page walks through in detail the process of creating a Luup plugin to control the Somfy RS232 interface for motorized blinds as a sample.  The Somfy documentation (see: [http://www.blindshademotors.com/documents/accessories-special-applications/rs232-to-rts-compatability.pdf]) explains that you talk to the controller using RS232 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity.  The interface supports up to 16 blinds.  The communication is one-way only; there are no response codes or incoming data from the blinds when they change manually.  Here is the relevant section from the manual.&lt;br /&gt;
&lt;br /&gt;
 RS232 Operation&lt;br /&gt;
 1. Set RS232 communication settings to: 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity&lt;br /&gt;
 2. Use the ASCII protocol command string syntax: &amp;lt;!&amp;gt; &amp;lt;2 digit channel number&amp;gt; &amp;lt;Directional Command&amp;gt;&lt;br /&gt;
 3. The directional commands must be capital letters and are as follows:&lt;br /&gt;
   U: UP&lt;br /&gt;
   D: DOWN&lt;br /&gt;
   S: STOP&lt;br /&gt;
 4. Examples: Motor 2 Up: !02U&lt;br /&gt;
   Motor 5 Down: !05D&lt;br /&gt;
   Motor 1 Stop: !01S&lt;br /&gt;
&lt;br /&gt;
==Step 1: SSH into Vera==&lt;br /&gt;
&lt;br /&gt;
Since this device is so simple it may not be necessary to debug anything.  But we'll do this anyway.  You need to give Vera a root password, which is the administrator password to login directly.  Do this by either: a) from a command prompt in Windows, Linux or Mac type telnet [ip address of vera] and when you see the ''root@HomeControl:~#'' prompt enter: ''passwd'' and type in a password twice.  Then type exit.  Or b) In Vera's web ui click Advanced, Net &amp;amp; Wi-fi and the 'Advanced Configuration' link, and supply the password there.  Note, sometimes Windows Vista doesn't have the telnet utility installed, so you have to use step b.&lt;br /&gt;
&lt;br /&gt;
Once you have a root password set, you will no longer be able to use telnet to login to Vera, you must use ssh.  The reason you should use ssh to login for debugging, and not telnet, is because some of the useful key sequences, like Ctrl+C, don't work in telnet.&lt;br /&gt;
&lt;br /&gt;
Once you've setup a root password, from a Mac or Linux console type: ''ssh [ip of vera]''  From a Windows PC, download putty.exe here: [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html].  You don't need to install putty, just put the .exe on your desktop or in a folder.  When you run putty.exe, type in Vera's IP address and click 'open'.&lt;br /&gt;
&lt;br /&gt;
When you see ''login as:'', enter: ''root'' and then enter your password.  Now from the ''root@HomeControl:#'' prompt type:&lt;br /&gt;
&lt;br /&gt;
  cd /var/log/cmh&lt;br /&gt;
  tail -f LuaUPnP.log&lt;br /&gt;
&lt;br /&gt;
Do something in Vera's web ui and you'll see the logs go.  Whenever the system rotates the logs, meaning purges the log files because Vera's memory is limited for storing logs, your tail will end.  Press the 'up' arrow and hit 'enter' to display the tail command again and restart it.  Press Ctrl + c when you've confirm the logs are working ok.&lt;br /&gt;
&lt;br /&gt;
In Vera's web ui, choose Advanced, Logs, and check 'Verbose logging'.  This option will create large logs that have lots of information we may need for debugging.  It will stay checked for 24 hours and then automatically turn itself off so you're not creating unnecessarily large log files.&lt;br /&gt;
&lt;br /&gt;
==Step 2a: Add your device with the web generator tool==&lt;br /&gt;
&lt;br /&gt;
  --coming soon.  for now use step 2b.&lt;br /&gt;
&lt;br /&gt;
== Step 2b: Add your device by building the XML files by hand ==&lt;br /&gt;
&lt;br /&gt;
To do this you'll want a good text editor. I'm using, such as Notepad++ available here: [http://notepad-plus.sourceforge.net/uk/site.htm] by clicking Download, Download Notepad++ executable files, download and run the npp....Installer.exe file, and you may also want to download the 'XML plugin' from the download page, and unzip it putting the file \Program Files\Notepad++\plugins. &lt;br /&gt;
&lt;br /&gt;
In Vera's setup UI, go to Devices, Luup plugins, click 'Luup files' and download the files: &lt;br /&gt;
&lt;br /&gt;
''D_BinaryLight1.xml'' since there is no UPnP device specification for blinds, and blinds are essentially binary devices that are either up/down, we can implement the up/down using the same service that a light switch uses, and that way any UPnP control point that can control a light switch, will also be able to control blinds. &lt;br /&gt;
&lt;br /&gt;
''S_SwitchPower1.xml'' because when you open D_BinaryLight1.xml, you'll see that in the 'services' section, this is the filename (SCPDURL) for the SwitchPower service. &lt;br /&gt;
&lt;br /&gt;
[[Media:D_TestSerial.zip | ''D_TestSerial.xml'']] because this is a sample serial device we can use as a template. &lt;br /&gt;
&lt;br /&gt;
[[Media:I_TestSerial.zip | ''I_TestSerial.xml'']] because this is a sample implementation for our serial device. &lt;br /&gt;
&lt;br /&gt;
Open D_TestSerial.xml in your text editor and re-save it as a different name, such as D_SomfyBlinds.xml. Change the xml field deviceType to &amp;quot;urn:somfy-com:device:blinds:1&amp;quot; or use your own domain name instead of somfy-com. Change friendlyName to &amp;quot;Somfy Blind Controller&amp;quot;, manufacturer to &amp;quot;Somfy&amp;quot;, manufacturerURL to &amp;quot;somfy.com&amp;quot;, modelDescription to &amp;quot;16 port RS232 to Somfy blind interface&amp;quot;, modelName to &amp;quot;1810686&amp;quot; (the Somfy part number). modelURL and serialNumber and UPC aren't really important so you can just remove them. Add in their place a protocol tag with the value 'raw', and handlechildren (we'll explain this one later) with the value 1, like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;protocol&amp;gt;raw&amp;lt;/protocol&amp;gt;&lt;br /&gt;
  &amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 'raw' protocol is because the Somfy device doesn't have any particular low level protocol, like terminating blocks of data with a carriage return, etc. Remove all the tags in 'servicelist'. &lt;br /&gt;
&lt;br /&gt;
Change the filename in the ''implementationFile'' tag from I_TestSerial.xml to I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Open I_TestSerial.xml and delete the sample Lua code within the 'actionList' tag. We have to put some Lua code in the implementation file for the Luup engine to start it, so for now just put a placeholder in the 'functions' xml tag: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    luup.log(&amp;quot;Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lug_device[lul_device].ID)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and in the 'startup' xml tag, put: ''lug_startup'', like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;startup&amp;gt;lug_startup&amp;lt;/startup&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So we've created a Lua function, lug_startup, told the Luup engine to call it when the engine is starting up. The name lug_startup is arbitrary, it can be anything you want. Save the file as I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Back on Vera's setup ui under 'Luup files' you the first 'upload' button to upload D_SomfyBlinds.xml and the 2nd to upload I_SomfyBlinds.xml. Check ''Restart Luup after upload'' because the files won't be processed unless we restart the Luup engine, and click 'go'. Now leave your browser tab open at this page so that as we change the implementation file we can just click 'go' without having to select the files again. &lt;br /&gt;
&lt;br /&gt;
In another browser tab go to Vera's device page again and under 'Add device' put the new device filename ''D_SomfyBlinds.xml'' in the input box, and choose the room where the blind controller is located, click 'Add device'. You'll have a new, blank device in that room, so give it a description &amp;quot;Somfy Blind Controller&amp;quot;, then click 'save'. &lt;br /&gt;
&lt;br /&gt;
Note that if the Somfy device was bi-direction we should attempt to communicate with it during the startup sequence and the startup function should return false if the sequence failed, or true if it succeeded, followed by some comments and the name of the module, which information is shown to the user in the info panel. So: return false,'Interface not responding','Somfy Blind' or return true,'Initialized OK','Somfy Blind'&lt;br /&gt;
&lt;br /&gt;
==Step 3: Setup the port==&lt;br /&gt;
&lt;br /&gt;
Vera talks to serial devices using a serial port proxy that turns the serial port into a network port.  This way the serial port can reside anywhere on the network.  Here are 3 ways to connect Vera to the Somfy device:&lt;br /&gt;
&lt;br /&gt;
1.  Get the UC232R-10 usb-&amp;gt;serial adapter here: [http://www.futureelectronics.com/en/Pages/index.aspx]  Connect it to one of Vera's USB ports.  In Vera's web ui, click the 'save' button, which, even if the 'save' button is grayed out, causes the Luup engine to re-initialize and scan for new serial ports.  Wait 30 seconds.&lt;br /&gt;
&lt;br /&gt;
2.  Use any Windows COM port or USB-&amp;gt;serial port device.  Download [[Windows_Serial_Proxy]] and run it as explained there.  Wait 30 seconds after running it and it will exit after it has reported the port to the Luup engine.&lt;br /&gt;
&lt;br /&gt;
3.  Connect a Global Cache GC-100 to your network.  Wait 30 seconds or so for the Luup engine to find it.  This should happen automatically.  Bring up the GC100's setup page in your web browser; you can find the IP address in Vera's device page under the + sign, and set the baud/parity/etc. for the port to match.  In the case of the GC-100, this information is supplied to the GC-100 itself and the values in the Serial Port Configuration page have no effect.&lt;br /&gt;
&lt;br /&gt;
After you've done 1, 2 or 3, go to Devices, Luup plugins and click &amp;quot;Serial port configuration&amp;quot;.  The serial port should be on the list.  Use the pull-down's to set the serial port options: baud=9600, Data Bits=8, Stop Bits=1, Parity=none.  For the 'Use with device', select your Somfy Blind controller.  Choose 'Save'.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Test the port==&lt;br /&gt;
&lt;br /&gt;
First, make note of the device id for your Somfy blinds by clicking '+' next to the device in the device list.  Next, go to Devices, Luup Plugins, Test Luup code.  In the 'Device number' input box put the device number for the Somfy blinds.  This way whatever code we test uses the Lua instance for the Somfy blinds, which will be configured already to use the serial port.&lt;br /&gt;
&lt;br /&gt;
In the 'Code' input box, type: ''luup.io.write('!01U')'' and click 'Go'.  That is a command according to the Somfy specs, which should make motor #1 go up.  You can try other commands and click 'Go' each time.  If everything is working ok, skip to step 6.  If it's not working, you will want to do some debugging.  Here's some debug things to try:&lt;br /&gt;
&lt;br /&gt;
1.  Be sure you checked 'Verbose logging' in Step 1. In your ssh console (ie putty if you're using windows) enter ''tail -f LuaUPnP.log | grep '^5\|^01' '' where the | means to send the output through the grep utility, which will filter out only certain lines.  The ^ means 'lines that start with'.  Line that start with 5 are logs related to Lua, and lines that start with 01 are critical errors.  The \| means 'or' for grep.  Now go back and click 'go' again in the Test Luup window.  Return to the ssh console and you should see a line that starts with 51, which means data sent within Luup, that shows !01U, in this format: ''51      06/29/09 17:19:53.453   0x21 0x30 0x31 0x55 0xd 0xa (!01U\r\n)'', where the human-readable ascii text is in () at the end, following the binary/hex.  If you're going to be switching back and forth between the ssh console and web ui to do tests, then before you switch to the web ui, you can either hit 'enter' a few times in the ssh console to add some blank space, or press Ctrl+c and then 'up' followed by 'enter' to restart tail.  That way you've created some separation between existing log entries and new ones so you can clearly see what is happening when you click 'go'.  If you're not seeing anything, in the Test Luup window add the line ''lu_log('test somfy')'' above the luup.io.write.  You should see 'test somfy' get logged when you press 'go'.&lt;br /&gt;
&lt;br /&gt;
2.  Assuming you do see the line '51' log entry showing that the Luup engine is trying to send data, you may want to check the serial port itself.  You can go back to the 'serial port configuration' and remove the 'Somfy blind' device from the serial port so the Luup engine won't open the port.  Make a note of the network ip and port for the serial port.  Click 'Save' to save your changes.  Now from a command prompt run: ''telnet [ip] [port]''.  If you don't have telnet, open another putty session and click the 'telnet' radio box, put in the ip address and port and click 'open'. You should now be able to type the commands in the telnet session: ''!01U'' and see the blinds work.  If it still doesn't work, try connecting the blinds directly to your PC and using a terminal program, like Hyperterminal, to talk directly to the serial port and confirm the connections are ok.&lt;br /&gt;
&lt;br /&gt;
==Step 5: Create the child devices for the blinds ==&lt;br /&gt;
&lt;br /&gt;
In Luup, when you have an interface device which is able to control multiple devices this is represented as a tree where the interface is a 'virtual' device, that probably doesn't implement any actions itself, and multiple 'child devices' under the interface device for each device the interface can control.  The Somfy Blind controller is such a device because the 1 interface can control 16 blinds.  If it only controlled 1 blind, we wouldn't need to implement the parent/multiple child architecture, because we would have just 1 device which implemented the blind functions.  We also wouldn't need to create any functions in Lua and we'd simply have put the control protocol in the 'action' tags in the implementation XML.  But we want a parent 'Somfy interface' with up to 16 different child devices for each of the 16 blinds the device can control.  This means it's a bit more complicated, so we'll want to use Lua functions, like 'lug_startup'.&lt;br /&gt;
&lt;br /&gt;
The way to implement multiple children is with the 'Reporting child devices' commands documented in [[Luup_Lua_extensions]].  This is how a parent device, in this case the Somfy blind interface, reports to the Luup engine what child devices it has and what ID number it will use internally to keep track of each one.  Every device in Luup has an &amp;quot;ID&amp;quot; value which has no meaning to the Luup engine itself, but which is used by parent devices to keep track of the children.  Many interface devices have a way to get from them the list of child devices so the parent can manage the children automatically.  The Somfy doesn't.  So we have 2 choices: 1) Just automatically report 16 child devices since the interface supports 16 devices, or 2) Let the user indicate which Somfy blind numbers he has and report just those child devices.  The advantage of #1 is that it's very simple, but the drawback is that the user will see 16 blinds in his home, even if he only has 1.  So, we will do it with #2.  The first question is where to let the user store the list of blind numbers that are active.  The usual way to store this information is to create a UPnP service which contains variables for all the various parameters the user should specify to configure the device.  Creating a UPnP service description document and adding it to the device description is a lot of work to get only 1 parameter: a list of device numbers.  But, what we can do is instead just create a variable in Lua using some service id/variable we made up, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This won't be an 'official' UPnP variable and won't show up in a UPnP scanner.  But, it does show up in Vera's user interface as a variable the user can edit the value.  We want to be sure we set this to a default value if it's not already there so the user sees it in the UI and can change it.&lt;br /&gt;
&lt;br /&gt;
Now we'll add the Lua code to iterate through all the blinds and create the devices, which will go in the lug_startup function we created earlier.  We could put the code directly in the XML implementation file.  But that means saving/uploading the file each time, and is a bit more tedious.  It's often easier to debug it first in the 'Test Luup code' window.  So we'll this to test first.  First, put in the code box: ''lug_startup(123)'' but change the 123 to the actual device number of the Somfy blind, and click 'go'.  Switch back to the ssh console that is tail'ing the LuaUPnP.log.  You'll see that it logged ''Somfy blind #... starting up with ID''.  This is because we already created the lug_startup function in the implementation file, and in the code box we just called that function.  Now put this in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID=&amp;quot;01,02&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;,&amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    luup.log(&amp;quot;test2--Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lul_ID)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where 123 should be your actual device number for the device.  The Lua code in ''function lug_startup'' will cause the lug_startup function that was already in the implementation file to be replaced with this version, without actually executing the function (just updating it), so afterward we also have lug_startup(123) to actually run the new version we updated.  When you click 'go' you'll see in the ssh log that the it now says ''test2--Somfy blind'', so you can see the lug_startup function was replaced.  Note that any functions you create in the 'Test Luup Code' window will still stay in the Luup engine until you reload the Luup engine.  So if you type in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
click 'go', nothing will get logged.  If you then erase the code box and type: ''some_test()'' when you click 'go', you'll see &amp;quot;some_test&amp;quot; in the log.  If you want to update the some_test function, and run it at the same time, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test2&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  some_test()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you click 'go', you'll see &amp;quot;some_test2&amp;quot; be logged.  So we'll create a simple startup that creates all 16 blinds by putting this in the Test Luup code window:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
      luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''for i=1,16'' is runs the block before 'end' 16 times, assigning the variable 'i' to 1 to 16 each time.  We want the devices to be 0 padded to 2 digits, so 1 should be &amp;quot;01&amp;quot;.  This is because the ID which the Somfy needs is a zero-padded 2 digit number.  It also will make it easier to filter just the blinds we want to control as explained later.  The statement ''s = string.format(&amp;quot;%02d&amp;quot;, i)'' converts the numeric value 'i' to a string that is padded to decimal places.  This is documented in Lua (see [http://www.lua.org/pil/20.html#StringLib]).&lt;br /&gt;
&lt;br /&gt;
luup.chdev.start() takes as a parameter our device id (ie the parent device) and it tells the Luup engine we're going to start listing all our children.  It returns a handle which we pass in to to the other chdev_ functions.  luup.chdev.append() adds each child and it takes the parent device number, the handle from lu_chdev_start, the id the parent will use to identify the device (s=01, 02, etc.), and the device type.  This is a UPnP device.  We'll use the existing UPnP standard &amp;quot;Binary light&amp;quot; because this way every UPnP control point will treat the blinds as a light and show the user an 'on' and 'off' button.  We could create our own device type for blinds which had actions &amp;quot;open&amp;quot; and &amp;quot;close&amp;quot;, but then the UPnP Control Points (like the iPhone interface) would need to be updated to know how to present the user with blinds.  luup.chdev.sync() is called when we're done to synchronize the child device list with Luup's database, and create/remove any new/missing devices, and restart the Luup engine if devices were added or removed.  See: [[Luup_Lua_extensions]]&lt;br /&gt;
&lt;br /&gt;
Before you click 'go', restart your tail in the ssh window with: ''tail -f LuaUPnP.log | grep '^5\|^01\|^03\|^09\|^11' '' because the 03 logs indicate when the Luup engine stops and restart, the 09 logs show us when devices are created/deleted, and the 11 logs show when the child device functions are calls.  Now when you click 'go', you should see in the logs ''Child_Devices::AddChild'' is called 16 times, and then 16 times ''Child_Devices::ProcessChildDevice created device''.  You should also see lines starting with '03' that show the Luup engine is reloading since new devices were just created.  When it restarts, you'll see 16 new devices in the logs starting with 09.&lt;br /&gt;
&lt;br /&gt;
Now if you click 'go' again, you'll see 16 logs for ''Child_Devices::AddChild'', but no devices will be created or removed because the 16 devices were already created, and the parent/child device lists are still in sync.  We have the same 16 child devices with no new ones or removed ones.&lt;br /&gt;
&lt;br /&gt;
Now if you refresh Vera's web UI, you'll see the Somfy device has '16' embedded devices, each with &amp;quot;on&amp;quot; and &amp;quot;Off&amp;quot;.  The 'true' at the end of the luup.chdev.append means the child devices are 'embedded'.  That means when they're shown in Vera's web UI, they're all grouped together as one compound device.  If you changed the 'true' to a 'false', all 16 blinds would show up as completely separate devices.  This is really just a cosmetic difference.  The advantage to using 'false' (non-embedded) is that the user can put each blind in a different room.  In this case it's probably better to treat the devices as non-embedded, since it is likely the 16 blinds will be scattered around the house.  So change the true at the end of luup.chdev.append to a false.  Then click 'go'.  Now, the 16 blinds are removed, and re-added as non-embedded devices.  So, if you refresh Vera's web UI and go to devices, you'll 16 different blinds that you can put into different rooms, in addition to the &amp;quot;Somfy blind interface&amp;quot; device.&lt;br /&gt;
&lt;br /&gt;
Next, we'll update our Lua code to only create child devices that are specified in the &amp;quot;ID&amp;quot; parameter of the &amp;quot;Somfy blind interface&amp;quot; so that if the user doesn't have 16 devices he can specify just the ones he does have.  To make our coding easier, we'll document in the notes for the user that when specifying the list of blinds in the &amp;quot;ID&amp;quot; he must use 01,02, etc., rather than 1,2, etc. because by storing all child devices as 2 digits, we can do a simple search without having to actually parse the ID.  In other words, if we want to know if blind #1 is active, we can safely search the ID for 01 and know that it will only match if blind #1 is active.  If the user stored single digit blind numbers, like ''5,6,11'' then searching for '1' would give us a false positive and we'd need to write more Lua code to break the list apart.  This also makes it easier to send the blind commands because the Somfy protocol says the blind number must be 2 digits, so we won't need to pad the ID's with 0 for the Somfy device.  This is why we did the for loop with 16 text strings using string.format which would have given us normal, non-zero-padded numbers.&lt;br /&gt;
&lt;br /&gt;
Put a -- in front of the luup.chdev.append in the window and click 'go' again.  -- means &amp;quot;comments&amp;quot; in Lua, and lines starting with -- are ignored.  Therefore, by eliminating the luup.chdev.append, now the luup.chdev.sync will remove all 16 children since none were appended.  This way we can reload Vera's web UI, go to the devices page, and we won't have those 16 blinds anymore requiring us to provide a room.  Click '+' next to the Somfy blind interface, click 'Advanced' and in the BlindIds enter: '02,07,13', click 'save'.  Now in the 'Test Luup code' window enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
   child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
   for i = 1,16 do&lt;br /&gt;
     s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
     if (string.find(lul_ID,s) ~= nil) then&lt;br /&gt;
       luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
       luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
     end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the '123' to your actual device number.  Now when you click 'go' you'll see the logs indicate we only have 3 blinds with ID's 02, 07 and 13.  Since this part of the code is done, you can copy/paste this from the Luup test code window into the implementation.  '''IMPORTANT:''' Be sure the ''lug_startup(123)'' is NOT in your implementation file, or else your lug_startup function will be called twice at each startup: once by the Luup engine with the actual device number, and once when the startup functions are loaded into the Lua engine with your hard-coded number used for testing, which won't necessarily correspond to the real device number.  We also add the variable lul_prefix because the URTS version 1 takes an ! in the front of every command, whereas with version 2 it's a 2 digit number from 01 to 16.  So we'll default to 01, the default value for an URTS version 2, but we'll let the user change it.  We'll store this in a global variable, lul_prefix, so it's available for use in the other functions in our plugin.&lt;br /&gt;
&lt;br /&gt;
If you're editing the XML file by hand, you can save your changes and click 'go' in the Luup files upload page in your web browser to upload your changes.&lt;br /&gt;
&lt;br /&gt;
Every time you re-start the Luup engine, such as clicking 'Save', you'll see in the logs this startup sequence.&lt;br /&gt;
&lt;br /&gt;
==Step 5b: Polish up the startup sequence ==&lt;br /&gt;
&lt;br /&gt;
The the startup sequence as it is the user will always think the Somfy module loaded fine, even when it didn't, giving the user a false sense that everything was ok even when he hadn't yet specified basic parameters.&lt;br /&gt;
&lt;br /&gt;
Now, the code first checks for basic startup parameters, which are stored in UPNP variables, and sets them to a default value if they're not already specified.  You should at least set them an empty string because by setting them to something then the user will see them in the web user interface and be able to easily change them, as opposed to creating them again from scratch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
  if (lul_ID = nil) then&lt;br /&gt;
    lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, since this device uses an IO Port (ie a serial port, or an ethernet port, or a usb connection), we should check that the connection is specified and is active before doing the startup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
    luup.log('No port for Somfy', 1)&lt;br /&gt;
    luup.task('Choose the Serial Port for the URTSI', 2, 'Somfy Blind Interface', -1)&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there's a failure of any kind, we should call luup.task and put in some sort of description with the status code 2 (Error), and then 'return false'.  This way the user sees in the web panel that the module 'Somfy Blind Interface' is in an error condition and what the problem is (he didn't choose the serial port).  If we didn't do the 'return false', the user would think the Somfy module was ok since, when the startup function doesn't return false, the architecture assumes the module is running fine.  If we called return false, didn't call luup.task, then the user see that the module was failing, but would have only a generic &amp;quot;Startup sequence failed&amp;quot; without knowing the explicit reason.&lt;br /&gt;
&lt;br /&gt;
So now the startup sequence looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
&lt;br /&gt;
    if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
      luup.log('No port for Somfy', 1)&lt;br /&gt;
      luup.task('Choose the Serial Port for the URTSI',2,'Somfy Blind Interface', -1)&lt;br /&gt;
      return false&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      if (string.find (lul_ID,s) ~= nil) then&lt;br /&gt;
        luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
        luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &lt;br /&gt;
                          &amp;quot;urn:schemas-micasaverde-com:device:WindowCovering:1&amp;quot;,&lt;br /&gt;
                          &amp;quot;D_WindowCovering1.xml&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 6a: Implementation the actions in the web generator ==&lt;br /&gt;
&lt;br /&gt;
--coming soon--&lt;br /&gt;
&lt;br /&gt;
==Step 6b: Implementation the actions in the xml file ==&lt;br /&gt;
&lt;br /&gt;
The reason we added the ''&amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;'' tag to the Somfy blind interface's device file earlier is because we're going to put all the actions for the child devices (the blinds) within the main implementation file for the Somfy.  So, whenever an action comes in for a child device (a blind), the Lua code in the parent devices implementation file will handle it.  Replace the actionList tag in the implementation file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;actionList&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;serviceId&amp;gt;urn:upnp-org:serviceId:SwitchPower1&amp;lt;/serviceId&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;SetTarget&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;run&amp;gt;&lt;br /&gt;
        local lul_command = lul_prefix .. luup.devices[lul_device].id .. 'U\r'&lt;br /&gt;
        local lul_reverse = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:HaDevice1&amp;quot;, &amp;quot;ReverseOnOff&amp;quot;, lul_device)&lt;br /&gt;
&lt;br /&gt;
        if (lul_settings.newTargetValue == &amp;quot;1&amp;quot; or (lul_settings.newTargetValue == &amp;quot;0&amp;quot; and lul_reverse == &amp;quot;1&amp;quot;)) then&lt;br /&gt;
          lul_command = lul_prefix .. luup.devices[lul_device].id .. 'D\r'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (luup.io.write(lul_command) == false) then&lt;br /&gt;
          luup.log(&amp;quot;cannot send: &amp;quot; .. tostring(lul_command),1)&lt;br /&gt;
          luup.set_failure(true)&lt;br /&gt;
          return false&lt;br /&gt;
        end&lt;br /&gt;
      &amp;lt;/run&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/actionList&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This provides the implementation or the SetTarget UPnP action, which is what is sent when the user clicks 'on' or 'off' for a light switch, or 'open' or 'close' for blinds.  We store the command to send in the variable lul_command and put the 'local' keyword in front so the variable is only available while the 'SetTarget' action is running.  We also check the HADevice service's ReverseOnOff value.  As a convention in Luup, we created this as a common service that all home automation devices have, and the ReverseOnOff variable, if true, means reverse the usual on/off behavior, so on is off and off is on.  We did this because it's not uncommon for binary switches, particularly blinds, to be wired the wrong way, or for it to be subjective which position is on vs. off.  This way the user can add this variable for his configuration if the operation is backwards from what he would expect.  lu_SetCommFailure sets a &amp;quot;communication failure&amp;quot; flag for the device, which logs a critical error, and allows the user to see that the device is having problems.  Whenever the Luup engine reloads, such as clicking 'save', the flag is cleared again.&lt;br /&gt;
&lt;br /&gt;
Now when you click 'on' or 'off' for the blinds you'll see in the log it is sending the corresponding data to the blinds.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Lua_tips</id>
		<title>Lua tips</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Lua_tips"/>
				<updated>2011-09-04T22:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Syntax color the Lua code, fix a few typo's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
Lua is a very complete and powerful language, the full reference is at http://www.lua.org. This page attempts to help with common pitfalls, especially those that are likely to appear on scripting the MIOS system. &lt;br /&gt;
&lt;br /&gt;
== Get a default  ==&lt;br /&gt;
&lt;br /&gt;
It's customary for some functions to return a&amp;amp;nbsp;'''nil'''&amp;amp;nbsp;value to mean 'nothing'; for example, luup.variable_get() returns '''nil''' if you ask for a non-existant variable, or a wrong service or device. &amp;amp;nbsp;Unfortunately, using that '''nil''' to build a string causes an error.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
  luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This works perfectly if the device #5 supports the &amp;quot;Dimming&amp;quot; service and has a &amp;quot;LoadLevelTarget&amp;quot; variable; but if you have the wrong device, the whole script would simply fail at the next line, where it tries to concatenate a string with a '''nil''' value. &lt;br /&gt;
&lt;br /&gt;
A common solution is to use the '''or''' keyword to give your variable a default value:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5) or &amp;quot;-none-&amp;quot;&lt;br /&gt;
  luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Now, if anything gets wrong reading the value, your variable will have a value of &amp;quot;-none-&amp;quot;. &amp;amp;nbsp;In most cases, it's simpler to use the empty string &amp;quot;&amp;quot; as the default value. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Hold on to your locals  ==&lt;br /&gt;
&lt;br /&gt;
It's always good practice to avoid 'polluting' the global variable space. &amp;amp;nbsp;Any temporal variable should be defined with the '''local''' keyword. &amp;amp;nbsp;Note that making a variable '''local''' means it's accessible only within the current block, for example: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (value &amp;gt; 5) then&lt;br /&gt;
    local msg = &amp;quot;good!&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  luup.log(msg)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
This won't work correctly, the 'msg' is &amp;amp;nbsp;local to the 'then' block; it can't be accessed in any other context. &amp;amp;nbsp;The loop.log() function will be called using a global 'msg' variable, which is probably '''nil''', or even worse, could have the wrong value.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
But that also means you can define an outer block, and make your locals 'not so local'. &amp;amp;nbsp;For example:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  do&lt;br /&gt;
    local innerval = 0&lt;br /&gt;
&lt;br /&gt;
    function increment()&lt;br /&gt;
      innerval = innerval + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    function getit()&lt;br /&gt;
      return innerval&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In this example, 'innerval' is local to the outer block, which contains two functions. &amp;amp;nbsp;Both functions can access that variable; but no other code can. &amp;amp;nbsp;This is an example of encapsulation. &amp;amp;nbsp;Using this, you can be sure that no other code can mess with your variables. &amp;amp;nbsp;In this example, it's easy to see that innerval will only be incremented, there's no way to go backwards until the system is restarted.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In many cases in which you might want a global variable, it could be better to use a local variable for a bigger block, even a block that surrounds your whole module. &lt;br /&gt;
&lt;br /&gt;
== Mark your own turf  ==&lt;br /&gt;
&lt;br /&gt;
When you do have to use a global variable, keep in mind that any other code could access it and even modify it. &amp;amp;nbsp;We're not talking about malitious intentions, just about unintended interactions between two different parts of the code. likely written by different people. &lt;br /&gt;
&lt;br /&gt;
To reduce the probability of errors, a common technique is to use a prefix that is likely to be unique. &amp;amp;nbsp;For example, a plugin called &amp;quot;Energy Monitor&amp;quot; could start all global variables with 'enmon_'. &lt;br /&gt;
&lt;br /&gt;
Somewhat better is to join all global variables in a single global variable that holds a table: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  energymonitor = {}&lt;br /&gt;
  energymonitor.starttime = os.time()&lt;br /&gt;
  energymonitor.devicecount = 15&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Note that this is what Lua modules do: each one is defined as a single table.&amp;amp;nbsp; Even the standard library follows this convention, all string related functions are contained in the global 'string' table. &lt;br /&gt;
&lt;br /&gt;
One (current) limitation is that any function that you want to be called by Luup has to be global, not inside a global table. &amp;amp;nbsp;For those, the best way is to use a unique prefix.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough</id>
		<title>Luup Somfy Walkthrough</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Somfy_Walkthrough"/>
				<updated>2011-09-04T22:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Syntax color the Lua code, fix a few typo's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This page is for developers wanting to learn how to write a plugin.  If you simply want to use the Somfy plugin see: [[Somfy_Plugin]]&lt;br /&gt;
&lt;br /&gt;
This page walks through in detail the process of creating a Luup plugin to control the Somfy RS232 interface for motorized blinds as a sample.  The Somfy documentation (see: [http://www.blindshademotors.com/documents/accessories-special-applications/rs232-to-rts-compatability.pdf]) explains that you talk to the controller using RS232 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity.  The interface supports up to 16 blinds.  The communication is one-way only; there are no response codes or incoming data from the blinds when they change manually.  Here is the relevant section from the manual.&lt;br /&gt;
&lt;br /&gt;
 RS232 Operation&lt;br /&gt;
 1. Set RS232 communication settings to: 9600 Baud, 8 Data Bits, 1 Stop Bit, No Parity&lt;br /&gt;
 2. Use the ASCII protocol command string syntax: &amp;lt;!&amp;gt; &amp;lt;2 digit channel number&amp;gt; &amp;lt;Directional Command&amp;gt;&lt;br /&gt;
 3. The directional commands must be capital letters and are as follows:&lt;br /&gt;
   U: UP&lt;br /&gt;
   D: DOWN&lt;br /&gt;
   S: STOP&lt;br /&gt;
 4. Examples: Motor 2 Up: !02U&lt;br /&gt;
   Motor 5 Down: !05D&lt;br /&gt;
   Motor 1 Stop: !01S&lt;br /&gt;
&lt;br /&gt;
==Step 1: SSH into Vera==&lt;br /&gt;
&lt;br /&gt;
Since this device is so simple it may not be necessary to debug anything.  But we'll do this anyway.  You need to give Vera a root password, which is the administrator password to login directly.  Do this by either: a) from a command prompt in Windows, Linux or Mac type telnet [ip address of vera] and when you see the ''root@HomeControl:~#'' prompt enter: ''passwd'' and type in a password twice.  Then type exit.  Or b) In Vera's web ui click Advanced, Net &amp;amp; Wi-fi and the 'Advanced Configuration' link, and supply the password there.  Note, sometimes Windows Vista doesn't have the telnet utility installed, so you have to use step b.&lt;br /&gt;
&lt;br /&gt;
Once you have a root password set, you will no longer be able to use telnet to login to Vera, you must use ssh.  The reason you should use ssh to login for debugging, and not telnet, is because some of the useful key sequences, like Ctrl+C, don't work in telnet.&lt;br /&gt;
&lt;br /&gt;
Once you've setup a root password, from a Mac or Linux console type: ''ssh [ip of vera]''  From a Windows PC, download putty.exe here: [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html].  You don't need to install putty, just put the .exe on your desktop or in a folder.  When you run putty.exe, type in Vera's IP address and click 'open'.&lt;br /&gt;
&lt;br /&gt;
When you see ''login as:'', enter: ''root'' and then enter your password.  Now from the ''root@HomeControl:#'' prompt type:&lt;br /&gt;
&lt;br /&gt;
  cd /var/log/cmh&lt;br /&gt;
  tail -f LuaUPnP.log&lt;br /&gt;
&lt;br /&gt;
Do something in Vera's web ui and you'll see the logs go.  Whenever the system rotates the logs, meaning purges the log files because Vera's memory is limited for storing logs, your tail will end.  Press the 'up' arrow and hit 'enter' to display the tail command again and restart it.  Press Ctrl + c when you've confirm the logs are working ok.&lt;br /&gt;
&lt;br /&gt;
In Vera's web ui, choose Advanced, Logs, and check 'Verbose logging'.  This option will create large logs that have lots of information we may need for debugging.  It will stay checked for 24 hours and then automatically turn itself off so you're not creating unnecessarily large log files.&lt;br /&gt;
&lt;br /&gt;
==Step 2a: Add your device with the web generator tool==&lt;br /&gt;
&lt;br /&gt;
  --coming soon.  for now use step 2b.&lt;br /&gt;
&lt;br /&gt;
== Step 2b: Add your device by building the XML files by hand ==&lt;br /&gt;
&lt;br /&gt;
To do this you'll want a good text editor. I'm using, such as Notepad++ available here: [http://notepad-plus.sourceforge.net/uk/site.htm] by clicking Download, Download Notepad++ executable files, download and run the npp....Installer.exe file, and you may also want to download the 'XML plugin' from the download page, and unzip it putting the file \Program Files\Notepad++\plugins. &lt;br /&gt;
&lt;br /&gt;
In Vera's setup UI, go to Devices, Luup plugins, click 'Luup files' and download the files: &lt;br /&gt;
&lt;br /&gt;
''D_BinaryLight1.xml'' since there is no UPnP device specification for blinds, and blinds are essentially binary devices that are either up/down, we can implement the up/down using the same service that a light switch uses, and that way any UPnP control point that can control a light switch, will also be able to control blinds. &lt;br /&gt;
&lt;br /&gt;
''S_SwitchPower1.xml'' because when you open D_BinaryLight1.xml, you'll see that in the 'services' section, this is the filename (SCPDURL) for the SwitchPower service. &lt;br /&gt;
&lt;br /&gt;
[[Media:D_TestSerial.zip | ''D_TestSerial.xml'']] because this is a sample serial device we can use as a template. &lt;br /&gt;
&lt;br /&gt;
[[Media:I_TestSerial.zip | ''I_TestSerial.xml'']] because this is a sample implementation for our serial device. &lt;br /&gt;
&lt;br /&gt;
Open D_TestSerial.xml in your text editor and re-save it as a different name, such as D_SomfyBlinds.xml. Change the xml field deviceType to &amp;quot;urn:somfy-com:device:blinds:1&amp;quot; or use your own domain name instead of somfy-com. Change friendlyName to &amp;quot;Somfy Blind Controller&amp;quot;, manufacturer to &amp;quot;Somfy&amp;quot;, manufacturerURL to &amp;quot;somfy.com&amp;quot;, modelDescription to &amp;quot;16 port RS232 to Somfy blind interface&amp;quot;, modelName to &amp;quot;1810686&amp;quot; (the Somfy part number). modelURL and serialNumber and UPC aren't really important so you can just remove them. Add in their place a protocol tag with the value 'raw', and handlechildren (we'll explain this one later) with the value 1, like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;protocol&amp;gt;raw&amp;lt;/protocol&amp;gt;&lt;br /&gt;
  &amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 'raw' protocol is because the Somfy device doesn't have any particular low level protocol, like terminating blocks of data with a carriage return, etc. Remove all the tags in 'servicelist'. &lt;br /&gt;
&lt;br /&gt;
Change the filename in the ''implementationFile'' tag from I_TestSerial.xml to I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Open I_TestSerial.xml and delete the sample Lua code within the 'actionList' tag. We have to put some Lua code in the implementation file for the Luup engine to start it, so for now just put a placeholder in the 'functions' xml tag: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    luup.log(&amp;quot;Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lug_device[lul_device].ID)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and in the 'startup' xml tag, put: ''lug_startup'', like this: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;startup&amp;gt;lug_startup&amp;lt;/startup&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So we've created a Lua function, lug_startup, told the Luup engine to call it when the engine is starting up. The name lug_startup is arbitrary, it can be anything you want. Save the file as I_SomfyBlinds.xml. &lt;br /&gt;
&lt;br /&gt;
Back on Vera's setup ui under 'Luup files' you the first 'upload' button to upload D_SomfyBlinds.xml and the 2nd to upload I_SomfyBlinds.xml. Check ''Restart Luup after upload'' because the files won't be processed unless we restart the Luup engine, and click 'go'. Now leave your browser tab open at this page so that as we change the implementation file we can just click 'go' without having to select the files again. &lt;br /&gt;
&lt;br /&gt;
In another browser tab go to Vera's device page again and under 'Add device' put the new device filename ''D_SomfyBlinds.xml'' in the input box, and choose the room where the blind controller is located, click 'Add device'. You'll have a new, blank device in that room, so give it a description &amp;quot;Somfy Blind Controller&amp;quot;, then click 'save'. &lt;br /&gt;
&lt;br /&gt;
Note that if the Somfy device was bi-direction we should attempt to communicate with it during the startup sequence and the startup function should return false if the sequence failed, or true if it succeeded, followed by some comments and the name of the module, which information is shown to the user in the info panel. So: return false,'Interface not responding','Somfy Blind' or return true,'Initialized OK','Somfy Blind'&lt;br /&gt;
&lt;br /&gt;
==Step 3: Setup the port==&lt;br /&gt;
&lt;br /&gt;
Vera talks to serial devices using a serial port proxy that turns the serial port into a network port.  This way the serial port can reside anywhere on the network.  Here are 3 ways to connect Vera to the Somfy device:&lt;br /&gt;
&lt;br /&gt;
1.  Get the UC232R-10 usb-&amp;gt;serial adapter here: [http://www.futureelectronics.com/en/Pages/index.aspx]  Connect it to one of Vera's USB ports.  In Vera's web ui, click the 'save' button, which, even if the 'save' button is grayed out, causes the Luup engine to re-initialize and scan for new serial ports.  Wait 30 seconds.&lt;br /&gt;
&lt;br /&gt;
2.  Use any Windows COM port or USB-&amp;gt;serial port device.  Download [[Windows_Serial_Proxy]] and run it as explained there.  Wait 30 seconds after running it and it will exit after it has reported the port to the Luup engine.&lt;br /&gt;
&lt;br /&gt;
3.  Connect a Global Cache GC-100 to your network.  Wait 30 seconds or so for the Luup engine to find it.  This should happen automatically.  Bring up the GC100's setup page in your web browser; you can find the IP address in Vera's device page under the + sign, and set the baud/parity/etc. for the port to match.  In the case of the GC-100, this information is supplied to the GC-100 itself and the values in the Serial Port Configuration page have no effect.&lt;br /&gt;
&lt;br /&gt;
After you've done 1, 2 or 3, go to Devices, Luup plugins and click &amp;quot;Serial port configuration&amp;quot;.  The serial port should be on the list.  Use the pull-down's to set the serial port options: baud=9600, Data Bits=8, Stop Bits=1, Parity=none.  For the 'Use with device', select your Somfy Blind controller.  Choose 'Save'.&lt;br /&gt;
&lt;br /&gt;
==Step 4: Test the port==&lt;br /&gt;
&lt;br /&gt;
First, make note of the device id for your Somfy blinds by clicking '+' next to the device in the device list.  Next, go to Devices, Luup Plugins, Test Luup code.  In the 'Device number' input box put the device number for the Somfy blinds.  This way whatever code we test uses the Lua instance for the Somfy blinds, which will be configured already to use the serial port.&lt;br /&gt;
&lt;br /&gt;
In the 'Code' input box, type: ''luup.io.write('!01U')'' and click 'Go'.  That is a command according to the Somfy specs, which should make motor #1 go up.  You can try other commands and click 'Go' each time.  If everything is working ok, skip to step 6.  If it's not working, you will want to do some debugging.  Here's some debug things to try:&lt;br /&gt;
&lt;br /&gt;
1.  Be sure you checked 'Verbose logging' in Step 1. In your ssh console (ie putty if you're using windows) enter ''tail -f LuaUPnP.log | grep '^5\|^01' '' where the | means to send the output through the grep utility, which will filter out only certain lines.  The ^ means 'lines that start with'.  Line that start with 5 are logs related to Lua, and lines that start with 01 are critical errors.  The \| means 'or' for grep.  Now go back and click 'go' again in the Test Luup window.  Return to the ssh console and you should see a line that starts with 51, which means data sent within Luup, that shows !01U, in this format: ''51      06/29/09 17:19:53.453   0x21 0x30 0x31 0x55 0xd 0xa (!01U\r\n)'', where the human-readable ascii text is in () at the end, following the binary/hex.  If you're going to be switching back and forth between the ssh console and web ui to do tests, then before you switch to the web ui, you can either hit 'enter' a few times in the ssh console to add some blank space, or press Ctrl+c and then 'up' followed by 'enter' to restart tail.  That way you've created some separation between existing log entries and new ones so you can clearly see what is happening when you click 'go'.  If you're not seeing anything, in the Test Luup window add the line ''lu_log('test somfy')'' above the luup.io.write.  You should see 'test somfy' get logged when you press 'go'.&lt;br /&gt;
&lt;br /&gt;
2.  Assuming you do see the line '51' log entry showing that the Luup engine is trying to send data, you may want to check the serial port itself.  You can go back to the 'serial port configuration' and remove the 'Somfy blind' device from the serial port so the Luup engine won't open the port.  Make a note of the network ip and port for the serial port.  Click 'Save' to save your changes.  Now from a command prompt run: ''telnet [ip] [port]''.  If you don't have telnet, open another putty session and click the 'telnet' radio box, put in the ip address and port and click 'open'. You should now be able to type the commands in the telnet session: ''!01U'' and see the blinds work.  If it still doesn't work, try connecting the blinds directly to your PC and using a terminal program, like Hyperterminal, to talk directly to the serial port and confirm the connections are ok.&lt;br /&gt;
&lt;br /&gt;
==Step 5: Create the child devices for the blinds ==&lt;br /&gt;
&lt;br /&gt;
In Luup, when you have an interface device which is able to control multiple devices this is represented as a tree where the interface is a 'virtual' device, that probably doesn't implement any actions itself, and multiple 'child devices' under the interface device for each device the interface can control.  The Somfy Blind controller is such a device because the 1 interface can control 16 blinds.  If it only controlled 1 blind, we wouldn't need to implement the parent/multiple child architecture, because we would have just 1 device which implemented the blind functions.  We also wouldn't need to create any functions in Lua and we'd simply have put the control protocol in the 'action' tags in the implementation XML.  But we want a parent 'Somfy interface' with up to 16 different child devices for each of the 16 blinds the device can control.  This means it's a bit more complicated, so we'll want to use Lua functions, like 'lug_startup'.&lt;br /&gt;
&lt;br /&gt;
The way to implement multiple children is with the 'Reporting child devices' commands documented in [[Luup_Lua_extensions]].  This is how a parent device, in this case the Somfy blind interface, reports to the Luup engine what child devices it has and what ID number it will use internally to keep track of each one.  Every device in Luup has an &amp;quot;ID&amp;quot; value which has no meaning to the Luup engine itself, but which is used by parent devices to keep track of the children.  Many interface devices have a way to get from them the list of child devices so the parent can manage the children automatically.  The Somfy doesn't.  So we have 2 choices: 1) Just automatically report 16 child devices since the interface supports 16 devices, or 2) Let the user indicate which Somfy blind numbers he has and report just those child devices.  The advantage of #1 is that it's very simple, but the drawback is that the user will see 16 blinds in his home, even if he only has 1.  So, we will do it with #2.  The first question is where to let the user store the list of blind numbers that are active.  The usual way to store this information is to create a UPnP service which contains variables for all the various parameters the user should specify to configure the device.  Creating a UPnP service description document and adding it to the device description is a lot of work to get only 1 parameter: a list of device numbers.  But, what we can do is instead just create a variable in Lua using some service id/variable we made up, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This won't be an 'official' UPnP variable and won't show up in a UPnP scanner.  But, it does show up in Vera's user interface as a variable the user can edit the value.  We want to be sure we set this to a default value if it's not already there so the user sees it in the UI and can change it.&lt;br /&gt;
&lt;br /&gt;
Now we'll add the Lua code to iterate through all the blinds and create the devices, which will go in the lug_startup function we created earlier.  We could put the code directly in the XML implementation file.  But that means saving/uploading the file each time, and is a bit more tedious.  It's often easier to debug it first in the 'Test Luup code' window.  So we'll this to test first.  First, put in the code box: ''lug_startup(123)'' but change the 123 to the actual device number of the Somfy blind, and click 'go'.  Switch back to the ssh console that is tail'ing the LuaUPnP.log.  You'll see that it logged ''Somfy blind #... starting up with ID''.  This is because we already created the lug_startup function in the implementation file, and in the code box we just called that function.  Now put this in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID=&amp;quot;01,02&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;,&amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    luup.log(&amp;quot;test2--Somfy blind #&amp;quot; .. lul_device .. &amp;quot; starting up with ID &amp;quot; .. lul_ID)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where 123 should be your actual device number for the device.  The Lua code in ''function lug_startup'' will cause the lug_startup function that was already in the implementation file to be replaced with this version, without actually executing the function (just updating it), so afterward we also have lug_startup(123) to actually run the new version we updated.  When you click 'go' you'll see in the ssh log that the it now says ''test2--Somfy blind'', so you can see the lug_startup function was replaced.  Note that any functions you create in the 'Test Luup Code' window will still stay in the Luup engine until you reload the Luup engine.  So if you type in the code box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
click 'go', nothing will get logged.  If you then erase the code box and type: ''some_test()'' when you click 'go', you'll see &amp;quot;some_test&amp;quot; in the log.  If you want to update the some_test function, and run it at the same time, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function some_test()&lt;br /&gt;
    luup.log(&amp;quot;some_test2&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  some_test()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you click 'go', you'll see &amp;quot;some_test2&amp;quot; be logged.  So we'll create a simple startup that creates all 16 blinds by putting this in the Test Luup code window:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
      luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, true)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''for i=1,16'' is runs the block before 'end' 16 times, assigning the variable 'i' to 1 to 16 each time.  We want the devices to be 0 padded to 2 digits, so 1 should be &amp;quot;01&amp;quot;.  This is because the ID which the Somfy needs is a zero-padded 2 digit number.  It also will make it easier to filter just the blinds we want to control as explained later.  The statement ''s = string.format(&amp;quot;%02d&amp;quot;, i)'' converts the numeric value 'i' to a string that is padded to decimal places.  This is documented in Lua (see [http://www.lua.org/pil/20.html#StringLib]).&lt;br /&gt;
&lt;br /&gt;
luup.chdev.start() takes as a parameter our device id (ie the parent device) and it tells the Luup engine we're going to start listing all our children.  It returns a handle which we pass in to to the other chdev_ functions.  luup.chdev.append() adds each child and it takes the parent device number, the handle from lu_chdev_start, the id the parent will use to identify the device (s=01, 02, etc.), and the device type.  This is a UPnP device.  We'll use the existing UPnP standard &amp;quot;Binary light&amp;quot; because this way every UPnP control point will treat the blinds as a light and show the user an 'on' and 'off' button.  We could create our own device type for blinds which had actions &amp;quot;open&amp;quot; and &amp;quot;close&amp;quot;, but then the UPnP Control Points (like the iPhone interface) would need to be updated to know how to present the user with blinds.  luup.chdev.sync() is called when we're done to synchronize the child device list with Luup's database, and create/remove any new/missing devices, and restart the Luup engine if devices were added or removed.  See: [[Luup_Lua_extensions]]&lt;br /&gt;
&lt;br /&gt;
Before you click 'go', restart your tail in the ssh window with: ''tail -f LuaUPnP.log | grep '^5\|^01\|^03\|^09\|^11' '' because the 03 logs indicate when the Luup engine stops and restart, the 09 logs show us when devices are created/deleted, and the 11 logs show when the child device functions are calls.  Now when you click 'go', you should see in the logs ''Child_Devices::AddChild'' is called 16 times, and then 16 times ''Child_Devices::ProcessChildDevice created device''.  You should also see lines starting with '03' that show the Luup engine is reloading since new devices were just created.  When it restarts, you'll see 16 new devices in the logs starting with 09.&lt;br /&gt;
&lt;br /&gt;
Now if you click 'go' again, you'll see 16 logs for ''Child_Devices::AddChild'', but no devices will be created or removed because the 16 devices were already created, and the parent/child device lists are still in sync.  We have the same 16 child devices with no new ones or removed ones.&lt;br /&gt;
&lt;br /&gt;
Now if you refresh Vera's web UI, you'll see the Somfy device has '16' embedded devices, each with &amp;quot;on&amp;quot; and &amp;quot;Off&amp;quot;.  The 'true' at the end of the luup.chdev.append means the child devices are 'embedded'.  That means when they're shown in Vera's web UI, they're all grouped together as one compound device.  If you changed the 'true' to a 'false', all 16 blinds would show up as completely separate devices.  This is really just a cosmetic difference.  The advantage to using 'false' (non-embedded) is that the user can put each blind in a different room.  In this case it's probably better to treat the devices as non-embedded, since it is likely the 16 blinds will be scattered around the house.  So change the true at the end of luup.chdev.append to a false.  Then click 'go'.  Now, the 16 blinds are removed, and re-added as non-embedded devices.  So, if you refresh Vera's web UI and go to devices, you'll 16 different blinds that you can put into different rooms, in addition to the &amp;quot;Somfy blind interface&amp;quot; device.&lt;br /&gt;
&lt;br /&gt;
Next, we'll update our Lua code to only create child devices that are specified in the &amp;quot;ID&amp;quot; parameter of the &amp;quot;Somfy blind interface&amp;quot; so that if the user doesn't have 16 devices he can specify just the ones he does have.  To make our coding easier, we'll document in the notes for the user that when specifying the list of blinds in the &amp;quot;ID&amp;quot; he must use 01,02, etc., rather than 1,2, etc. because by storing all child devices as 2 digits, we can do a simple search without having to actually parse the ID.  In other words, if we want to know if blind #1 is active, we can safely search the ID for 01 and know that it will only match if blind #1 is active.  If the user stored single digit blind numbers, like ''5,6,11'' then searching for '1' would give us a false positive and we'd need to write more Lua code to break the list apart.  This also makes it easier to send the blind commands because the Somfy protocol says the blind number must be 2 digits, so we won't need to pad the ID's with 0 for the Somfy device.  This is why we did the for loop with 16 text strings using string.format which would have given us normal, non-zero-padded numbers.&lt;br /&gt;
&lt;br /&gt;
Put a -- in front of the luup.chdev.append in the window and click 'go' again.  -- means &amp;quot;comments&amp;quot; in Lua, and lines starting with -- are ignored.  Therefore, by eliminating the luup.chdev.append, now the luup.chdev.sync will remove all 16 children since none were appended.  This way we can reload Vera's web UI, go to the devices page, and we won't have those 16 blinds anymore requiring us to provide a room.  Click '+' next to the Somfy blind interface, click 'Advanced' and in the BlindIds enter: '02,07,13', click 'save'.  Now in the 'Test Luup code' window enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
   child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
   for i = 1,16 do&lt;br /&gt;
     s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
     if (string.find(lul_ID,s) ~= nil) then&lt;br /&gt;
       luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
       luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-upnp-org:device:BinaryLight:1&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
     end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 lug_startup(123)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the '123' to your actual device number.  Now when you click 'go' you'll see the logs indicate we only have 3 blinds with ID's 02, 07 and 13.  Since this part of the code is done, you can copy/paste this from the Luup test code window into the implementation.  '''IMPORTANT:''' Be sure the ''lug_startup(123)'' is NOT in your implementation file, or else your lug_startup function will be called twice at each startup: once by the Luup engine with the actual device number, and once when the startup functions are loaded into the Lua engine with your hard-coded number used for testing, which won't necessarily correspond to the real device number.  We also add the variable lul_prefix because the URTS version 1 takes an ! in the front of every command, whereas with version 2 it's a 2 digit number from 01 to 16.  So we'll default to 01, the default value for an URTS version 2, but we'll let the user change it.  We'll store this in a global variable, lul_prefix, so it's available for use in the other functions in our plugin.&lt;br /&gt;
&lt;br /&gt;
If you're editing the XML file by hand, you can save your changes and click 'go' in the Luup files upload page in your web browser to upload your changes.&lt;br /&gt;
&lt;br /&gt;
Every time you re-start the Luup engine, such as clicking 'Save', you'll see in the logs this startup sequence.&lt;br /&gt;
&lt;br /&gt;
==Step 5b: Polish up the startup sequence ==&lt;br /&gt;
&lt;br /&gt;
The the startup sequence as it is the user will always think the Somfy module loaded fine, even when it didn't, giving the user a false sense that everything was ok even when he hadn't yet specified basic parameters.&lt;br /&gt;
&lt;br /&gt;
Now, the code first checks for basic startup parameters, which are stored in UPNP variables, and sets them to a default value if they're not already specified.  You should at least set them an empty string because by setting them to something then the user will see them in the web user interface and be able to easily change them, as opposed to creating them again from scratch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
  if (lul_ID = nil) then&lt;br /&gt;
    lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
    luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, since this device uses an IO Port (ie a serial port, or an ethernet port, or a usb connection), we should check that the connection is specified and is active before doing the startup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
    luup.log('No port for Somfy', 1)&lt;br /&gt;
    luup.task('Choose the Serial Port for the URTSI', 2, 'Somfy Blind Interface', -1)&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there's a failure of any kind, we should call luup.task and put in some sort of description with the status code 2 (Error), and then 'return false'.  This way the user sees in the web panel that the module 'Somfy Blind Interface' is in an error condition and what the problem is (he didn't choose the serial port).  If we didn't do the 'return false', the user would think the Somfy module was ok since, when the startup function doesn't return false, the architecture assumes the module is running fine.  If we called return false, didn't call luup.task, then the user see that the module was failing, but would have only a generic &amp;quot;Startup sequence failed&amp;quot; without knowing the explicit reason.&lt;br /&gt;
&lt;br /&gt;
So now the startup sequence looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  function lug_startup(lul_device)&lt;br /&gt;
    local lul_ID = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_ID == nil) then&lt;br /&gt;
      lul_ID = &amp;quot;01,02&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;BlindIds&amp;quot;, lul_ID, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local lul_prefix = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_device)&lt;br /&gt;
    if (lul_prefix == nil) then&lt;br /&gt;
      lul_prefix = &amp;quot;01&amp;quot;&lt;br /&gt;
      luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SomfyBlinds1&amp;quot;, &amp;quot;UrtsiId&amp;quot;, lul_prefix, lul_device)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.log(&amp;quot;Somfy ID is &amp;quot; .. lul_ID .. &amp;quot; prefix is &amp;quot; .. lul_prefix)&lt;br /&gt;
&lt;br /&gt;
    if (luup.io.is_connected(lul_device) == false) then&lt;br /&gt;
      luup.log('No port for Somfy', 1)&lt;br /&gt;
      luup.task('Choose the Serial Port for the URTSI',2,'Somfy Blind Interface', -1)&lt;br /&gt;
      return false&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    child_devices = luup.chdev.start(lul_device);&lt;br /&gt;
    for i = 1,16 do&lt;br /&gt;
      s = string.format(&amp;quot;%02d&amp;quot;, i)&lt;br /&gt;
      if (string.find (lul_ID,s) ~= nil) then&lt;br /&gt;
        luup.log(&amp;quot;Adding blind &amp;quot; .. s)&lt;br /&gt;
        luup.chdev.append(lul_device, child_devices, s, &amp;quot;Blind #&amp;quot; .. s, &amp;quot;urn:schemas-micasaverde-com:device:WindowCovering:1&amp;quot;, &amp;quot;D_WindowCovering1.xml&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, false)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    luup.chdev.sync(lul_device, child_devices)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Step 6a: Implementation the actions in the web generator ==&lt;br /&gt;
&lt;br /&gt;
--coming soon--&lt;br /&gt;
&lt;br /&gt;
==Step 6b: Implementation the actions in the xml file ==&lt;br /&gt;
&lt;br /&gt;
The reason we added the ''&amp;lt;handleChildren&amp;gt;1&amp;lt;/handleChildren&amp;gt;'' tag to the Somfy blind interface's device file earlier is because we're going to put all the actions for the child devices (the blinds) within the main implementation file for the Somfy.  So, whenever an action comes in for a child device (a blind), the Lua code in the parent devices implementation file will handle it.  Replace the actionList tag in the implementation file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;actionList&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;serviceId&amp;gt;urn:upnp-org:serviceId:SwitchPower1&amp;lt;/serviceId&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;SetTarget&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;run&amp;gt;&lt;br /&gt;
        local lul_command = lul_prefix .. luup.devices[lul_device].id .. 'U\r'&lt;br /&gt;
        local lul_reverse = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:HaDevice1&amp;quot;, &amp;quot;ReverseOnOff&amp;quot;, lul_device)&lt;br /&gt;
&lt;br /&gt;
        if (lul_settings.newTargetValue == &amp;quot;1&amp;quot; or (lul_settings.newTargetValue == &amp;quot;0&amp;quot; and lul_reverse == &amp;quot;1&amp;quot;)) then&lt;br /&gt;
          lul_command = lul_prefix .. luup.devices[lul_device].id .. 'D\r'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (luup.io.write(lul_command) == false) then&lt;br /&gt;
          luup.log(&amp;quot;cannot send: &amp;quot; .. tostring(lul_command),1)&lt;br /&gt;
          luup.set_failure(true)&lt;br /&gt;
          return false&lt;br /&gt;
        end&lt;br /&gt;
      &amp;lt;/run&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
  &amp;lt;/actionList&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This provides the implementation or the SetTarget UPnP action, which is what is sent when the user clicks 'on' or 'off' for a light switch, or 'open' or 'close' for blinds.  We store the command to send in the variable lul_command and put the 'local' keyword in front so the variable is only available while the 'SetTarget' action is running.  We also check the HADevice service's ReverseOnOff value.  As a convention in Luup, we created this as a common service that all home automation devices have, and the ReverseOnOff variable, if true, means reverse the usual on/off behavior, so on is off and off is on.  We did this because it's not uncommon for binary switches, particularly blinds, to be wired the wrong way, or for it to be subjective which position is on vs. off.  This way the user can add this variable for his configuration if the operation is backwards from what he would expect.  lu_SetCommFailure sets a &amp;quot;communication failure&amp;quot; flag for the device, which logs a critical error, and allows the user to see that the device is having problems.  Whenever the Luup engine reloads, such as clicking 'save', the flag is cleared again.&lt;br /&gt;
&lt;br /&gt;
Now when you click 'on' or 'off' for the blinds you'll see in the log it is sending the corresponding data to the blinds.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2011-09-04T22:12:55Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Other Devices or Services */  Add Lua syntax coloring&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
Device category: 5, UPnP device id: urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''  Variable name: ''ModeStatus''&lt;br /&gt;
&lt;br /&gt;
This indicates the current operating mode and will be one of the following basic values: Off, HeatOn, CoolOn, AutoChangeOver.  In addition to the basic modes, some thermostats may also support the following modes: InDeadBand, AuxHeatOn, EconomyHeatOn, EmergencyHeatOn, AuxCoolOn, EconomyCoolOn, BuildingProtection, EnergySavingsHeating, EnergySavingsCooling&lt;br /&gt;
 &lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
These indicate the current heat/cool set points.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSensor1''  Variable name: ''CurrentTemperature''&lt;br /&gt;
&lt;br /&gt;
This indicates the current ambient temperature.&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                    condition, PARENT_DEVICE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin ===&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''.  So I create a new Scene and add the following to the Luup Scene:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37''&lt;br /&gt;
Line 2 compares the returned variable to ''Showers''&lt;br /&gt;
If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level)&lt;br /&gt;
Otherwise, it turns the lamp Off&lt;br /&gt;
&lt;br /&gt;
What good is this?  Nothing past testing but it would be a good method to close the garage door if it is raining.&lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene ever xx minutes or hours.  Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2011-09-04T22:11:30Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Weather Plugin */ Add Lua syntax coloring&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
Device category: 5, UPnP device id: urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''  Variable name: ''ModeStatus''&lt;br /&gt;
&lt;br /&gt;
This indicates the current operating mode and will be one of the following basic values: Off, HeatOn, CoolOn, AutoChangeOver.  In addition to the basic modes, some thermostats may also support the following modes: InDeadBand, AuxHeatOn, EconomyHeatOn, EmergencyHeatOn, AuxCoolOn, EconomyCoolOn, BuildingProtection, EnergySavingsHeating, EnergySavingsCooling&lt;br /&gt;
 &lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
These indicate the current heat/cool set points.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSensor1''  Variable name: ''CurrentTemperature''&lt;br /&gt;
&lt;br /&gt;
This indicates the current ambient temperature.&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
 -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
 luup.variable_set(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                   condition, PARENT_DEVICE)&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:upnp-micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin ===&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''.  So I create a new Scene and add the following to the Luup Scene:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;, 37)&lt;br /&gt;
  if (lul_tmp == &amp;quot;Showers&amp;quot;) then&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;50&amp;quot;}, 19)&lt;br /&gt;
  else&lt;br /&gt;
    luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;0&amp;quot;}, 19)&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:upnp-micasaverde-com:serviceId:Weather1'' on Device #''37''&lt;br /&gt;
Line 2 compares the returned variable to ''Showers''&lt;br /&gt;
If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level)&lt;br /&gt;
Otherwise, it turns the lamp Off&lt;br /&gt;
&lt;br /&gt;
What good is this?  Nothing past testing but it would be a good method to close the garage door if it is raining.&lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene ever xx minutes or hours.  Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Samples */ Lua color coding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if (tonumber(lul_temp) &amp;lt; 26.6) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if ((tonumber(lul_temp) &amp;lt; 26.6&lt;br /&gt;
    and tonumber(lul_temp) &amp;gt; 25)&lt;br /&gt;
    or tonumber(lul_temp) &amp;lt; 23) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  return luup.is_night() == false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.is_night()) then&lt;br /&gt;
     return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;1&amp;quot;}, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;SetTarget&amp;quot;, {newTargetValue = &amp;quot;0&amp;quot;}, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;, &amp;quot;Status&amp;quot;, 5)&lt;br /&gt;
  if (lul_tmp == &amp;quot;1&amp;quot;) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, {newLoadlevelTarget = &amp;quot;30&amp;quot;}, 6)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;, &amp;quot;Armed&amp;quot;, &amp;quot;1&amp;quot;, 7)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;, &amp;quot;Armed&amp;quot;, &amp;quot;0&amp;quot;, 7)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;, &amp;quot;RunScene&amp;quot;, {SceneNum = &amp;quot;5&amp;quot;}, 0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, {NewCurrentSetpoint = &amp;quot;68&amp;quot;},&lt;br /&gt;
                   19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, {NewCurrentSetpoint = &amp;quot;68&amp;quot;},&lt;br /&gt;
                   19)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
  local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
  local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
  local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
  function move_up()&lt;br /&gt;
    luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
  end&lt;br /&gt;
 &lt;br /&gt;
  -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
  luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
  luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
  t =&amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local t = os.date('*t')&lt;br /&gt;
  local current_second = t.hour * 3600 + t.min * 60 + t.sec   -- number of seconds since midnight&lt;br /&gt;
  local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
  local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
  if (current_second &amp;gt; min_time_in_seconds) and (current_second &amp;lt; max_time_in_seconds) then&lt;br /&gt;
    -- do something&lt;br /&gt;
  else&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Access the current time */ Lua color coding.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if (tonumber(lul_temp) &amp;lt; 26.6) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if ((tonumber(lul_temp) &amp;lt; 26.6&lt;br /&gt;
    and tonumber(lul_temp) &amp;gt; 25)&lt;br /&gt;
    or tonumber(lul_temp) &amp;lt; 23) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  return luup.is_night() == false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.is_night()) then&lt;br /&gt;
     return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
 local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
   luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
  t =&amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local t = os.date('*t')&lt;br /&gt;
  local current_second = t.hour * 3600 + t.min * 60 + t.sec   -- number of seconds since midnight&lt;br /&gt;
  local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
  local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
  if (current_second &amp;gt; min_time_in_seconds) and (current_second &amp;lt; max_time_in_seconds) then&lt;br /&gt;
    -- do something&lt;br /&gt;
  else&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:43:33Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees */ Lua color coding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if (tonumber(lul_temp) &amp;lt; 26.6) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local lul_temp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;, 3)&lt;br /&gt;
  if ((tonumber(lul_temp) &amp;lt; 26.6&lt;br /&gt;
    and tonumber(lul_temp) &amp;gt; 25)&lt;br /&gt;
    or tonumber(lul_temp) &amp;lt; 23) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  return luup.is_night() == false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.is_night()) then&lt;br /&gt;
     return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
 local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
   luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
 t =&amp;amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
 local t = os.date('*t')&lt;br /&gt;
 local current_second = t.hour * 3600 + t.min * 60 + t.sec     -- number of seconds since midnight&lt;br /&gt;
 local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
 local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
 if (current_second &amp;amp;gt; min_time_in_seconds) and (current_second &amp;amp;lt; max_time_in_seconds)&lt;br /&gt;
 then&lt;br /&gt;
 -- do something&lt;br /&gt;
 else&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Walk-through #2 -- Only run the scene during the daytime */ Add the Lua syntax highlighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( tonumber(lul_temp)&amp;amp;lt;26.6 ) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( (tonumber(lul_temp)&amp;amp;lt;26.6&lt;br /&gt;
    and tonumber(lul_temp)&amp;amp;gt;25)&lt;br /&gt;
    or tonumber(lul_temp)&amp;amp;lt;23 ) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  return luup.is_night() == false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  if (luup.is_night()) then&lt;br /&gt;
     return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
 local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
   luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
 t =&amp;amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
 local t = os.date('*t')&lt;br /&gt;
 local current_second = t.hour * 3600 + t.min * 60 + t.sec     -- number of seconds since midnight&lt;br /&gt;
 local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
 local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
 if (current_second &amp;amp;gt; min_time_in_seconds) and (current_second &amp;amp;lt; max_time_in_seconds)&lt;br /&gt;
 then&lt;br /&gt;
 -- do something&lt;br /&gt;
 else&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* 'Privacy' mode for Foscam FI8908[w] */ Add the tags for Lua source code highlighting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( tonumber(lul_temp)&amp;amp;lt;26.6 ) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( (tonumber(lul_temp)&amp;amp;lt;26.6&lt;br /&gt;
    and tonumber(lul_temp)&amp;amp;gt;25)&lt;br /&gt;
    or tonumber(lul_temp)&amp;amp;lt;23 ) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
  return luup.is_night()==false&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
  if( luup.is_night() ) then&lt;br /&gt;
    return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
 local IP_address = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout  = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
   luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=0', timeout, username, password)&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget('http://' .. IP_address .. '/decoder_control.cgi?command=25', timeout, username, password)&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay('move_up', 120)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
 t =&amp;amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
 local t = os.date('*t')&lt;br /&gt;
 local current_second = t.hour * 3600 + t.min * 60 + t.sec     -- number of seconds since midnight&lt;br /&gt;
 local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
 local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
 if (current_second &amp;amp;gt; min_time_in_seconds) and (current_second &amp;amp;lt; max_time_in_seconds)&lt;br /&gt;
 then&lt;br /&gt;
 -- do something&lt;br /&gt;
 else&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:33:27Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Invoke HTTP URL with GET request (Method 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( tonumber(lul_temp)&amp;amp;lt;26.6 ) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( (tonumber(lul_temp)&amp;amp;lt;26.6&lt;br /&gt;
    and tonumber(lul_temp)&amp;amp;gt;25)&lt;br /&gt;
    or tonumber(lul_temp)&amp;amp;lt;23 ) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
  return luup.is_night()==false&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
  if( luup.is_night() ) then&lt;br /&gt;
    return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
 local IP_address      = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username        = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password        = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout         = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
 &lt;br /&gt;
  luup.inet.wget( 'http://'..IP_address..'/decoder_control.cgi?command=0' , timeout, username, password )&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget( 'http://'..IP_address..'/decoder_control.cgi?command=25', timeout, username, password )&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay( 'move_up', 120 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 1) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  local status, result = luup.inet.wget(&amp;quot;http://www.yahoo.com&amp;quot;, 5)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;GET&amp;lt;/tt&amp;gt; request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  socket.http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Invoke HTTP URL with &amp;lt;tt&amp;gt;POST&amp;lt;/tt&amp;gt; request (Method 3) ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  local http = require(&amp;quot;socket.http&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  -- 5 Second timeout&lt;br /&gt;
  http.TIMEOUT = 5&lt;br /&gt;
&lt;br /&gt;
  -- The return parameters are in a different order from luup.inet.wget(...)&lt;br /&gt;
  result, status = http.request(&amp;quot;http://192.168.0.113/runprocess.htm&amp;quot;, &amp;quot;run=run&amp;quot;)    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
 t =&amp;amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
 local t = os.date('*t')&lt;br /&gt;
 local current_second = t.hour * 3600 + t.min * 60 + t.sec     -- number of seconds since midnight&lt;br /&gt;
 local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
 local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
 if (current_second &amp;amp;gt; min_time_in_seconds) and (current_second &amp;amp;lt; max_time_in_seconds)&lt;br /&gt;
 then&lt;br /&gt;
 -- do something&lt;br /&gt;
 else&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Scenes_Events</id>
		<title>Luup Scenes Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Scenes_Events"/>
				<updated>2011-09-04T20:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Invoke URL by GET request */ Show using Lua color coding, break out as &amp;quot;method 2&amp;quot; for GET so we can accomodate regular luup.inet.wget style also.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Adding Lua code to scenes and events ==&lt;br /&gt;
[[Image:SceneFlowchart.png]]&lt;br /&gt;
&lt;br /&gt;
You can add Lua script to scenes and events for simple tasks, like making a scene or event conditional.  Conditional meaning &amp;quot;do something only '''if''' some condition is met&amp;quot;, such as attaching a condition to your &amp;quot;Come Home&amp;quot; scene so it is only run '''if''' the temperature is over 70 degrees.  Basic conditional expressions are easy, and, if that's all you're looking to do, skip to the walk-through below.&lt;br /&gt;
&lt;br /&gt;
If you're more technically inclined you can also do very advanced things too.  For an overview of all the advanced things you can do with Vera's Luup engine, and how scenes and events fit in, see the [[Luup_Intro]] page.&lt;br /&gt;
&lt;br /&gt;
To add Lua code to a scene, create the [[Scenes]] and click 'Luup scene'.  Fill in your Lua code in the input box.  To do a simple condition, see the sample below.  Or if you want to do advanced scripting you can use any [[http://lua.org Lua]] commands as described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]] as well as the variables and functions that the Luup engine adds to Lua documented here: [[Luup_Lua_extensions]].  The Lua code will be run every time the scene is activated either by the user or a scene or a timer.  The Lua code is run before the commands that you included in the scene.  If your Lua code ends with this: &amp;quot;return false&amp;quot; then the commands in the scene will not be run.&lt;br /&gt;
&lt;br /&gt;
You can also add Lua code to an event by clicking 'Luup event'.  Since events are attached to scenes anyway, there is usually little difference between adding the code to an event, or to the scene the event is part of.  If the Lua code in an event returns false, then the event is aborted, meaning the scene that the event is attached to will not be triggered by the event.  The main reason for attaching Lua code to an event is if you have multiple events to a scene.  For example, you may have a scene called &amp;quot;Turn lights on in hallway&amp;quot; which is triggered by 2 events: 1) The front door opens, and 2) the motion sensor in the hallway is tripped.  Perhaps whenever the front door opens you always want the scene to be activated, but you only want the motion sensor to activate the scene before 10:00.  In this case, you would add Lua code to the motion sensor's event which does something like (pseudo-code): &amp;quot;if time&amp;gt;10:00 return false&amp;quot;.  That way the event from the motion sensor will be aborted if it's after 10:00, but the event from the front door will always activate the scene regardless.&lt;br /&gt;
&lt;br /&gt;
When you edit the Lua code in a scene or event you must click 'Save' before the code is saved.  Then you can activate the scene or trigger the event to see what happens when your code is run.  If you're doing some advanced scripting that you'll need to debug this can be tedious, but there are easy ways to test your Lua script immediately without saving first as explained in [[Lua_Debugging]].&lt;br /&gt;
&lt;br /&gt;
If you're doing advanced Lua scripting, you should note that all the Lua code in your scenes and events run in a single Lua instance, which is separate from any Lua plugins.  This means if you set a global variable in one scene, or create a function inside the Lua code in a scene, then in another scene's Lua code you can use that global variable or call that function.  You do not need to worry about conflicting with a Luup plugin, though, since they have their own Lua instance, meaning they have their own global variables and functions.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #1 -- At 12 noon, turn off the interior lights if the temperature is over 80 degrees  ==&lt;br /&gt;
&lt;br /&gt;
Before you start, in Vera's setup interface go to 'Devices' and click the '+' button next to the thermostat. Make note of the Device #. &lt;br /&gt;
&lt;br /&gt;
In this walkthrough we'll assume it's Device #3, but use the actual device number of''your'' thermostat. Next, visit [[Luup Variables]] to get a list of all the variables for devices. A variable is a piece of information about the current state of a device, such as whether it's on or off, it's current temperature, etc. &lt;br /&gt;
&lt;br /&gt;
Look down at ''Thermostat'', and copy the name of the service/variable which corresponds to the current temperature, namely.  In this case, it's&lt;br /&gt;
&lt;br /&gt;
  urn:upnp-org:serviceId:TemperatureSensor1 CurrentTemperature&lt;br /&gt;
&lt;br /&gt;
Notice that it states the &amp;lt;tt&amp;gt;CurrentTemperature&amp;lt;/tt&amp;gt; is in Celsius. So type in &amp;quot;80 degrees Fahrenheit to Celsius&amp;quot; in Google and you'll see that it's 26.6 degrees Celsius. &lt;br /&gt;
&lt;br /&gt;
Now, the first step is to create the scene that turns off the lights. In Vera's setup interface, click 'Scenes', and click 'Add Scene' to add a new scene to one of the rooms. It's not important which room you choose. Scenes are categorized in rooms just to help you keep track of them if you have a lot of scenes. You can also put the scene in 'Global Scenes', or, you can create dummy rooms on the 'Rooms' tab if you want to have more &amp;quot;rooms&amp;quot; to organize your scenes with. After you click 'Add Scene', type in a description to remember your scene by, such as &amp;quot;Lights off 12:00 if 80&amp;quot;. Under the 'Commands' area you'll see all the rooms. Click '+' next to the rooms that have lights you want to control, and choose &amp;quot;Off&amp;quot; in the pull-down. At this point, you have a normal scene, and, if you were to save your changes now, whenever you click the scene on the dashboard or on a remote control, the lights should turn off. &lt;br /&gt;
&lt;br /&gt;
Second, next to the scene's description click 'add timer'. You can give the timer a description too so that if you have multiple timers you can see in the logs which one is activating the scene. Choose &amp;quot;Day of week based&amp;quot;. If you want this scene to only run on certain days of the week, just check off which days you want this scene to run on. Otherwise, you can leave them all unchecked (or check them all) to do it every day. Leave the pull-down at &amp;quot;a certain time of day&amp;quot;, and choose 12&amp;amp;nbsp;: 00&amp;amp;nbsp;: 00 from the pull-downs. At this point, if you were to save your changes, the lights would turn off automatically at 12 noon. &lt;br /&gt;
&lt;br /&gt;
Third, the last step is to add the condition. To the right of the scene's description you'll see the button &amp;quot;Luup Scene&amp;quot;. Click it and in the code box, copy and paste the following: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( tonumber(lul_temp)&amp;amp;lt;26.6 ) then&lt;br /&gt;
    return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
Don't forget to change the &amp;quot;3&amp;quot; to whatever is the actual device number of your thermostat. Assign the result of &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; to a variable first, rather than putting it directly in the &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt;, because &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; actually returns 2 values: the value of the variable, and the time when the variable was modified. The '&amp;lt;tt&amp;gt;tonumber&amp;lt;/tt&amp;gt;' is needed because all of a device's variables are stored as plain text--not numbers--so if you want to do arithmetic or numeric comparison of a variable, you need to put &amp;lt;tt&amp;gt;tonumber()&amp;lt;/tt&amp;gt; around &amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;luup.variable_get&amp;lt;/tt&amp;gt; is documented in [[Luup Lua extensions]]. &lt;br /&gt;
&lt;br /&gt;
Now click 'Update', and then click 'Save' to save everything. The &amp;quot;return false&amp;quot; means &amp;quot;don't run this scene&amp;quot;. So if the current temperature is &amp;amp;lt;26.6, the scene will be aborted and won't run. The timer will make it trigger every day at 12 noon. &lt;br /&gt;
&lt;br /&gt;
To test it, you can click the scene button on the dashboard. The lights will turn off only if the temperature is over 80 degrees. If it's less than 80 degrees, the scene won't do anything. Since this scene is something that happens automatically and you probably won't execute manually, you can go to the scene again and check the &amp;quot;Hidden&amp;quot; box so the scene doesn't show up on&amp;amp;nbsp;Vera's 'Dashboard' and on your remote controls, like the iPhone. If you want to have a scene that turns off the lights which you can run whenever you want from 'Dashboard'' or your remote control, you should create another scene that has the same commands and simply don't add the timers and Luup conditions, and don't check the &amp;quot;Hidden&amp;quot; box. &lt;br /&gt;
&lt;br /&gt;
You can substitute other service/variables and device ID's to make other types of conditions. The &amp;quot;if&amp;quot; statement above also supports nesting with ( and ), as well as the keywords 'and' and 'or'. So the following means the scene would abort if the temperature is &amp;amp;lt;26.6 and &amp;amp;gt;25, unless it's &amp;amp;lt;23: &lt;br /&gt;
&lt;br /&gt;
  local lul_temp=luup.variable_get(&amp;quot;urn:upnp-org:serviceId:TemperatureSensor1&amp;quot;,&amp;quot;CurrentTemperature&amp;quot;,3)&lt;br /&gt;
  if( (tonumber(lul_temp)&amp;amp;lt;26.6&lt;br /&gt;
    and tonumber(lul_temp)&amp;amp;gt;25)&lt;br /&gt;
    or tonumber(lul_temp)&amp;amp;lt;23 ) then&lt;br /&gt;
      return false&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
If the scene doesn't run, it's possible&amp;amp;nbsp;there is&amp;amp;nbsp;a syntax error. The easiest way to test this is to copy the Lua code from the scene, then go to Devices, Luup Plugins, and &amp;quot;Test Luup code&amp;quot;. Paste the code in the box and click 'go'. If the info box above the 'go' button has a check and says &amp;quot;Message sent successful&amp;quot;, your code is okay. If there's an error, it says: &amp;quot;Code failed&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
To see if that's true, use putty, or telnet or ssh to log-in to Vera, as explained in detail in [[Lua Debugging]], and type: &lt;br /&gt;
&lt;br /&gt;
   cd /var/log/cmh&lt;br /&gt;
   tail -f LuaUPnP.log | grep '^01'&lt;br /&gt;
&lt;br /&gt;
Now click 'Save' in Vera's setup page, even if it's gray, as that will cause Vera to restart the Luup engine and log any syntax errors. See: [[Lua Debugging]] for in-depth details on how to debug.&lt;br /&gt;
&lt;br /&gt;
== Walk-through #2 -- Only run the scene during the daytime ==&lt;br /&gt;
&lt;br /&gt;
In the Luup tab for the scene paste this:&lt;br /&gt;
&lt;br /&gt;
  return luup.is_night()==false&lt;br /&gt;
&lt;br /&gt;
That works because if the return is 'true' the scene runs, and if it's 'false' it doesn't.  So during the daytime the expression is true.  Or, an alternative long form:&lt;br /&gt;
&lt;br /&gt;
  if( luup.is_night() ) then&lt;br /&gt;
    return false&lt;br /&gt;
  else&lt;br /&gt;
     return true&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
== Samples ==&lt;br /&gt;
&lt;br /&gt;
This page is a wiki which anyone can edit.  If you have some Lua code you think other users might find useful, feel free to add it here.&lt;br /&gt;
&lt;br /&gt;
=== Misc actions ===&lt;br /&gt;
&lt;br /&gt;
Did you see the sample here already: http://wiki.micasaverde.com/index.php/Luup_Scenes_Events&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat on for device #5====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;1&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Turn an appliance switch or a Danfoss thermostat off====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;SetTarget&amp;quot;,{ newTargetValue=&amp;quot;0&amp;quot; },5)&lt;br /&gt;
&lt;br /&gt;
====Do something if switch device #5 is on====&lt;br /&gt;
&lt;br /&gt;
  local lul_tmp = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:SwitchPower1&amp;quot;,&amp;quot;Status&amp;quot;,5)&lt;br /&gt;
  if( lul_tmp==&amp;quot;1&amp;quot; ) then&lt;br /&gt;
     --something to do goes here&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
====Dim switch #6 to 30%====&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;30&amp;quot; },6)&lt;br /&gt;
&lt;br /&gt;
====Arm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;1&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
====Disarm motion sensor #7====&lt;br /&gt;
&lt;br /&gt;
  luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:SecuritySensor1&amp;quot;,&amp;quot;Armed&amp;quot;,&amp;quot;0&amp;quot;,7)&lt;br /&gt;
&lt;br /&gt;
Note, arming and disarming isn't a concept within UPnP or Z-Wave.  It's just a flag that the Luup engine uses, and is stored in a variable we created called &amp;quot;Armed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Run Scene #5====&lt;br /&gt;
&lt;br /&gt;
Thanks &amp;quot;denix&amp;quot; on the forum for the correct syntax.&lt;br /&gt;
&amp;quot;Actually, the 4th parameter IS required, but it's not used. Otherwise the command fails with an error message&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;quot;,&amp;quot;RunScene&amp;quot;,{ SceneNum=&amp;quot;5&amp;quot; }, 0)&lt;br /&gt;
&lt;br /&gt;
In this case we left the device number off (the 4th parameter to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt;), because the &amp;quot;&amp;lt;tt&amp;gt;RunScene&amp;lt;/tt&amp;gt;&amp;quot; action is handled by the Luup engine itself--not by some device within Z-Wave, etc.&lt;br /&gt;
&lt;br /&gt;
However, normally you don't need to &amp;lt;tt&amp;gt;luup.call_action&amp;lt;/tt&amp;gt; in Lua code.  Rather, whatever actions, or commands, you want to run, you put into the scene itself, and the only Lua code is to simply check if some condition is true and abort the scene if the condition isn't met.&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on Thermostat (Cool) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Cool&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;, { NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
====Change the Temperature on a Thermostat (Heat) device #19====&lt;br /&gt;
  luup.call_action(&amp;quot;urn:upnp-org:serviceId:TemperatureSetpoint1_Heat&amp;quot;,&lt;br /&gt;
                   &amp;quot;SetCurrentSetpoint&amp;quot;,{ NewCurrentSetpoint=&amp;quot;68&amp;quot; },&lt;br /&gt;
                   19)&lt;br /&gt;
&lt;br /&gt;
===='Privacy' mode for Foscam FI8908[w]====&lt;br /&gt;
&lt;br /&gt;
 local IP_address      = '&amp;lt;IP address of camera&amp;gt;'&lt;br /&gt;
 local username        = '&amp;lt;username&amp;gt;'&lt;br /&gt;
 local password        = '&amp;lt;password&amp;gt;'&lt;br /&gt;
 local timeout         = 5&lt;br /&gt;
 &lt;br /&gt;
 function move_up()&lt;br /&gt;
 &lt;br /&gt;
  luup.inet.wget( 'http://'..IP_address..'/decoder_control.cgi?command=0' , timeout, username, password )&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 -- center the camera; takes some time, so we have to wait 2 minutes for the command to complete&lt;br /&gt;
 &lt;br /&gt;
 luup.inet.wget( 'http://'..IP_address..'/decoder_control.cgi?command=25', timeout, username, password )&lt;br /&gt;
 &lt;br /&gt;
 luup.call_delay( 'move_up', 120 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Blinking lights====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5127.0&lt;br /&gt;
&lt;br /&gt;
====Playing an announcement====&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405&lt;br /&gt;
&lt;br /&gt;
=== Calculate sunrise and sunset ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132&lt;br /&gt;
&lt;br /&gt;
... or use DAD: http://forum.micasaverde.com/index.php?topic=5466.0&lt;br /&gt;
&lt;br /&gt;
=== Access the web ===&lt;br /&gt;
==== Invoke HTTP URL with GET request (Method 2) ====&lt;br /&gt;
Based on code by Jim/jgc94131&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
  require('ltn12')&lt;br /&gt;
  local http = require('socket.http')&lt;br /&gt;
  local response_body = {}&lt;br /&gt;
  local request_body = ''&lt;br /&gt;
  socket.http.TIMEOUT = 4&lt;br /&gt;
  local r, c, h = socket.http.request{&lt;br /&gt;
    url = 'http://website/page?parameter1=value&amp;amp;parameter2=value',&lt;br /&gt;
    method = &amp;quot;GET&amp;quot;,&lt;br /&gt;
    port = 80,&lt;br /&gt;
    headers = {&lt;br /&gt;
      [&amp;quot;Content-Length&amp;quot;] = string.len(request_body),&lt;br /&gt;
      [&amp;quot;Content-Type&amp;quot;] = &amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    source = ltn12.source.string(request_body),&lt;br /&gt;
    sink = ltn12.sink.table(response_body)&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access the current time  ===&lt;br /&gt;
&lt;br /&gt;
The Lua function &lt;br /&gt;
&lt;br /&gt;
  os.date (format, time)&lt;br /&gt;
&lt;br /&gt;
converts a time value `time` into a human readable date/time string, according to `format`. If you leave out the optional `time` parameter, it defaults to current time. The `format` parameter defaults to a fairly complete format. If you specify '*t' as the format, it will return a table instead of a formatted string. &lt;br /&gt;
&lt;br /&gt;
  t = os.date('*t')&lt;br /&gt;
 t =&amp;amp;gt; {year=2010, month=2, day=19, yday=50, wday=6, hour=22, min=45, sec=45, isdst=false}&lt;br /&gt;
&lt;br /&gt;
The fields are year, month, day of month, day of year, day of week, hour in 24 hour clock, minutes, seconds and if it's Daylight Savings Time.&lt;br /&gt;
&lt;br /&gt;
Current hour: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').hour&lt;br /&gt;
&lt;br /&gt;
Current minute: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').min&lt;br /&gt;
&lt;br /&gt;
Current second: &lt;br /&gt;
&lt;br /&gt;
  os.date('*t').sec&lt;br /&gt;
&lt;br /&gt;
Do something between 16:00 and 21:15: &lt;br /&gt;
&lt;br /&gt;
 local t = os.date('*t')&lt;br /&gt;
 local current_second = t.hour * 3600 + t.min * 60 + t.sec     -- number of seconds since midnight&lt;br /&gt;
 local min_time_in_seconds = 16 * 3600 +  0 * 60             -- 16:00&lt;br /&gt;
 local max_time_in_seconds = 21 * 3600 + 15 * 60             -- 21:15&lt;br /&gt;
 &lt;br /&gt;
 if (current_second &amp;amp;gt; min_time_in_seconds) and (current_second &amp;amp;lt; max_time_in_seconds)&lt;br /&gt;
 then&lt;br /&gt;
 -- do something&lt;br /&gt;
 else&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=2015.0 and http://www.lua.org/manual/5.1/manual.html#5.8.&lt;br /&gt;
&lt;br /&gt;
=== Set Z-Wave parameters ===&lt;br /&gt;
&lt;br /&gt;
See http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803&lt;br /&gt;
&lt;br /&gt;
===  a scene if the temperature is outside of a range ===&lt;br /&gt;
&lt;br /&gt;
add snippets here...&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code</id>
		<title>Luup plugins and Luup code</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code"/>
				<updated>2011-08-28T01:56:51Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Alphabetical list of all Luup plugins, Luup code fragments and Vera clients */ Add Brultech Energy Monitoring Plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
= '''All Luup plugins, Luup code fragments and Vera clients by category'''  =&lt;br /&gt;
&lt;br /&gt;
== '''Alarm System integration'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Ademco Honeywell Vista 20P Alarm Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4531.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DSC Alarm Panel &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| GE Caddx Networx NX-584 NX-8E Alarm Plugin &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paradox Alarm Plugin &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Development'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070].&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Energy management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Home Entertainment management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29]&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385]&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Interfacing'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0]&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin]&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Monitoring'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D]&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras]&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView]&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Notifications'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0]&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Battery low notification&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Temperature or Weather measurement'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''UI'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled rece &lt;br /&gt;
| client &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Utility'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891]&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0].&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM&lt;br /&gt;
| FRITZ!Box Call Monitor&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| TedStriker &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0]&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. WakeupRamp&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Slowly dim your lights&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Watering System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Alphabetical list of all Luup plugins, Luup code fragments and Vera clients'''  =&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Category &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Unique MCVID &lt;br /&gt;
! Remarks &lt;br /&gt;
! Screenshot&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Battery low notification &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled receivers. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Energy management &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Brultech Power Monitor &lt;br /&gt;
| Energy Monitoring integration for Brultech ECM-1240 devices. &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Brultech ECM-1240 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_brultech-power-monitor] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#DSC_PowerSeries_Panels|DSC Alarm Panel ]] &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elk M1 Family Panels&amp;lt;br&amp;gt;&lt;br /&gt;
| Integration with the Elk M1 alarm panels via the RS232 port. &lt;br /&gt;
| plugin&amp;lt;br&amp;gt;&lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6916.0]&amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_elk-alarm-panel]&amp;lt;br&amp;gt;&lt;br /&gt;
| Working&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Energy management &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Watering System management &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM &lt;br /&gt;
| FRITZ!Box Call Monitor &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Monitoring &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#GE.2FCaddx_NetworX_Panels|GE Caddx NetworX NX-584 NX-8E Alarm Plugin]] &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| Utility &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels via AD2USB &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels via the AD2USB adapter. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| AD2USB Adapter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7266.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_vista-alarm-panel-ad2usb]&amp;lt;br&amp;gt; &lt;br /&gt;
| Beta &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels with RS232&amp;lt;br&amp;gt; &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels with a RS232 interface. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| dfad1469 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6626.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ademco-panels-plugin] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IO Relay Plugin &lt;br /&gt;
| This component permits the control of Relay and Analog IO boards from IORelay.com (National Control Devices).  Controls up to 8 Relays and 8 Analog inputs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ProXR, ProXR Lite, Reactor Relay board from iorelay.com &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_iorelay] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| UI &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| Development &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#Paradox_EVO_Panels|Paradox Alarm Plugin]] &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| TedStriker &lt;br /&gt;
| guessed, Henk &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ping-sensor] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| System management &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. WakeupRamp &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| Utility &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| Notifications &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?action=dlattach;topic=5865.0;attach=1826;image]&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Sources'''  =&lt;br /&gt;
&lt;br /&gt;
Sources:&amp;lt;br&amp;gt; http://forum.micasaverde.com/&amp;lt;br&amp;gt; http://code.mios.com/&amp;lt;br&amp;gt; http://wiki.micasaverde.com/index.php/Luup_Projects&amp;lt;br&amp;gt; http://forum.micasaverde.com/index.php?topic=6280.msg40147#msg40147&amp;lt;br&amp;gt; http://www.micasaverde.com/list-of-apps.php&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Todo''' =&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code</id>
		<title>Luup plugins and Luup code</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code"/>
				<updated>2011-08-28T01:51:00Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Alphabetical list of all Luup plugins, Luup code fragments and Vera clients */ Updated Ping sensor contributors and pointer to code repository.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
= '''All Luup plugins, Luup code fragments and Vera clients by category'''  =&lt;br /&gt;
&lt;br /&gt;
== '''Alarm System integration'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Ademco Honeywell Vista 20P Alarm Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4531.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DSC Alarm Panel &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| GE Caddx Networx NX-584 NX-8E Alarm Plugin &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paradox Alarm Plugin &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Development'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070].&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Energy management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Home Entertainment management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29]&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385]&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Interfacing'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0]&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin]&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Monitoring'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D]&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras]&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView]&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Notifications'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0]&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Battery low notification&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Temperature or Weather measurement'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''UI'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled rece &lt;br /&gt;
| client &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Utility'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891]&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0].&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM&lt;br /&gt;
| FRITZ!Box Call Monitor&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| TedStriker &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0]&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. WakeupRamp&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Slowly dim your lights&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Watering System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Alphabetical list of all Luup plugins, Luup code fragments and Vera clients'''  =&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Category &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Unique MCVID &lt;br /&gt;
! Remarks &lt;br /&gt;
! Screenshot&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Battery low notification &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled receivers. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Energy management &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#DSC_PowerSeries_Panels|DSC Alarm Panel ]] &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elk M1 Family Panels&amp;lt;br&amp;gt;&lt;br /&gt;
| Integration with the Elk M1 alarm panels via the RS232 port. &lt;br /&gt;
| plugin&amp;lt;br&amp;gt;&lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6916.0]&amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_elk-alarm-panel]&amp;lt;br&amp;gt;&lt;br /&gt;
| Working&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Energy management &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Watering System management &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM &lt;br /&gt;
| FRITZ!Box Call Monitor &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Monitoring &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#GE.2FCaddx_NetworX_Panels|GE Caddx NetworX NX-584 NX-8E Alarm Plugin]] &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| Utility &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels via AD2USB &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels via the AD2USB adapter. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| AD2USB Adapter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7266.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_vista-alarm-panel-ad2usb]&amp;lt;br&amp;gt; &lt;br /&gt;
| Beta &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels with RS232&amp;lt;br&amp;gt; &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels with a RS232 interface. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| dfad1469 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6626.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ademco-panels-plugin] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IO Relay Plugin &lt;br /&gt;
| This component permits the control of Relay and Analog IO boards from IORelay.com (National Control Devices).  Controls up to 8 Relays and 8 Analog inputs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ProXR, ProXR Lite, Reactor Relay board from iorelay.com &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_iorelay] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| UI &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| Development &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#Paradox_EVO_Panels|Paradox Alarm Plugin]] &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| TedStriker &lt;br /&gt;
| guessed, Henk &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ping-sensor] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| System management &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. WakeupRamp &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| Utility &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| Notifications &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?action=dlattach;topic=5865.0;attach=1826;image]&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Sources'''  =&lt;br /&gt;
&lt;br /&gt;
Sources:&amp;lt;br&amp;gt; http://forum.micasaverde.com/&amp;lt;br&amp;gt; http://code.mios.com/&amp;lt;br&amp;gt; http://wiki.micasaverde.com/index.php/Luup_Projects&amp;lt;br&amp;gt; http://forum.micasaverde.com/index.php?topic=6280.msg40147#msg40147&amp;lt;br&amp;gt; http://www.micasaverde.com/list-of-apps.php&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Todo''' =&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code</id>
		<title>Luup plugins and Luup code</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_plugins_and_Luup_code"/>
				<updated>2011-08-28T01:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Alphabetical list of all Luup plugins, Luup code fragments and Vera clients */ Add IORelay Plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
= '''All Luup plugins, Luup code fragments and Vera clients by category'''  =&lt;br /&gt;
&lt;br /&gt;
== '''Alarm System integration'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Ademco Honeywell Vista 20P Alarm Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4531.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DSC Alarm Panel &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| GE Caddx Networx NX-584 NX-8E Alarm Plugin &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paradox Alarm Plugin &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Development'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070].&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Energy management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Home Entertainment management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29]&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385]&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Interfacing'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0]&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin]&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Monitoring'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D]&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras]&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView]&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Notifications'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Working&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0]&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Battery low notification&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Temperature or Weather measurement'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''UI'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled rece &lt;br /&gt;
| client &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php]&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== '''Utility'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891]&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0].&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM&lt;br /&gt;
| FRITZ!Box Call Monitor&lt;br /&gt;
| plugin &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| TedStriker &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0]&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. WakeupRamp&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| cf. Slowly dim your lights&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Watering System management'''  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DO NOT EDIT! Automatically generated from the alphabetical list below.&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Alphabetical list of all Luup plugins, Luup code fragments and Vera clients'''  =&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
! Description &lt;br /&gt;
! Type &lt;br /&gt;
! Category &lt;br /&gt;
! Author &lt;br /&gt;
! Contributor &lt;br /&gt;
! HW requirements &lt;br /&gt;
! SW requirements &lt;br /&gt;
! Forum link &lt;br /&gt;
! Code repository link &lt;br /&gt;
! Status &lt;br /&gt;
! Unique MCVID &lt;br /&gt;
! Remarks &lt;br /&gt;
! Screenshot&lt;br /&gt;
|-&lt;br /&gt;
| ActiveRFID &lt;br /&gt;
| Affordable RFID solution, supporting multiple transmitters on multiple receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ActiveRFID hardware &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3855.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_activerfid] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ADD &lt;br /&gt;
| Alerter for Drowsy Devices &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| dcowan, guessed, Les F, mda &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5130.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Battery low notification &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| air4vera &lt;br /&gt;
| The system supports findvera.com or the home LAN, motion sensors, light sensors, temperature sensors, light switches and dimmers, door locks, scenes, generic IO, window shades. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| chairman_bubba &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Adobe AIR &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2150.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AquaLink RS Plugin &lt;br /&gt;
| Smart pool control &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AutoHTN &lt;br /&gt;
| AutoHTN is made by Home Theater Network and can control a Vera home system’s lights, sensors, thermostat, switched power devices, scenes, and window blinds. AutoHTN can also be used as a remote for Boxee or XBMC media software as well as web enabled receivers. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Home Theater Network, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=16.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automated &amp;quot;occupied/unoccupied&amp;quot; VR mode for thermostat control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Energy management &lt;br /&gt;
| neilios &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4809.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Automator.App &lt;br /&gt;
| Take complete control of your home from anywhere using your iOS device (iPhone, iPod, or iPad). &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Vakoc Woodworks, LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=18.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Basic mobile phone Web interface (WAP) &lt;br /&gt;
| Basic HTML/WAP interface for accessing Vera from any mobile phone that has web capabilities. &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Battery low notification &lt;br /&gt;
| Detecting a low battery level in any number of devices. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| axill, FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6169.msg38081#msg38081][http://forum.micasaverde.com/index.php?topic=6169.msg38084#msg38084][http://forum.micasaverde.com/index.php?topic=6169.msg40871#msg40871] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. ADD &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| CalDAV Scheduler &lt;br /&gt;
| Integration with an external Calendaring service via CalDAV protocol. &lt;br /&gt;
| plugin (nearly) &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3761.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caldav-scheduler] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Christmas Toolkit &lt;br /&gt;
| Christmas Lights off when raining, Blinking christmas tree &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| mikemsd, Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4932.0][http://forum.micasaverde.com/index.php?topic=5127.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Closing a window shutter partially &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| huwu &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3512.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3359.msg15891#msg15891] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Crestron Status Engine Plugin &lt;br /&gt;
| Provides real-time status feedback to the Crestron system when the state of one of the Z-Wave devices changes. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Wendell Manley &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DAD &lt;br /&gt;
| DAD displays the times for sunrise/sunset and moonrise/moonset, the current zodiac sign and the current moon phase on the GUI. DAD provides earthquake and radiation data. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| futzle, javier, JOD, oTi@ &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5466.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Please note the limitations: [http://forum.micasaverde.com/index.php?topic=6052.0]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Debugging Utilities &lt;br /&gt;
| Utilities for Vera debugging &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.msg36320#msg36320] &lt;br /&gt;
| [http://code.mios.com/trac/mios_debugging-utilities] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| based on 'Z-Wave routing matrix' by Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Denon Receiver Control Plugin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Rick Naething &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5863.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DirecTV Media Control Plugin &lt;br /&gt;
| The DirecTV Media Control plugin is a Luup component that permits the Remote Control of HR2X series DirecTV DVR and other receivers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| HR2X series DirecTV DVR, two USB to R232 adapters or Ethernet connection &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3079.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_directv-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#DSC_PowerSeries_Panels|DSC Alarm Panel ]] &lt;br /&gt;
| Integration with DSC's Alarm Panel, via an IT-100 data interface module. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| Javier Guerra, guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Power 1616, 1632 or 1632 series panel, IT100 RS232 Keybus module, USB to Serial or USB to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5154.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_dscalarmpanel] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elisa &lt;br /&gt;
| Control device locally and remote &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| structor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3219.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Elk M1 Family Panels&amp;lt;br&amp;gt;&lt;br /&gt;
| Integration with the Elk M1 alarm panels via the RS232 port. &lt;br /&gt;
| plugin&amp;lt;br&amp;gt;&lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6916.0]&amp;lt;br&amp;gt;&lt;br /&gt;
| [http://code.mios.com/trac/mios_elk-alarm-panel]&amp;lt;br&amp;gt;&lt;br /&gt;
| Working&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email notifications &lt;br /&gt;
| Send emails via SMTP server that doesn't require SSL &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3584.msg17474#msg17474][http://forum.micasaverde.com/index.php?topic=6153.msg37159#msg37159] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Emergency light &lt;br /&gt;
| Get Vera to blink your porch light. &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3015.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Energy Reporting framework &lt;br /&gt;
| Several parts to an all-encompassing, hopefully-extensible energy reporting/storing/graphing system. Energy Plugin allows you to see the live and historical energy usage in your home. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Energy management &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_energry-reporting] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Enocean Gateway &lt;br /&gt;
| Interface to an Enocean TCM120 transceiver. For receiving sensor telegrams and for sending telegrams. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Enocean TCM120 transceiver, USB to Serial or Serial to Ethernet adapter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4990.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_enocean] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Etherrain Controller Plugin &lt;br /&gt;
| EtherRain8 Sprinkler Controller allows controlling of up to 8 regular 24V irrigation valves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Watering System management &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| EtherRain Sprinkler Controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1846.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_etherrain-controller] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FCM &lt;br /&gt;
| FRITZ!Box Call Monitor &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| FRITZ!Box &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6658.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Tested with FRITZ!Box 7170/29.04.67 and 7390/84.04.88 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Foscam plugin &lt;br /&gt;
| Pan, tilt, patrol support for Foscam FI8908[w] &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV, Ap15e &lt;br /&gt;
| shady &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3720.0][http://forum.micasaverde.com/index.php?topic=3720.msg21954#msg21954] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FPM &lt;br /&gt;
| Foscam Privacy Mode - have the camera automatically point up. &lt;br /&gt;
| code &lt;br /&gt;
| Monitoring &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Foscam FI8908[w] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5082.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Luup_Scenes_Events#.27Privacy.27_mode_for_Foscam_FI8908.5Bw.5D] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Garage Door Plugin &lt;br /&gt;
| Takes the combination of the door sensor device and the contact closure device on a garage door setup and consolidates them into a single device that behaves as a door lock. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5106] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#GE.2FCaddx_NetworX_Panels|GE Caddx NetworX NX-584 NX-8E Alarm Plugin]] &lt;br /&gt;
| Plugin for the security system interface variously sold around the world as the Caddx or GE or Networx NX-584. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| NX-8E or NX-584 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic IP Camera &lt;br /&gt;
| The Generic IP Camera plugin is used for adding and manipulating the IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php][http://wiki.micasaverde.com/index.php/IP_Cameras] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Generic Lua Utilities &lt;br /&gt;
| Some Lua helping code &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Javier Guerra, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3319.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_genericutils] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Global Cache GC100 &lt;br /&gt;
| Allows Vera to control any setting that the GC100 offers. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| GC100 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4060.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_caddxnx584] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Graphing tool for Vera &lt;br /&gt;
| A Windows dialog based app that can track any data from any Vera connected device. &lt;br /&gt;
| Windows application &lt;br /&gt;
| Utility &lt;br /&gt;
| FlyBoyBob &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5870.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grasshopper &lt;br /&gt;
| Grasshopper is a Windows Phone 7 application that interfaces with Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Amgine Creations &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows Phone 7 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5846.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GWC &lt;br /&gt;
| Google Weather Companion - a graphical interface for guessed's Google Weather plugin. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Google Weather plugin by guessed &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6553.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-CEC Media Controller Plugin &lt;br /&gt;
| A HDMI-CEC Driver for Rainshadow Tech and Kwikwai HDMI-CEC Controllers adapting them to MiOS Media Control APIs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Rainshadow Tech or Kwikwai HDMI-CEC controller &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5468.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_hdmi-cec-media-controller] &lt;br /&gt;
| On hold &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Care Plugin &lt;br /&gt;
| Sends notification if the motion sensors aren't triggered in the user set period. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| MiOS &amp;amp;gt;= 1.1.1161 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6517.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_home-care] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Home Buddy &lt;br /&gt;
| Home Buddy is a native Android application that interfaces with Mi Casa Verde's Vera to control Z-Wave compatible devices around your home. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| rakstar &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=15.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels via AD2USB &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels via the AD2USB adapter. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| mcvflorin&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| AD2USB Adapter&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7266.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_vista-alarm-panel-ad2usb]&amp;lt;br&amp;gt; &lt;br /&gt;
| Beta &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Honeywell Ademco Vista Panels with RS232&amp;lt;br&amp;gt; &lt;br /&gt;
| Integration with Honeywell's Ademco Vista panels with a RS232 interface. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| dfad1469 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6626.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ademco-panels-plugin] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| HTML GUI creator &lt;br /&gt;
| A Lua application which parses the user_data and creates a compact HTML GUI for Vera. &lt;br /&gt;
| code &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1775.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Proof of concept &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ICamView &lt;br /&gt;
| ICamView camera server allows to connect up to two compatible iCamView cameras, USB hubs, storage device for local storage, compatible Wi-Fi USB adapters, etc. Plugin supports Pan-Tilt for compatible cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/ICamView] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IO Relay Plugin &lt;br /&gt;
| This component permits the control of Relay and Analog IO boards from IORelay.com (National Control Devices).  Controls up to 8 Relays and 8 Analog inputs. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ProXR, ProXR Lite, Reactor Relay board from iorelay.com &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=7589.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_iorelay] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IPSerial Plugin &lt;br /&gt;
| This component permits the registration of IP-based Serial devices with Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2989.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ipserial] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| IR plugin &lt;br /&gt;
| Sends IR Pronto codes stored in a text file &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Roy S &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| UPnP IrTransmitter1 device &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6532.msg40741#msg40741] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| iVera &lt;br /&gt;
| iVera is a simple and efficient home automation remote control for Vera system from MiCasaVerde. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Thinkiwi LLC &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=11.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| j9 (now: Elve) Automation Engine Driver &lt;br /&gt;
| The driver currently supports lighting and thermostats. &lt;br /&gt;
| external driver &lt;br /&gt;
| UI &lt;br /&gt;
| johnnynine &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Learning IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows application &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| lrnhelper [http://www.usbuirt.com/lrnhelper_0_0_5.zip] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3617.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Leviton Vizia RF+ Emulator &lt;br /&gt;
| Emulates a Leviton Vizia RF+ Serial/ZWave interface, lets serial panels to control devices connected to Vera. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Serial-to-Ethernet gateway (e.g., WIZNet 110SR) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC2LuupDevice4SBS &lt;br /&gt;
| Control your IR capable devices via IR &lt;br /&gt;
| code/plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter, IR transmitter &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5709.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LIRC for Vera &lt;br /&gt;
| LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. &lt;br /&gt;
| compiled binaries &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR transmitter &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5856.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Locale Android App Plugin &lt;br /&gt;
| Plugin for running scenes from the Locale app. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Jason Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LOUIS4Vera &lt;br /&gt;
| A Line-Oriented User Interface for Squeezebox devices for Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox V2/V3 or Transporter (or software emulation) &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5232.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LSI &lt;br /&gt;
| Luup System Information &lt;br /&gt;
| plugin &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6614.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Lutron RadioRA2 Devices Control &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5092.0][http://forum.micasaverde.com/index.php?topic=5964.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Luup Code Generator &lt;br /&gt;
| This will help all of us who are new to Luup coding get started. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| Development &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Magnavox 19MF337B/27 LCD TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| N/A &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modbus/TCP plugin &lt;br /&gt;
| A Luup plugin for controlling Modbus/TCP slaves. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| ekarak &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2907.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6007.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Modify user_data (dangerous, read the thread) &lt;br /&gt;
| Modify any setting of your Vera. &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| mikkelj &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6277.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Monoprice Matrix HDMI Switch &lt;br /&gt;
| The Monoprice Matrix 4x4 HDMI Switch plugin is a Luup component that permits the Remote Control of a Monoprice Matrix switch (Model HDX-404E) &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed, strangely &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Monoprice HDX-404E &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_monoprice-hdmi-switch] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Onkyo Media Control Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of an Onkyo Receiver that has a built-in RS-232/Serial, or Ethernet, port and conforms to Onkyo's ISCP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Onky receiver &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_onkyo-media-control] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic IP Camera &lt;br /&gt;
| Used for adding and manipulating Panasonic IP Cameras. &lt;br /&gt;
| plugin &lt;br /&gt;
| Monitoring &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible IP camera &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic TV Plugin &lt;br /&gt;
| A Luup component that permits the Remote Control of a Panasonic Plasma TV that have a built-in RS-232/Serial port &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible Panasonic TV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3043.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_panasonic-tv] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Alarm Panel Plugins#Paradox_EVO_Panels|Paradox Alarm Plugin]] &lt;br /&gt;
| A Luup component that connects Vera to a Paradox Security Alarm panel (Digiplex DGP-848 or EVO series) via their Home Automation interface (Paradox PRT3) over USB. &lt;br /&gt;
| plugin &lt;br /&gt;
| Alarm System integration &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Paradox Digiplex DGP-848 or EVO series, Paradox PRT3 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2492.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_paradox-alarm] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone Dialer plugin &lt;br /&gt;
| Allows to automatically connect two (or more) parties via phones and/or VoIP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1589.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Dialer_Plugin] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Ping sensor &lt;br /&gt;
| A plugin which pings defined addresses (IP and domain names) a keeps the result of the ping in a variable. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| TedStriker &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6096.msg39996#msg39996][http://forum.micasaverde.com/index.php?topic=1997.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Prowl notifications &lt;br /&gt;
| Get notifications via Prowl on your iPhone &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4508.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Public Holiday virtual switch &lt;br /&gt;
| A binary switch, which is ON if today is a public holiday, and OFF if today is not. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| futzle &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6355.0][http://forum.micasaverde.com/index.php?topic=6355.msg39216#msg39216] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Randomizer plugin &lt;br /&gt;
| The code waits for a &amp;quot;random&amp;quot; period of time between intervalLower and intervalUpper (in minutes), and then it does an evaluation of whether to turn the Scene event &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2826.msg11175#msg11175] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5609.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Report Generator &lt;br /&gt;
| Gives you all your system information in one neat package. &lt;br /&gt;
| LabVIEW application &lt;br /&gt;
| System management &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6547.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RFXcom Gateway &lt;br /&gt;
| Gateway to RFXCOM devices wich can receive and send X10 RF, Homeeasy, Klik-aan Klik-Uit, Oregon, Harrison curtains etc.. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| evanes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RFXCOM interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=4991.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_rfxcom] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RS-485 RCS Thermostats Plugin &lt;br /&gt;
| The RCS thermostat plugin is a Luup component that connects Vera to RCS serial RS-485 thermostats. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| Bo Li &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| RS-485 thermostat &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SABnzbd download control &lt;br /&gt;
| Control SABnzbd downloads as a device &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3789.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_sabnzbd-control] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sending IR codes &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| IR emitter, Squeezebox V2/V3 or Transporter &lt;br /&gt;
| IRBlaster[http://www.gwendesign.com/slimserver/dev_hard_and_software.htm#irblaster], Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3712.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://wiki.micasaverde.com/index.php/Squeezebox#Sending_IR_codes_.28SB2.2F3_and_Transporter.29] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setting Z-Wave parameters &lt;br /&gt;
| Setting Z-Wave parameters using Luup/Lua &lt;br /&gt;
| code &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1937.msg7803#msg7803] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| ModifyUserData might be a simpler, but more dangerous way [http://forum.micasaverde.com/index.php?topic=6277.msg38070#msg38070]. &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| brsipaq &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2386.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. WakeupRamp &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SmartPhone plugin &lt;br /&gt;
| This is a basic HTML interface for accessing Vera from a smartphone web browser &lt;br /&gt;
| plugin &lt;br /&gt;
| UI &lt;br /&gt;
| Javier Guerra &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| compatible smartphone &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3320.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_smartphones] &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SND &lt;br /&gt;
| SMTP Notification Device - SMTP via UPnP &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| Ap15e &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6656.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Somfy Blind Interface &amp;amp;amp; Somfy ST30 Blind Interface &lt;br /&gt;
| Used to setup and control the Somfy blind control device. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Somfy Blind Interface &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Published &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQ Remote &lt;br /&gt;
| SQ Remote will allow you to control your MiOS home control system directly from your iPhone, iPod touch and iPad. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| Square Connect Inc. &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| iPhone or iPod or iPad &lt;br /&gt;
| iOS &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=9.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| SQBlaster &lt;br /&gt;
| An IRTransmitter1 implementation, for SquareConnect SQBlaster users control IR devices via Vera; permits the registration of the SquareConnect SQBlaster IR Blaster device with Vera &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| SquareConnect SQBlaster &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://code.mios.com/trac/mios_sqblaster] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox Control &lt;br /&gt;
| Let's you control and monitor Squeezebox music players. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5097.msg28878#msg28878] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Unreleased (beta) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://www.micasaverde.com/list-of-apps.php] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Squeezebox control for 'go to bed scene' &lt;br /&gt;
| Turns the player on, sets the player to sleep in an hour, plays an internet station. &lt;br /&gt;
| code &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| Klunket &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player or software emulation &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3889.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| squeezedVera, squeezedVeraScenes &lt;br /&gt;
| Run scripts that control your Z-Wave devices through Vera and define conditions for when they shall run. &lt;br /&gt;
| Squeezebox plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| m_gustafsson &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Squeezebox music player &lt;br /&gt;
| Squeezebox Server &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1047.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sunrise/sunset &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| Ap15e, javier &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2073.msg8132#msg8132][http://forum.micasaverde.com/index.php?topic=3836.0] &lt;br /&gt;
| [http://code.mios.com/svn_public/mios_genericutils/suntime.lua] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TED5000 &lt;br /&gt;
| Electricity and energy monitoring and management system &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| woodsby &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TED 5000 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5371] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TI eZ430-Chronos Wireless Watch Plugin &lt;br /&gt;
| Plugin that allows wireless control via Texas Instruments' eZ430-Chronos Wireless Watch. &lt;br /&gt;
| plugin &lt;br /&gt;
| Interfacing &lt;br /&gt;
| obot, ojas(?) &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| TI eZ430-Chronos &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5822.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_ez430-chronos] &lt;br /&gt;
| Pending &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TimerAnnouncer device &lt;br /&gt;
| Returns the the PC date and Time from the PC to circumvent issues with the Vera clock and reads any text and announces it as Voice (TTS). &lt;br /&gt;
| UPnP device &lt;br /&gt;
| Utility &lt;br /&gt;
| achalhoub &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows with .NET 4.0, MiOS &amp;amp;gt;= 1.1.1234 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5493.0][http://forum.micasaverde.com/index.php?topic=5466.msg36405#msg36405] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| TiVo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3437.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://david.blackledge.com/tivo/URLMenu.zip][http://www.tivocommunity.com/tivo-vb/showthread.php?t=392385] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trane Thermostats &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| plugin &lt;br /&gt;
| Energy management &lt;br /&gt;
| jgdurbin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1730.msg39409#msg39409] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Twitter notifications &lt;br /&gt;
| A little plugin that tweets current time when you click on On button. &lt;br /&gt;
| plugin/code &lt;br /&gt;
| Notifications &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2320.0][http://forum.micasaverde.com/index.php?topic=3662.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1412.0] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP listener &lt;br /&gt;
| Get your message across to Vera via UDP. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| nixterrimus &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3385.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP notifier &lt;br /&gt;
| Send a udp message whenever a device switches on or off or dims. &lt;br /&gt;
| code &lt;br /&gt;
| Notifications &lt;br /&gt;
| martin12345 &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6489.msg40643#msg40643] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| USB-UIRT &lt;br /&gt;
| USB-UIRT (Universal Infrared Receiver/Transmitter) allows to Transmit and Receive Infrared signals to common AV equipment. &lt;br /&gt;
| plugin &lt;br /&gt;
| Home Entertainment management &lt;br /&gt;
| MCV &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6304.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera Chrome Extension &lt;br /&gt;
| Permanent icon in the toolbar as the entry point. Clicking this would bring up an overlay that has all of the user's favorites (scenes or devices) within one-click. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| Shemoni Parekh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Vera UI (LabVIEW) &lt;br /&gt;
| This will be for displaying your Vera information in nice neat tables, parses your system and builds a TAB Based interface with built in dimmers that work well with a touch screen computer. &lt;br /&gt;
| client &lt;br /&gt;
| UI &lt;br /&gt;
| TimAlls &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Windows, [http://ftp.ni.com/support/softlib/labview/labview_runtime/8.0/windows/LabVIEW_8.0_Runtime_Engine.exe] &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6515.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| WIP &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Veralert &lt;br /&gt;
| Set up alerts/notifications to go straight to your 2.2 and above Android phone. &lt;br /&gt;
| plugin &lt;br /&gt;
| Notifications &lt;br /&gt;
| ragmondo &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Android &amp;amp;gt;= 2.2 &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?board=21.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Virtual StateDevice &lt;br /&gt;
| A simple virtual switch based on binary switch &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| 325xi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6375.msg40051#msg40051][http://forum.micasaverde.com/index.php?topic=2138.msg9104#msg9104] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WAI &lt;br /&gt;
| Where Am I? Converts Vera's location to an address and can be used to display debug messages on the GUI. &lt;br /&gt;
| plugin &lt;br /&gt;
| Development &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=6441.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wake-On-Lan plugin &lt;br /&gt;
| Used to create a virtual device that when configured with the MAC address of a machine on your LAN can send a command to wake that machine up. &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| mikeholczer, mcvflorin &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Device with WoL support &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=3718.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_wake-on-lan] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| WakeupRamp &lt;br /&gt;
| Device for ramping up a set of lights slowly &lt;br /&gt;
| plugin &lt;br /&gt;
| Utility &lt;br /&gt;
| ZMaF &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5718.msg33307#msg33307] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| cf. Slowly dim your lights &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Wavemaking &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| Utility &lt;br /&gt;
| aa6vh &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| two pumps &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=5865.msg34754#msg34754] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?action=dlattach;topic=5865.0;attach=1826;image]&lt;br /&gt;
|-&lt;br /&gt;
| Weather Plugin &lt;br /&gt;
| Captures, displays, and periodically updates Temperature and Humidity data based upon Vera's current location. &lt;br /&gt;
| plugin &lt;br /&gt;
| Temperature or Weather measurement &lt;br /&gt;
| guessed &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=1435.0] &lt;br /&gt;
| [http://code.mios.com/trac/mios_weather] &lt;br /&gt;
| Working &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Z-Wave routing matrix &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| code &lt;br /&gt;
| System management &lt;br /&gt;
| Ap15e &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| [http://forum.micasaverde.com/index.php?topic=2099.0] &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| obsoleted by ADD; cf. Debugging Utilities &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''Sources'''  =&lt;br /&gt;
&lt;br /&gt;
Sources:&amp;lt;br&amp;gt; http://forum.micasaverde.com/&amp;lt;br&amp;gt; http://code.mios.com/&amp;lt;br&amp;gt; http://wiki.micasaverde.com/index.php/Luup_Projects&amp;lt;br&amp;gt; http://forum.micasaverde.com/index.php?topic=6280.msg40147#msg40147&amp;lt;br&amp;gt; http://www.micasaverde.com/list-of-apps.php&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= '''Todo''' =&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2011-08-14T22:23:53Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* function: append */ Provide an example, augment the text a little since it was a mix-mash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Now running version: ' .. luup.version)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: device  ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device &lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;if( version_branch ~= 1 or version_major ~= 0 or version_minor &amp;lt; 843 ) then&lt;br /&gt;
    luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
    return false&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number, as found on the location tab in the setup UI.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.timezone doesn't work.&lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number. The members are: room_num (number), device_type (string), category_num (number), device_num_parent (number), ip (string), mac (string), id (string), description (string), udn (string). [See also: [[Lua Device Structure]].] Example to log device #5's IP addess and its internal ID:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
room_num: This is the number of the room the device is in. &lt;br /&gt;
&lt;br /&gt;
device_type: This is a string representing the type of the device.&lt;br /&gt;
&lt;br /&gt;
category_num: This is a category for the device.  See: [[Luup_Device_Categories]] for a list. &lt;br /&gt;
&lt;br /&gt;
device_num_parent: This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
&lt;br /&gt;
ip: If this device is IP based, this is the IP address. &lt;br /&gt;
&lt;br /&gt;
mac: If this device is IP based, this is the MAC address. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
embedded: (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
&lt;br /&gt;
hidden: (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
&lt;br /&gt;
invisible: (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
&lt;br /&gt;
description: This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
&lt;br /&gt;
udn: This is the UDN for the UPnP device. &lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;for k, v in pairs(lug_device) do&lt;br /&gt;
    for k2, v2 in v do&lt;br /&gt;
        luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. &amp;quot;v2&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Room #1 is called: ' .. luup.rooms[1])&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the scene number. The members are: room_num (number), description(string), hidden(boolean)&lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called in 'seconds' seconds, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead. &lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed. Normally it is called by a worker thread and is expected to return immediately. &lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
version: UI5 and above&lt;br /&gt;
&lt;br /&gt;
Checks whether a device has successfully completed it's startup sequence. If so, &amp;lt;tt&amp;gt;is_ready&amp;lt;/tt&amp;gt; returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a condition to the &amp;lt;tt&amp;gt;&amp;lt;incoming&amp;gt; block&amp;lt;/tt&amp;gt; that only processes data if &amp;lt;tt&amp;gt;is_ready(lul_device)&amp;lt;/tt&amp;gt; is &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; parameter, if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;incoming&amp;gt;&lt;br /&gt;
    if (luup.is_ready(lul_device) == false) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    doSomething(lul_device)&lt;br /&gt;
&amp;lt;/incoming&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device, which, if it's a string, is interpreted as a udn, and if it's a number, is the device number. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local lul_arguments = {}&lt;br /&gt;
lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;]=50&lt;br /&gt;
lul_resultcode, lul_resultstring, lul_job, lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, lul_arguments, 5)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), device (string or number), [startup (bool)] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP service+variable will be set to value for device, which if it's a string, is interpreted as a udn, and if it's a number, as a device id. If there are events or notifications tied to the variable they will be fired. &lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'. If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: value (string), time (number) &lt;br /&gt;
&lt;br /&gt;
If the service+variable or device does not exist, it returns nothing. Otherwise it returns the value of the UPnP service+variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). You can assign just the value to a variable, as follows:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: attr_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value. Examples of attributes are 'mac', 'name', 'id', etc. &lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the WAP mobile phone plugin as an example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
    local lul_html = &amp;quot;&amp;lt;head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;title&amp;gt;Main&amp;lt;/title&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;/head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;body&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;Choose a room:&amp;lt;br/&amp;gt;\n&amp;quot;&lt;br /&gt;
    return lul_html&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nill), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a udn and if a number as a device id, function_name will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to function_name. If variable is nill, function_name will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns:&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.device_supports_service doesn't work reliably: http://forum.micasaverde.com/index.php?topic=5600.0&lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (boolean), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to true if the device is failing. If device is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: boolean &lt;br /&gt;
&lt;br /&gt;
Returns true if it's past sunset and before sunrise. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: sleep  ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.sleep doesn't work reliably: http://bugs.micasaverde.com/view.php?id=1480&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: The first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If Timeout is specified, the function will timeout after that many seconds. If Username and Password are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Adds one child to &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
Pass in the &amp;lt;tt&amp;gt;ptr&amp;lt;/tt&amp;gt; which you received from the &amp;lt;tt&amp;gt;luup.chdev.start&amp;lt;/tt&amp;gt; call. Give each child a unique id so you can keep track of which is which. You can optionally provide a &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt; which the user sees in the user interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; is the UPnP device type, such as &amp;lt;tt&amp;gt;urn:schemas-upnp-org:device:BinaryLight:1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;device_filename&amp;lt;/tt&amp;gt; is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any &amp;lt;tt&amp;gt;device_type&amp;lt;/tt&amp;gt; you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in &amp;lt;tt&amp;gt;implementation_filename&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;tt&amp;gt;embedded&amp;lt;/tt&amp;gt; is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;parameters&amp;lt;/tt&amp;gt; are UPnP service,variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt; to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice&amp;lt;/tt&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
luup.chdev.append(device, children,&lt;br /&gt;
    string.format(&amp;quot;Input-%d&amp;quot;, i), string.format(&amp;quot;Input %d&amp;quot;, i),&lt;br /&gt;
    &amp;quot;urn:schemas-micasaverde-com:device:TemperatureSensor:1&amp;quot;, &amp;quot;D_TemperatureSensor1.xml&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;quot;, &amp;quot;urn:upnp-org:serviceId:TemperatureSensor1,CurrentTemperature=50&amp;quot;, true)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== Module: io  ==&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ip (string) port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port. &lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred. &lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called ''intercept'' previously so the data is passed. The time unit for ''timeout'' is seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false&lt;br /&gt;
&lt;br /&gt;
== Module: luup.job  ==&lt;br /&gt;
&lt;br /&gt;
=== function: status  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job_number (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: job_status (number), notes (string) &lt;br /&gt;
&lt;br /&gt;
If job_number is invalid the function returns -1. If device is a string it is interpreted as an UDN, if it's a number, as a device ID. &lt;br /&gt;
&lt;br /&gt;
=== function: set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string), value (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This stores a setting for a job. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;job&amp;gt;&lt;br /&gt;
    luup.job.set(lul_job, &amp;quot;comments&amp;quot;, &amp;quot;In progress...&amp;quot;)&lt;br /&gt;
    local comments = luup.job.setting(lul_job, &amp;quot;comments&amp;quot;)&lt;br /&gt;
    luup.log(&amp;quot;job comments = &amp;quot; .. comments)&lt;br /&gt;
&amp;lt;/job&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: setting  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string) &lt;br /&gt;
&lt;br /&gt;
returns: value (string) &lt;br /&gt;
&lt;br /&gt;
This returns a setting for a job. &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Install_LUUP_Plugins</id>
		<title>Install LUUP Plugins</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Install_LUUP_Plugins"/>
				<updated>2011-08-14T20:08:28Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Prerequisites */ Reference to avoid using IE...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
[[Category:How To]]&lt;br /&gt;
'''HOWTO  install LUUP plugins on your Vera.'''&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
* Vera 1 or 2 hardware.&lt;br /&gt;
* Luup/Lua capable firmware version (all recent firmwares are).&lt;br /&gt;
* Locally available plugin files (downloaded in advance).&lt;br /&gt;
* A Web Browser, other than Internet Exporer (IE), to upload the files.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
Luup coded plugins can be used for a variety of tasks, like creating scenes, virtual devices and even tweaking your Vera to your own likes. These plugins can be referred to as &amp;quot;beta plugins&amp;quot; or &amp;quot;user-created plugins&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Code is mainly discussed (and sometimes available from) here: [http://forum.micasaverde.com/index.php?board=20.0]&lt;br /&gt;
&lt;br /&gt;
Officially supported plugins are available here [http://code.mios.com]&lt;br /&gt;
&lt;br /&gt;
This manual starts with the assumption you have downloaded the appropriate .json and .xml files to your harddisk.&lt;br /&gt;
&lt;br /&gt;
=== Exclusion ===&lt;br /&gt;
These instructions should not be used in combination with plugins that are available through the MiOS Marketplace. Plugins from the Marketplace have a &amp;quot;click and install&amp;quot; functionality.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
# Open your Vera UI4.&lt;br /&gt;
# Upload the files of the plugin you downloaded to your Vera box: 'MiOS Developers' -&amp;gt; 'Luup files' -&amp;gt; 'Upload files'. Do not check 'Restart Luup after upload' (bottom of the page); if it's checked, uncheck it.&lt;br /&gt;
# Go to 'Create device' and create a new Luup device with UpnpDevFilename ''D_&amp;lt;your_plugin&amp;gt;.xml''.  &lt;br /&gt;
# Set the Description to whatever you want to name the device.&lt;br /&gt;
# Restart the Lua engine to initialize the UPnP variables (curving arrows top right in your UI).&lt;br /&gt;
# Reload the webpage. Best use &amp;lt;CTRL + F5&amp;gt; to do so.&lt;br /&gt;
# Make the appropriate Luup variable settings as per directions for the creator of the plugin.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''': In some cases a power cycle/reboot of your Vera is necessary.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Official repository for plugins:&lt;br /&gt;
http://code.mios.com&lt;br /&gt;
&lt;br /&gt;
Alternative location (for now)&lt;br /&gt;
[http://wiki.micasaverde.com/index.php/Luup_plugins_and_Luup_code]&lt;br /&gt;
&lt;br /&gt;
Related forum threads are here:&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?board=20.0&lt;br /&gt;
&lt;br /&gt;
- and -&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php?topic=6569.0&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2011-08-13T22:40:45Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* function: is_ready */ Indicate that this isn't implemented until UI5, provide an example snippet.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Now running version: ' .. luup.version)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: device  ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device &lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;if( version_branch ~= 1 or version_major ~= 0 or version_minor &amp;lt; 843 ) then&lt;br /&gt;
    luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
    return false&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number, as found on the location tab in the setup UI.&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.timezone doesn't work.&lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number. The members are: room_num (number), device_type (string), category_num (number), device_num_parent (number), ip (string), mac (string), id (string), description (string), udn (string). [See also: [[Lua Device Structure]].] Example to log device #5's IP addess and its internal ID:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
room_num: This is the number of the room the device is in. &lt;br /&gt;
&lt;br /&gt;
device_type: This is a string representing the type of the device.&lt;br /&gt;
&lt;br /&gt;
category_num: This is a category for the device.  See: [[Luup_Device_Categories]] for a list. &lt;br /&gt;
&lt;br /&gt;
device_num_parent: This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
&lt;br /&gt;
ip: If this device is IP based, this is the IP address. &lt;br /&gt;
&lt;br /&gt;
mac: If this device is IP based, this is the MAC address. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
embedded: (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
&lt;br /&gt;
hidden: (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
&lt;br /&gt;
invisible: (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
&lt;br /&gt;
description: This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
&lt;br /&gt;
udn: This is the UDN for the UPnP device. &lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;for k, v in pairs(lug_device) do&lt;br /&gt;
    for k2, v2 in v do&lt;br /&gt;
        luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. &amp;quot;v2&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.log('Room #1 is called: ' .. luup.rooms[1])&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the scene number. The members are: room_num (number), description(string), hidden(boolean)&lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called in 'seconds' seconds, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead. &lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed. Normally it is called by a worker thread and is expected to return immediately. &lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
version: UI5 and above&lt;br /&gt;
&lt;br /&gt;
Checks whether a device has successfully completed it's startup sequence. If so, &amp;lt;tt&amp;gt;is_ready&amp;lt;/tt&amp;gt; returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a condition to the &amp;lt;tt&amp;gt;&amp;lt;incoming&amp;gt; block&amp;lt;/tt&amp;gt; that only processes data if &amp;lt;tt&amp;gt;is_ready(lul_device)&amp;lt;/tt&amp;gt; is &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;device&amp;lt;/tt&amp;gt; parameter, if it's a string, is interpreted as a udn.  If it's a number, it's interpreted as a device number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;incoming&amp;gt;&lt;br /&gt;
    if (luup.is_ready(lul_device) == false) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    doSomething(lul_device)&lt;br /&gt;
&amp;lt;/incoming&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device, which, if it's a string, is interpreted as a udn, and if it's a number, is the device number. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local lul_arguments = {}&lt;br /&gt;
lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;]=50&lt;br /&gt;
lul_resultcode, lul_resultstring, lul_job, lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;SetLoadLevelTarget&amp;quot;, lul_arguments, 5)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), device (string or number), [startup (bool)] &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP service+variable will be set to value for device, which if it's a string, is interpreted as a udn, and if it's a number, as a device id. If there are events or notifications tied to the variable they will be fired. &lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'. If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: value (string), time (number) &lt;br /&gt;
&lt;br /&gt;
If the service+variable or device does not exist, it returns nothing. Otherwise it returns the value of the UPnP service+variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). You can assign just the value to a variable, as follows:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;, &amp;quot;LoadLevelTarget&amp;quot;, 5)&lt;br /&gt;
luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: attr_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value. Examples of attributes are 'mac', 'name', 'id', etc. &lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the WAP mobile phone plugin as an example:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
    local lul_html = &amp;quot;&amp;lt;head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;title&amp;gt;Main&amp;lt;/title&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;/head&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;&amp;lt;body&amp;gt;\n&amp;quot; ..&lt;br /&gt;
                     &amp;quot;Choose a room:&amp;lt;br/&amp;gt;\n&amp;quot;&lt;br /&gt;
    return lul_html&lt;br /&gt;
end&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nill), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a udn and if a number as a device id, function_name will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to function_name. If variable is nill, function_name will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns:&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.device_supports_service doesn't work reliably: http://forum.micasaverde.com/index.php?topic=5600.0&lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (boolean), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to true if the device is failing. If device is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: boolean &lt;br /&gt;
&lt;br /&gt;
Returns true if it's past sunset and before sunrise. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: sleep  ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds &lt;br /&gt;
&lt;br /&gt;
returns: none &lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' luup.sleep doesn't work reliably: http://bugs.micasaverde.com/view.php?id=1480&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: The first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If Timeout is specified, the function will timeout after that many seconds. If Username and Password are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Enumerates one child of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Give each child a unique id so you can keep track of which is which. You can optionally provide a description which the user sees in the user interface. device_type is the UPnP device type, such as urn:schemas-upnp-org:device:BinaryLight:1. If device_filename is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any device_type you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in implementation_filename. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in implementation_filename. If embedded is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The parameters are&amp;amp;nbsp;UPnP service+variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a , and = to separate service, variable and value, like this: service,variable=value \n service...&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== Module: io  ==&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ip (string) port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port. &lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred. &lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called ''intercept'' previously so the data is passed. The time unit for ''timeout'' is seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false&lt;br /&gt;
&lt;br /&gt;
== Module: luup.job  ==&lt;br /&gt;
&lt;br /&gt;
=== function: status  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job_number (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: job_status (number), notes (string) &lt;br /&gt;
&lt;br /&gt;
If job_number is invalid the function returns -1. If device is a string it is interpreted as an UDN, if it's a number, as a device ID. &lt;br /&gt;
&lt;br /&gt;
=== function: set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string), value (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
This stores a setting for a job. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;job&amp;gt;&lt;br /&gt;
    luup.job.set(lul_job, &amp;quot;comments&amp;quot;, &amp;quot;In progress...&amp;quot;)&lt;br /&gt;
    local comments = luup.job.setting(lul_job, &amp;quot;comments&amp;quot;)&lt;br /&gt;
    luup.log(&amp;quot;job comments = &amp;quot; .. comments)&lt;br /&gt;
&amp;lt;/job&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== function: setting  ===&lt;br /&gt;
&lt;br /&gt;
parameters: job (userdata), setting (string) &lt;br /&gt;
&lt;br /&gt;
returns: value (string) &lt;br /&gt;
&lt;br /&gt;
This returns a setting for a job. &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Update_Firmware</id>
		<title>Update Firmware</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Update_Firmware"/>
				<updated>2011-07-29T20:33:19Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Minor tweaks to make formatting clearer, and menu's work correctly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How To]]&lt;br /&gt;
&lt;br /&gt;
'''How to update Vera to a new firmware'''&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Vera Hardware (either Vera 1 or Vera 2)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* Reliable power source (Do NOT update Vera while on battery operation)&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Your Vera box can be upgraded with software from MiOS. You can either be asked to upgrade automatically or you can decide to do a manual upgrade at any point in time.&lt;br /&gt;
&lt;br /&gt;
=== General Notice ===&lt;br /&gt;
When installing the firmware, make sure you have the login to your vera system set to standard (no http login needed) via the remote control server.&lt;br /&gt;
&lt;br /&gt;
If you have chosen http authentication &amp;quot;YES&amp;quot; from the https://cp.mios.com site (settings section) you will get a pop up where you should enter username and password. &lt;br /&gt;
Currently there is an issue that this pop-up disappears within 10 seconds in some browswers. Most users will therefore be unable to provide their username and password.&lt;br /&gt;
&lt;br /&gt;
The current workaround is to&lt;br /&gt;
* disable authentication&lt;br /&gt;
* upgrade &lt;br /&gt;
* re-enable the authentication from cp.mios.com&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
&lt;br /&gt;
=== Create a backup! ===&lt;br /&gt;
You can create and restore backup form the advanced settings section in your toolbox. After double clicking that, go to the &amp;quot;BACKUP&amp;quot; tab.&lt;br /&gt;
If you check the &amp;quot;Backup my configuration at MiOS.com&amp;quot; option, Vera will automatically backup your configuration online each night so that if Vera breaks and we send you another one, you can go to MiOS.com, download the last backup file, and restore it so you don't need to setup Vera again. &lt;br /&gt;
MiOS.com keeps 5 daily backups, so if you somehow mess up Vera's setup, you can also restore Vera to a prior backup.&lt;br /&gt;
&lt;br /&gt;
To manually backup Vera, click 'Create Backup'. Vera will give you a backup file to save to your PC.&lt;br /&gt;
&lt;br /&gt;
To restore a backup file, either one that you created manually with 'Create Backup', or an automatic backup at MiOS.com, click 'Browse' to find the backup file, select it, and click 'Restore'.&lt;br /&gt;
&lt;br /&gt;
You can also click 'Restore to Factory Defaults' to reset Vera's configuration just like it was when Vera first arrived.&lt;br /&gt;
&lt;br /&gt;
=== Manual Upgrades ===&lt;br /&gt;
&lt;br /&gt;
To manually load a firmware to your Vera:&lt;br /&gt;
* click the Advanced icon in the toolbox section of your Vera's UI.&lt;br /&gt;
* Select the tab &amp;quot;FIRMWARE&amp;quot;&lt;br /&gt;
* Vera automatically checks connectivity to the download server (download1.mios.com or download2.mios.com).&lt;br /&gt;
* Vera shows you the current firmware version and provides info if this firmware is up to date or not.&lt;br /&gt;
* You can upgrade your Vera by dropping a specific download URL for your Vera in the &amp;quot;URL for MiOS custom firmware&amp;quot; box.&amp;lt;br&amp;gt;&lt;br /&gt;
Please contact MiOS for the correct URL first.&lt;br /&gt;
&lt;br /&gt;
=== Automatic Upgrades ===&lt;br /&gt;
*NOTE: Updating a Vera 1 to the latest official firmware requires an intermediate step. Always consult MiOS tech support when attempting to upgrade your Vera 1 to the latest firmware when your current firmware is older than 1.1.1062.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
http://wiki.micasaverde.com/index.php/Vera1_To_Vera2_Migration&lt;br /&gt;
&lt;br /&gt;
You can automatically update your Vera by accepting the pop-up notice that a new firmware is available, asking you if you want to upgrade.&amp;lt;br&amp;gt;&lt;br /&gt;
Also you can go to this url:&amp;lt;br&amp;gt;&lt;br /&gt;
http://micasaverde.com/vera2&lt;br /&gt;
&lt;br /&gt;
From there you can follow the steps to automatically update your Vera to the latest official firmware release.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* Vera 1 upgrading to 1.1.1245 directly from a version older than 1.1.1062 does not work. Please contact tech support at MiOS and ask them to help you install intermediate release 1.1.1062.&lt;br /&gt;
* Sometimes an upgrade makes Vera go back to her default locale settings (USA). For users in the EU their devices do not work anymore. As for the locale issue mentioned in this thread, please refer to [http://forum.mios.com/index.php?topic=6652.0 this Forum post]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Update URL for your Vera 1 or 2 Hardware http://micasaverde.com/vera2&lt;br /&gt;
* Recovery procedures&lt;br /&gt;
** Vera 1 hardware [http://wiki.micasaverde.com/index.php/Firmware_Flash_Vera_1 Recovery]&lt;br /&gt;
** Vera 2 hardware [http://wiki.micasaverde.com/index.php/Firmware_Flash_Vera2 Recovery]&lt;br /&gt;
Note: To be done only if you Vera unit doesn't boot anymore!!! See in each link how the leds should blink if this is the case !!!&lt;br /&gt;
&lt;br /&gt;
* Related forum threads&lt;br /&gt;
** http://forum.mios.com/index.php?topic=6652.0&amp;lt;br&amp;gt;&lt;br /&gt;
** http://forum.mios.com/index.php?topic=4423.0&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Store_logs_USB</id>
		<title>Store logs USB</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Store_logs_USB"/>
				<updated>2011-05-18T02:11:58Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Minor edits to simplify and standardize the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
[[Category:How To]]&lt;br /&gt;
'''HOWTO get your Vera log an attached USB drive.'''&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
On larger Vera deployments, with large numbers of Z-Wave Devices, Plugins or Scenes, it may be necessary to move the Vera log files to external storage to free-up space for Vera to function correctly.&lt;br /&gt;
&lt;br /&gt;
MiOS Version 1.1.1245 introduced an option to let users attach a standard USB drive to offload Vera's log files, the details are in the MiOS [[Release Notes]], inlined here:&lt;br /&gt;
&lt;br /&gt;
:''2. There is an option with Vera2 on Advanced, Logs to enable logging to a USB drive. This frees up quite a bit of memory, so if you have a lot of devices or plugins and your Vera is running slow or crashing because it's running out of memory, this is a solution. Note that after you check the box it can take up to 30 minutes to format the USB drive, and bootup will take a couple minutes longer with the USB drive installed. It will continue to boot up fine without the USB drive connected, just don't remove it while Vera is running. ''&lt;br /&gt;
&lt;br /&gt;
:''IMPORTANT: Use a new USB drive that hasn't already been formatted. In particular, don't use a USB drive that is already formatted for Mac''&lt;br /&gt;
&lt;br /&gt;
This [[:Category:How To|How To]] note shows you how to enable this option, how to validate that it's been enabled, and provides pointers to further reading.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
This solution will requires:&lt;br /&gt;
* Vera 2 Hardware ''only''&lt;br /&gt;
* Firmware 1.1.1245 and above&lt;br /&gt;
* A ''new'' USB Drive&lt;br /&gt;
** Drive should be between 512Mb and 1Gb&lt;br /&gt;
** Vera will create its own partition on it which will be 512Mb in size and use that to write logfiles to it.&lt;br /&gt;
** Experienced users only: a ''newly'' FAT-formatted ''existing'' USB drive may work.  The jury is out on this one.&lt;br /&gt;
&lt;br /&gt;
==Instructions==&lt;br /&gt;
&lt;br /&gt;
* After you got your usb-drive connected to the USB port on the backside of your Vera.&amp;lt;br /&amp;gt;Please be patient, it might not work the first time, but it will work. DO NOT REMOVE THE DRIVE while Vera boots/reboots or during power-cycle operations.&lt;br /&gt;
* Log into the UI&lt;br /&gt;
* Select &amp;quot;Advanced&amp;quot; on the sop right (next to &amp;quot;MiOS developers&amp;quot; in the toolbox)&lt;br /&gt;
* Select the &amp;quot;Logs&amp;quot;tab&lt;br /&gt;
* Activate the &amp;quot;Store logs on USB device*&amp;quot; option and READ the text there:&lt;br /&gt;
: ''Please connect an USB drive first then check the checkbox.''&lt;br /&gt;
: ''WARNING: The USB drive will be erased. Wait 20 minutes after clicking OK.''&lt;br /&gt;
: ''Status'' &lt;br /&gt;
* Click the &amp;quot;OK&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
Wait until vera reports progress.&lt;br /&gt;
&lt;br /&gt;
If MiOS reports &amp;quot;FAILURE&amp;quot;, repeat the process.&lt;br /&gt;
If MiOS reports Success, you are done.&lt;br /&gt;
&lt;br /&gt;
==Validation==&lt;br /&gt;
For those who would like to validate it's setup correctly, here are some detailed steps.&lt;br /&gt;
&lt;br /&gt;
SSH into your vera (using Putty or any other SSH client)&lt;br /&gt;
Login as &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; with the password thats on the back of your box.&lt;br /&gt;
&lt;br /&gt;
At the prompt type:&lt;br /&gt;
  root@MiOS_1xxxx:~# df -h&lt;br /&gt;
&lt;br /&gt;
If you find something like:&lt;br /&gt;
  Filesystem                Size      Used Available Use% Mounted on&lt;br /&gt;
  ...&lt;br /&gt;
    /dev/scsi/host0/bus0/target0/lun0/part1&lt;br /&gt;
                          506.2M     29.2M    451.3M   6% /tmp/log/cmh&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Then your USB drive is being used to storing MiOS log files.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* USB Drive logging discussion [http://forum.micasaverde.com/index.php?topic=6439]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Category:How_To</id>
		<title>Category:How To</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Category:How_To"/>
				<updated>2011-05-18T00:50:13Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Category:How_Tos</id>
		<title>Category:How Tos</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Category:How_Tos"/>
				<updated>2011-05-18T00:46:55Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Security_device</id>
		<title>Security device</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Security_device"/>
				<updated>2011-05-17T17:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
[[Category:How To's]]&lt;br /&gt;
&lt;br /&gt;
Here are some general answers to &amp;quot;How can I...&amp;quot;&lt;br /&gt;
You may find more info in the linked forumthreads.&lt;br /&gt;
&lt;br /&gt;
==A==&lt;br /&gt;
==B==&lt;br /&gt;
==C==&lt;br /&gt;
==D==&lt;br /&gt;
==E==&lt;br /&gt;
==F==&lt;br /&gt;
==G==&lt;br /&gt;
==H==&lt;br /&gt;
==I==&lt;br /&gt;
==J==&lt;br /&gt;
==K==&lt;br /&gt;
==L==&lt;br /&gt;
==M==&lt;br /&gt;
==N==&lt;br /&gt;
==O==&lt;br /&gt;
==P==&lt;br /&gt;
==Q==&lt;br /&gt;
==R==&lt;br /&gt;
==S==&lt;br /&gt;
===Security===&lt;br /&gt;
====Make a button on a Z-Wave handheld remote be a 'panic' button that sends out a text message====&lt;br /&gt;
Add yourself and your contact information on the [[Users]] page, add the handheld remote using Method #2 in create a scene and attach the event 'Scene button is pressed' as explained in [[ZWave_Add_Controller]], and check off your user name in the notification section of the event.&lt;br /&gt;
==T==&lt;br /&gt;
==U==&lt;br /&gt;
===USB===&lt;br /&gt;
====How to store vera's logs onto an USB drive====&lt;br /&gt;
see here how to [[Store logs USB]]&lt;br /&gt;
&lt;br /&gt;
==V==&lt;br /&gt;
==W==&lt;br /&gt;
==X==&lt;br /&gt;
==Y==&lt;br /&gt;
==Z==&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Paradox_Alarm_Plugin</id>
		<title>Paradox Alarm Plugin</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Paradox_Alarm_Plugin"/>
				<updated>2011-04-04T17:04:38Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Undo revision 2829 by Silviu.parvana (Talk) Content lives at code.mios.com, not here!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
[[Category:3rd Party]]&lt;br /&gt;
This page has moved to the MiOS Code Respository, along with it's Installation procedures&lt;br /&gt;
&lt;br /&gt;
    http://code.mios.com/trac/mios_paradox-alarm&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Lua_extensions</id>
		<title>Luup Lua extensions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Lua_extensions"/>
				<updated>2011-01-22T01:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* function: variable_set */ Changed wording a little to make intent clearer for variable_set's startup parameter (introduced 1.1.1174)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to the [[http://lua.org Lua]] commands described in the [[http://www.lua.org/manual/5.1/ Lua reference manual]], you can also reference in your Lua code variables and functions from modules which the Luup engine provides as follows: &lt;br /&gt;
&lt;br /&gt;
== Module: luup  ==&lt;br /&gt;
&lt;br /&gt;
These are general purpose functions and variables. Call them by using the luup. module, such as: &lt;br /&gt;
&lt;br /&gt;
 luup.log('Now running version: ' .. luup.version)&lt;br /&gt;
&lt;br /&gt;
=== variable: device ===&lt;br /&gt;
&lt;br /&gt;
The ID of this device instance, if it's running as part of a device&lt;br /&gt;
&lt;br /&gt;
=== variable: version, version_branch, version_major, version_minor  ===&lt;br /&gt;
&lt;br /&gt;
''version'' contains the version of the luup engine, such as &amp;quot;1.0.843&amp;quot;, as a string. The version consists of 3 numbers separated by a period: the branch, the major version, and the minor version. To make it easier to compare against a minimum acceptable version, ''version_branch, version_major and version_minor'' return each component as a number. You can put a comparison in the startup function in your Luup plugin and return false if the minimum version isn't met. The user will then see that the Luup device's startup check failed: &lt;br /&gt;
&lt;br /&gt;
 if( version_branch~=1 or version_major~=0 or version_minor&amp;amp;lt;843 ) then&lt;br /&gt;
 luup.log(&amp;quot;I need version 1.0.843 minimum to run&amp;quot;)&lt;br /&gt;
 return false&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
=== variable: longitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the longitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: latitude  ===&lt;br /&gt;
&lt;br /&gt;
Contains the latitude as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: timezone  ===&lt;br /&gt;
&lt;br /&gt;
Contains the timezone as a number, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: city  ===&lt;br /&gt;
&lt;br /&gt;
Contains the city as a string, as found on the location tab in the setup UI. &lt;br /&gt;
&lt;br /&gt;
=== variable: devices  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the devices in the system as a table indexed by the device number. The members are: room_num (number), device_type (string), category_num (number), device_num_parent (number), ip (string), mac (string), id (string), description (string), udn (string). [See also: [[Lua Device Structure]].] Example to log device #5's IP addess and its internal ID: &lt;br /&gt;
&lt;br /&gt;
  luup.log('Device #5 ip: ' .. luup.devices[5].ip .. ' id: ' .. luup.devices[5].id)&lt;br /&gt;
&lt;br /&gt;
room_num: This is the number of the room the device is in. &lt;br /&gt;
&lt;br /&gt;
device_type: This is a number representing the type of device. See: [[Luup Device Types Categories]] for a list. &lt;br /&gt;
&lt;br /&gt;
category_num: This is a category for the device. [See: [[Luup Device Types Categories]]] &lt;br /&gt;
&lt;br /&gt;
device_num_parent: This is the number of the parent device. See: [[Lua Device Structure]] for details. &lt;br /&gt;
&lt;br /&gt;
ip: If this device is IP based, this is the IP address. &lt;br /&gt;
&lt;br /&gt;
mac: If this device is IP based, this is the MAC address. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
embedded: (boolean) If this device is embedded, it means that it doesn't have its own room or exist as a separate device. It should be considered part of its parent. Like a 3-in-1 sensor is a device with 3 embedded child devices. &lt;br /&gt;
&lt;br /&gt;
hidden: (boolean) If true the user checked the 'hidden' box and doesn't want to see the device on the dashboard. &lt;br /&gt;
&lt;br /&gt;
invisible: (boolean) If true the device is 'for internal use only' and shouldn't be presented to the user. &lt;br /&gt;
&lt;br /&gt;
description: This is the text description for the device as supplied by the user in the web UI. &lt;br /&gt;
&lt;br /&gt;
udn: This is the UDN for the UPnP device. &lt;br /&gt;
&lt;br /&gt;
This code will log all the attributes from all the devices: &lt;br /&gt;
&lt;br /&gt;
  for k,v in pairs(lug_device) do&lt;br /&gt;
   for k2,v2 in v&lt;br /&gt;
     luup.log(&amp;quot;Device #&amp;quot; .. k .. &amp;quot;:&amp;quot; .. k2 .. &amp;quot;=&amp;quot; .. &amp;quot;v2&amp;quot;)&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
=== variable: rooms  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the rooms as a table of strings indexed by the room number. Example: &lt;br /&gt;
&lt;br /&gt;
  luup.log('Room #1 is called: ' .. luup.rooms[1])&lt;br /&gt;
&lt;br /&gt;
=== variable: scenes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the scenes in the system as a table indexed by the device number. The members are: room_num (number), description(string), hidden(boolean) &lt;br /&gt;
&lt;br /&gt;
=== variable: remotes  ===&lt;br /&gt;
&lt;br /&gt;
Contains all the remotes in the system as a table indexed by the remote id. The members are: remote_file (string), room_num (number), description(string) &lt;br /&gt;
&lt;br /&gt;
=== function: log  ===&lt;br /&gt;
&lt;br /&gt;
parameters: what_to_log (string), log_level (optional, number) &lt;br /&gt;
&lt;br /&gt;
return: nothing &lt;br /&gt;
&lt;br /&gt;
Writes what_to_log to the log, /var/log/cmh/LuaUPnP.log, with the given log_level, which is 50 by default. See: [[Luup Loglevels]] &lt;br /&gt;
&lt;br /&gt;
=== function: task  ===&lt;br /&gt;
&lt;br /&gt;
parameters: message (string), status (number), description (string), handle (number) &lt;br /&gt;
&lt;br /&gt;
return: handle (number) &lt;br /&gt;
&lt;br /&gt;
When the Luup engine is starting status messages are displayed for the various modules as they're initialized. Normally each device, including Luup devices, automatically log their status and the user is shown an error if the device doesn't start, such as if the 'startup' function returns an error. &lt;br /&gt;
&lt;br /&gt;
If you have other startup sequences which you want the user to see to know that startup hasn't finished yet, call this function passing in a handle of -1 for the first call. The status should be: 1=Busy, 2=Error, 4=Successful. Message is the current state, such as 'downloading', and description describes the module, like 'Smartphone UI'. After the first call, store the handle and pass it on future calls to update the status rather than add a new one. &lt;br /&gt;
&lt;br /&gt;
=== function: call_delay  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), seconds (number), data (string), thread (bool)&lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called in 'seconds' seconds, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. function_name will only be called once and you must call call_delay again if you want it called again, or use call_timer instead.&lt;br /&gt;
&lt;br /&gt;
If thread is specified and is true or 1, the call back will be made in it's own thread and can block if needed.  Normally it is called by a worker thread and is expected to return immediately.&lt;br /&gt;
&lt;br /&gt;
=== function: call_timer  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), type (number), time (string), days (string), data (string) &lt;br /&gt;
&lt;br /&gt;
returns: result (number) &lt;br /&gt;
&lt;br /&gt;
The function 'function_name', which must be passed as a string, will be called when the timer is triggered, and will be passed the string 'data'. The function returns 0 if successful. See: [[Luup Declarations#timed_function_callback]] for the names and syntax of the parameters that will be passed to function_name. &lt;br /&gt;
&lt;br /&gt;
Type is 1=Interval timer, 2=Day of week timer, 3=Day of month timer, 4=Absolute timer. For an interval timer, days is not used, and Time should be a number of seconds, minutes, or hours using an optional 'h' or 'm' suffix. Example: 30=call in 30 seconds, 5m=call in 5 minutes, 2h=call in 2 hours. For a day of week timer, Days is a comma separated list with the days of the week where 1=Monday and 7=Sunday. Time is the time of day in hh:mm:ss format. Time can also include an 'r' at the end for Sunrise or a 't' for Sunset and the time is relative to sunrise/sunset. For example: Days=&amp;quot;3,5&amp;quot; Time=&amp;quot;20:30:00&amp;quot; means your function will be called on the next Wed or Fri at 8:30pm. Days=&amp;quot;1,7&amp;quot; Time=&amp;quot;-3:00:00r&amp;quot; means your function will be called on the next Monday or Sunday 3 hours before sunrise. Day of month works the same way except Days is a comma separated list of days of the month, such as &amp;quot;15,20,30&amp;quot;. For an absolute timer, Days is not used, and Time should be in the format: &amp;quot;yyyy-mm-dd hh:mm:ss&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Data can be a string passed back to the function. The function should be declared so it takes a single argument, which is this data. &lt;br /&gt;
&amp;lt;pre&amp;gt;function refreshCache(stuff)&lt;br /&gt;
    ....&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function startup()&lt;br /&gt;
    --&lt;br /&gt;
    -- Setup an interval-based timer to call refreshCache after 30 minutes.&lt;br /&gt;
    -- Note that if you want it to &amp;quot;recur&amp;quot; then you need to call this function again&lt;br /&gt;
    -- at the end of the refreshCache() implementation.&lt;br /&gt;
    --&lt;br /&gt;
    luup.call_timer(&amp;quot;refreshCache&amp;quot;, 1, &amp;quot;30m&amp;quot;, &amp;quot;&amp;quot;,&amp;amp;nbsp;&amp;quot;SomeStuff&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
=== function: is_ready  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ready (boolean) &lt;br /&gt;
&lt;br /&gt;
Checks&amp;amp;nbsp;whether device&amp;amp;nbsp;-&amp;amp;nbsp;which, if it's a string, is interpreted as a udn, and if it's a number, as the device number -&amp;amp;nbsp;is ready and has successfully completed the startup sequence. If so, ready is true. If your device shouldn't process incoming data until the startup sequence is finished, you may want to add a check to the incoming function handler that ignores any data if is_ready(lul_device) isn't true. &lt;br /&gt;
&lt;br /&gt;
=== function: call_action  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), action (string), arguments (table), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: error (number), error_msg (string), job (number), arguments (table) &lt;br /&gt;
&lt;br /&gt;
Invokes the UPnP service + action, passing in the arguments (table of string-&amp;amp;gt;string pairs) to the device, which, if it's a string, is interpreted as a udn, and if it's a number, is the device number. If the invocation could not be made, only error will be returned with a value of -1. Otherwise, all 4 values are returned. error is 0 if the UPnP device reported the action was successful. arguments is a table of string-&amp;amp;gt;string pairs with the return arguments from the action. If the action is handled asynchronously by a Luup job, then the job number will be returned as a positive integer. &lt;br /&gt;
&lt;br /&gt;
Example to dim device #5 to 50%: &lt;br /&gt;
&lt;br /&gt;
  local lul_arguments = {}&lt;br /&gt;
 lul_arguments[&amp;quot;newLoadlevelTarget&amp;quot;]=50&lt;br /&gt;
 lul_resultcode,lul_resultstring,lul_job,lul_returnarguments = luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,lul_arguments,5)&lt;br /&gt;
&lt;br /&gt;
=== function: variable_set  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), value (string), device (string or number), [startup (bool)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
The UPnP service+variable will be set to value for device, which if it's a string, is interpreted as a udn, and if it's a number, as a device id. If there are events or notifications tied to the variable they will be fired.  &lt;br /&gt;
&lt;br /&gt;
Optionally, you can add an argument 'startup'.  If startup is true, this change will be considered a startup value, and if the variable is set to it's existing value, events and notifications will ''not'' be fired.&lt;br /&gt;
&lt;br /&gt;
=== function: variable_get  ===&lt;br /&gt;
&lt;br /&gt;
parameters: service (string), variable (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: value (string), time (number) &lt;br /&gt;
&lt;br /&gt;
If the service+variable or device does not exist, it returns nothing. Otherwise it returns the value of the UPnP service+variable and the time when the variable was last modified, as a unix time stamp (number of seconds since 1/1/1970). You can assign just the value to a variable, as follows: &lt;br /&gt;
&lt;br /&gt;
  local value = luup.variable_get(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;LoadLevelTarget&amp;quot;,5)&lt;br /&gt;
 luup.log(&amp;quot;Dim level for device #5 is: &amp;quot; .. value)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== function: attr_set ===&lt;br /&gt;
&lt;br /&gt;
parameters: attribute (string), value(string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: none&lt;br /&gt;
&lt;br /&gt;
Sets the top level attribute for the device to value.  Examples of attributes are 'mac', 'name', 'id', etc.&lt;br /&gt;
&lt;br /&gt;
=== function: register_handler  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), request_name (string) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
When a certain URL is requested from a web browser or other HTTP get, function_name will be called and whatever string it returns will be returned. &lt;br /&gt;
&lt;br /&gt;
See the WAP mobile phone plugin as an example: &lt;br /&gt;
&lt;br /&gt;
  luup.register_handler(&amp;quot;lug_WapRequest&amp;quot;,&amp;quot;wap&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 function lug_WapRequest (lul_request, lul_parameters, lul_outputformat)&lt;br /&gt;
   local lul_html = &amp;quot;&amp;amp;lt;head&amp;amp;gt;\n&amp;quot; ..&lt;br /&gt;
     &amp;quot;&amp;amp;lt;title&amp;amp;gt;Main&amp;amp;lt;/title&amp;amp;gt;\n&amp;quot; ..&lt;br /&gt;
     &amp;quot;&amp;amp;lt;/head&amp;amp;gt;\n&amp;quot; ..&lt;br /&gt;
     &amp;quot;&amp;amp;lt;body&amp;amp;gt;\n&amp;quot; ..&lt;br /&gt;
     &amp;quot;Choose a room:&amp;amp;lt;br/&amp;amp;gt;\n&amp;quot;&lt;br /&gt;
   return lul_html&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
The request is made with the URL: data_request?id=lr_[the registered name] on port 49451. So: http://192.168.1.1:49451/data_request?id=lr_wap will return the web page defined in the function lug_WapRequest in the example above. &lt;br /&gt;
&lt;br /&gt;
=== function: variable_watch  ===&lt;br /&gt;
&lt;br /&gt;
parameters: function_name (string), service (string), variable (string or nill), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Whenever the UPnP variable is changed for the specified device, which if a string is interpreted as a udn and if a number as a device id, function_name will be called. See [[Luup Declarations#watch_callback]] for the values that will be passed to function_name. If variable is nill, function_name will be called whenever any variable in the service is changed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== function: devices_by_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: device_supports_service  ===&lt;br /&gt;
&lt;br /&gt;
parameters: &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
=== function: set_failure  ===&lt;br /&gt;
&lt;br /&gt;
parameters: value (boolean), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: &lt;br /&gt;
&lt;br /&gt;
Luup maintains a 'failure' flag for every device to indicate if it is not functioning. You can set the flag to true if the device is failing. If device is a string it is interpreted as a udn, if it's a number, as a device id. &lt;br /&gt;
&lt;br /&gt;
=== function: is_night  ===&lt;br /&gt;
&lt;br /&gt;
parameters: none &lt;br /&gt;
&lt;br /&gt;
returns: boolean &lt;br /&gt;
&lt;br /&gt;
Returns true if it's past sunset and before sunrise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== function: sleep ===&lt;br /&gt;
&lt;br /&gt;
parameters: number of milliseconds&lt;br /&gt;
&lt;br /&gt;
returns: none&lt;br /&gt;
&lt;br /&gt;
Sleeps a certain number of milliseconds&lt;br /&gt;
&lt;br /&gt;
== Module: luup.inet  ==&lt;br /&gt;
&lt;br /&gt;
=== function: wget  ===&lt;br /&gt;
&lt;br /&gt;
parameters: URL (String), Timeout (Number), Username (String), Password (String) &lt;br /&gt;
&lt;br /&gt;
returns httpStatusCode (Number), content (String) &lt;br /&gt;
&lt;br /&gt;
This reads the URL and returns 2 variables: The first is a numeric error code which is 0 if successful, and the second is a string containing the contents of the page. If Timeout is specified, the function will timeout after that many seconds. If Username and Password are specified, they will be used for HTTP Basic Authentication. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Module: luup.chdev  ==&lt;br /&gt;
&lt;br /&gt;
Contains functions for a parent to synchronize its child devices. Whenever a device has multiple end-points, the devices are represented in a parent/child fashion where the parent device is responsible for reporting what child devices it has and giving each one a unique id. For example in the sample [[Luup Somfy Walkthrough]] there is a parent device, which is the interface module that controls up to 16 blinds, and up to 16 child devices, one for each blind. As shown in that sample, the parent calls start, then enumerates each child device with append, and finally calls sync. You will need to pass the same value for device to append and sync that you passed to start. &lt;br /&gt;
&lt;br /&gt;
=== function: start  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: ptr (binary object) &lt;br /&gt;
&lt;br /&gt;
Tells Luup you will start enumerating the children of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. The return value is a binary object which you cannot do anything with in Lua, but you do pass it to the append and sync functions. &lt;br /&gt;
&lt;br /&gt;
=== function: append  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), id (string), description (string), device_type (string), device_filename (string), implementation_filename (string), parameters (string), embedded (boolean) [, invisible (boolean)]&lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Enumerates one child of device. If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Give each child a unique id so you can keep track of which is which. You can optionally provide a description which the user sees in the user interface. device_type is the UPnP device type, such as urn:schemas-upnp-org:device:BinaryLight:1. If device_filename is specified, that is the name of the&amp;amp;nbsp;XML file with the UPnP device specification. The deviceType from the filename will override any device_type you set manually. If the device_file contains the implementation file for this child device you do not need to specify it in implementation_filename. Otherwise, if there is a Luup implementation for this child device and it's not being handled by the parent device, you can specify it in implementation_filename. If embedded is true, the 'embedded' flag is set for the device which generally means that the parent and all the children will be displayed as one compound device, or group, rather than as separate devices which you can put in their own rooms. &lt;br /&gt;
&lt;br /&gt;
The parameters are&amp;amp;nbsp;UPnP service+variables you want set when the device is created. You can specify multiple variables by separating them with a line feed (\n) and use a , and = to separate service, variable and value, like this: service,variable=value \n service...&lt;br /&gt;
&lt;br /&gt;
=== function: sync  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ptr (binary object), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If device is a string it is interpreted as a udn, if it's a number, as a device id. Pass in the ptr which you received from the start function. Tells the Luup engine you have finished enumerating the child devices. If the child devices have changed in any way, the new device tree will be written to the configuration file and the Luup engine is reset. &lt;br /&gt;
&lt;br /&gt;
== module: io  ==&lt;br /&gt;
&lt;br /&gt;
=== function: open  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number), ip (string) port (number), &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This opens a socket on 'port' to 'ip' and stores the handle to the socket in 'device'. The opening of a socket can take time depending on the network, and a Luup function should return quickly whenever possible because each top-level device's Lua implementation runs in a single thread. So the actual opening of the socket occurs asynchronously and this function returns nothing. You will know that the socket opening failed if your subsequent call to write fails. &lt;br /&gt;
&lt;br /&gt;
Generally you do not need to call the open function because the socket is usually started automatically when the Luup engine starts. This is because the user typically either (a) associates a device with the destination io device, such as selecting an RS232 port for an alarm panel, where the RS232 is proxied by a socket, or (b) because the configuration settings for the device already include an IP address and port. &lt;br /&gt;
&lt;br /&gt;
=== function: write  ===&lt;br /&gt;
&lt;br /&gt;
parameters: data (string), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: result (boolean) &lt;br /&gt;
&lt;br /&gt;
In Lua a string can contain binary data, so data may be a binary block. If 'device' is a string it is interpreted as a UDN; if it's a number, as a device ID. This sends data on the socket that was opened automatically or with the open function above, and associated to 'device'. If the socket is not already open, write will wait up to 5 seconds for the socket before it returns an error. Result is 'true' if the data was sent successfully, and is 'false' or nill if an error occurred. &lt;br /&gt;
&lt;br /&gt;
=== function: intercept  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: nothing &lt;br /&gt;
&lt;br /&gt;
Normally when data comes in on a socket (I/O Port), the block of data is first passed to any pending jobs that are running for the device and are marked as 'waiting for data'. If there are none, or if none of the jobs' incoming data handlers report that they consumed (i.e. processed) the data, then the block of data is passed to the general 'incoming' function handler for the device. If you want to bypass this normal mechanism and read data directly from the socket, call intercept first to tell Luup you want to read incoming data with the read function. This is generally used during the initialization or startup sequences for devices. For example, you may need to send some data (a), receive some response (b), send some more data (c), receive another response (d), etc. In this case you would call 'intercept' first, then send a, then call read and confirm you got b, then call intercept again, then send c, then read d, and so on. &lt;br /&gt;
&lt;br /&gt;
You can call the read function without calling intercept and any incoming data will be returned by that function after it's called. The reason why you generally must call intercept is because normally you want to send some data and get a response. If you write the code like this ''send(data) data=read()'' then it's possible the response will arrive in the brief moment between the execution of send() and read(), and therefore get sent to the incoming data handler for the device. Intercept tells Luup to buffer any incoming data until the next read, bypassing the normal incoming data handler. So ''intercept() send(data) data=read()'' ensures that read will always get the response. If the device you're communicating with sends unsolicited data then there's the risk that the data you read is not the response you're looking for. If so, you can manually pass the response packet to the incoming data handler. &lt;br /&gt;
&lt;br /&gt;
**TBD: Add a function to do this**&lt;br /&gt;
&lt;br /&gt;
=== function: read  ===&lt;br /&gt;
&lt;br /&gt;
parameters: timeout (number), device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: data (string) &lt;br /&gt;
&lt;br /&gt;
This reads a block of data from the socket. You must have called intercept previously so the data is passed. &lt;br /&gt;
&lt;br /&gt;
=== function: is_connected  ===&lt;br /&gt;
&lt;br /&gt;
parameters: device (string or number) &lt;br /&gt;
&lt;br /&gt;
returns: connected (boolean) &lt;br /&gt;
&lt;br /&gt;
This function returns true if there is a valid IO port connected, otherwise returns false &lt;br /&gt;
&lt;br /&gt;
=== Job Handling  ===&lt;br /&gt;
&lt;br /&gt;
lu_job_set &lt;br /&gt;
&lt;br /&gt;
lu_job_get &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Rooms</id>
		<title>Rooms</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Rooms"/>
				<updated>2011-01-21T14:43:29Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Undo revision 2657 by TimothyJenkins (Talk) Rookie Spammer, removed content.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
All the devices and scenes in Vera are grouped by room. So you must list the rooms in your house, and then on the 'Devices' page, you need to specify which rooms your devices are in. Some devices, like handheld controllers, may be used throughout the house. In this case, just pick the room where the device is most commonly used or kept. The sole purpose of rooms is to help organize your devices and scenes so you can find them easily and and keep track of which is which. So you don't have to take the term &amp;quot;Room&amp;quot; too literally. You could, for example, create a &amp;quot;Room&amp;quot; called &amp;quot;Back yard&amp;quot; or &amp;quot;Outdoors&amp;quot;, or even a room called &amp;quot;John's stuff&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
When you create a scene you generally add the scene to a room as well, namely whatever room you are most likely to want to use the scene in. Again, this is just to help organize your scenes and remember which scene is which. Note that what room you add a scene to does not have any effect on which devices it can control. For example, you can create a scene in the &amp;quot;Living Room&amp;quot; that turns on bedroom lights. Create the scene in whatever room you are most likely to want to use that scene. The reason for putting scenes in rooms is just to make it easier to keep track of which scene is which and to quickly find the scenes for the room you are in. For example, on remote controls like iPhone and mobile phones, when you enter a room you need only pick the room once. Then you will see all the scenes in that room without being distracted by all the other scenes in other rooms. This also means you can create multiple scenes with the same name in different rooms. For example, you may have 3 scenes called &amp;quot;go to bed&amp;quot; in 3 different bedrooms. Each scene may do something different. &lt;br /&gt;
&lt;br /&gt;
There may be a couple scenes that are not really tied to a room, or are used throughout the home or in different rooms. For example, you may have a scene called &amp;quot;Entertaining Mode&amp;quot; which you use when guests arrive. You could put this scene in any room that will allow you to easily find it, remember the purpose of putting scenes in rooms is solely to make it easier for you to find the scenes. In a case like this, &amp;quot;Entertaining Mode&amp;quot; would probably be put in the &amp;quot;Entry Room&amp;quot; or &amp;quot;Living Room&amp;quot; if that's where you usually greet your guests. If you truly want a &amp;quot;global scene&amp;quot;, meaning a scene that you would normally use from anywhere in the home, then you will note on the 'Scenes' tab there is a special place called &amp;quot;Global Scenes&amp;quot; to add those scenes. If you add a scene to &amp;quot;Global Scenes&amp;quot;, then it's like adding to every room. For example, say you create a global scene called &amp;quot;Energy savings mode&amp;quot; that turns off all the lights in the home. And, say you have an iPhone you use as a remote control. The iPhone will let you pick the room it's in, but no matter what room you pick, you'll see the global scene &amp;quot;Energy savings mode&amp;quot;. If the iPhone is showing the Living Room, you'll see the global scene ''plus'' the scenes in the Living Room. The global scenes appear in every room. On the [[Dashboard]] the global scenes appear at the top. &lt;br /&gt;
&lt;br /&gt;
For more advanced users, if you have a very large house, or if you want to create graphical floorplans to control the devices with icons, you can also create &amp;quot;Sections&amp;quot;, and organize the rooms by section. Examples of sections may be: &amp;quot;First Floor&amp;quot; and &amp;quot;Second Floor&amp;quot;, or &amp;quot;Main House&amp;quot;, &amp;quot;Guest House&amp;quot; and &amp;quot;Grounds&amp;quot;. Create sections by clicking the &amp;quot;Advanced&amp;quot; tab and choosing the sub-tab &amp;quot;Sections&amp;quot;. You can create a floorplan for each section using your favorite paint or draw program and upload them to Vera on that page. You can also position the devices on the floorplan. Before you do this, go back to the 'Rooms' tab and be sure to indicate which section each room is in. Since most users don't create sections, by default Vera has only one section &amp;quot;My Home&amp;quot; and all rooms are put there.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Debugging</id>
		<title>Luup Debugging</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Debugging"/>
				<updated>2011-01-16T17:10:11Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: /* Luup logs */ Add info about where Vera2's password is.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This document assumes you have already read [[Luup_Intro]] for a general introduction to Luup, [[Luup_Plugins]] to learn what goes into a plugin, and that you are creating the Luup plugin using either the web-based Luup plugin generator (coming soon) or are creating Luup's XML files by hand as described here: [[Luup_Plugins_ByHand]].  This document will help you debug the Lua code that you write and see what's going on with your plugins.&lt;br /&gt;
&lt;br /&gt;
To learn about Lua, see [http://www.lua.org/ lua.org] and the [http://www.lua.org/manual/5.1/ Lua reference manual] which lists all the functions and variables that are built into Lua.  &lt;br /&gt;
&lt;br /&gt;
The [http://lua-users.org/wiki/TutorialDirectory Lua Tutorial], on [http://Lua-Users.org lua-users.org], can also be of great help here.&lt;br /&gt;
&lt;br /&gt;
Additionally, the Luup engine provides a set of [[Luup_Lua_extensions|Extensions]] (variables and functions) you can call &lt;br /&gt;
within your Lua code.&lt;br /&gt;
&lt;br /&gt;
==Third party tools==&lt;br /&gt;
&lt;br /&gt;
There are tools that will aid you in debugging your plugin:&lt;br /&gt;
&lt;br /&gt;
*'''putty''' If you are using Microsoft Windows you can download a utility, putty, to login to Vera's console here: [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe]  You don't need to install putty.  Just put the .exe file on your desktop, run it, and in the host name type in the IP address of Vera and click 'open'.  At the ''&amp;lt;tt&amp;gt;login as:&amp;lt;/tt&amp;gt;'' prompt enter the username: ''&amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt;'' and then when prompted enter the root password you setup.&lt;br /&gt;
&lt;br /&gt;
*'''DeviceSpy / Intel Tools for UPnP''' This is a set of tools for Microsoft Windows you can download here: [http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/tools/218896.htm?desturl=http://softwarecommunity.intel.com/isn/downloads/zips/IntelToolsForUPnPTechnology.zip]  We use the utility called ''DeviceSpy''&lt;br /&gt;
&lt;br /&gt;
==Luup logs==&lt;br /&gt;
Vera is running Linux, and you can login to Vera's console to monitor the logs.  A special user, called ''root'', is used to login to Vera.  The password setup mechanism is different between Vera1 or a Vera2 models.&lt;br /&gt;
&lt;br /&gt;
=== Logging in on Vera1 ===&lt;br /&gt;
The ''root'' password must first be set in Vera's configuration menu's.  Do this by either going to Vera's Advanced, Net &amp;amp; Wi-fi tab and clicking 'Advanced configuration'&lt;br /&gt;
&lt;br /&gt;
Alternatively, at a Windows prompt, you can type ''telnet vera_ip'' (where vera_ip is the IP address of Vera).  If you login with telnet, type: ''passwd'' and press enter to set a root password.&lt;br /&gt;
&lt;br /&gt;
=== Logging in on Vera2 ===&lt;br /&gt;
The ''root'' password for a Vera2 box is printed on a label on the underside of the box.&lt;br /&gt;
&lt;br /&gt;
=== Getting around ===&lt;br /&gt;
If you have a Mac or Linux PC you can now login directly to Vera using ''ssh''.  From the console type: ''ssh root@vera_ip'' (where vera_ip is the IP address of Vera).  If you are using Windows, use putty as described above.&lt;br /&gt;
&lt;br /&gt;
When you are at the ''root@HomeControl:~#'' prompt type in: &lt;br /&gt;
&lt;br /&gt;
  ''cd /var/log/cmh''&lt;br /&gt;
&lt;br /&gt;
to go to the log directory.  The command: &lt;br /&gt;
&lt;br /&gt;
  ''ls -lh''&lt;br /&gt;
&lt;br /&gt;
lists all the log files.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LuaUPnP.log&amp;lt;/tt&amp;gt; is the main log file.  To see everything that is being logged by Luup in real time is called &amp;quot;tailing the log&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Do this by typing: &lt;br /&gt;
&lt;br /&gt;
  ''tail -f LuaUPnP.log''&lt;br /&gt;
&lt;br /&gt;
To stop following the log press '''Ctrl+C'''.  Press the up arrow to scroll through the recent commands to run them again by hitting enter, without retyping them.&lt;br /&gt;
&lt;br /&gt;
Note that Vera doesn't have a lot of memory for the logs.  So regularly you will see the logs say 'Going to rotate logs' and then stop.  This means the memory filled up so the logs are being removed.  If the check box in Vera's Advanced, Logs page &amp;quot;Archive old logs on findvera (recommended)&amp;quot; is checked, the logs will be sent to Mi Casa Verde's server and archived for 7 days before purging.  &lt;br /&gt;
&lt;br /&gt;
TODO: We'll add instructions for logging to a USB memory stick so you have more room.&lt;br /&gt;
&lt;br /&gt;
Each line starts with the log level and the date time, such as: &lt;br /&gt;
&lt;br /&gt;
  02      06/12/09 18:50:15.254  &lt;br /&gt;
&lt;br /&gt;
The first number, log level, has this meaning:&lt;br /&gt;
&lt;br /&gt;
*01 - Critical error.  Something is wrong that shouldn't happen&lt;br /&gt;
*02 - Warning.  This is something to make note of, though it's not always a problem&lt;br /&gt;
*03 - StartStop.  These log messages indicate Luup engine is starting/stopping. This happens every time you save configuration changes.&lt;br /&gt;
*04 - Job.  This relates to 'jobs' &lt;br /&gt;
*05 - Home Automation.  These logs are status messages from Home Automation devices&lt;br /&gt;
*06 - Variable.  A UPnP Variable has changed&lt;br /&gt;
*07 - Event.  An event is triggered.  This is what you attach to a scene&lt;br /&gt;
*08 - Action.  A UPnP Action was received&lt;br /&gt;
*09 - Enumeration.  When the Luup engine starts this lists all the devices in the system.&lt;br /&gt;
*10 - General Status.  There are lots of these messages to indicate something happening in the system.&lt;br /&gt;
*40 - outgoing data.  This is all data coming and going to external devices, such as the Z-Wave dongle, in their raw form.  This true for your Luup plugins talking to serial/network devices too.&lt;br /&gt;
*41 - incoming data (as above)&lt;br /&gt;
*50 - Lua code.  When you log something in Lua code using the &amp;lt;tt&amp;gt;luup.log&amp;lt;/tt&amp;gt; function it has this log level.&lt;br /&gt;
*51 - Raw outgoing Serial data, from any Serial port attached to the Plugin.&lt;br /&gt;
*52 - Raw incoming Serial data, from any Serial port attached to the Plugin.&lt;br /&gt;
*200 - UPnP message.  There are a huge amount of logs generated from the UPnP engine showing all activity.&lt;br /&gt;
&lt;br /&gt;
By default the Luup engine will skip logs with status 10 and 200 because they generate such a large amount of activity.  Vera can actually be less reliable when 10 and 200 are activated because the logs grow so quickly sometimes that it is hard to archive them as fast as they come in.  &lt;br /&gt;
&lt;br /&gt;
You can see what logs will shown by typing: &lt;br /&gt;
&lt;br /&gt;
  ''cat /etc/cmh/cmh.conf''&lt;br /&gt;
&lt;br /&gt;
By default you will see: &lt;br /&gt;
&lt;br /&gt;
  LogLevels = 1,2,3,4,5,6,7,8,9,50&lt;br /&gt;
&lt;br /&gt;
meaning the Luup engine will log those log levels and ignore the rest.  When you click 'Verbose logging' in Vera's web UI under setup, logs, you will see: &lt;br /&gt;
&lt;br /&gt;
  #LogLevels = 1,2,3,4,5,6,7,8,9,50&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt; in front means the log levels are ignored and all logs are stored, except UPnP.  If you really want to see the UPnP messages, which will fill up the memory very fast, you can type&lt;br /&gt;
&lt;br /&gt;
  ''vi /etc/cmh/cmh.conf''&lt;br /&gt;
&lt;br /&gt;
and move the cursor on top of the 0 in LogUPnP = 0.  Then press ''r1'' to replace the 0 with a 1, and then type '':wq'' to write the changes and quit.  These somewhat arcane commands are part of Linux's default text editor, vi.  After you make a change, you will want to restart the Luup engine.  Do this by clicking the 'save' button.  Because you normally just want full logging temporarily, Luup will automatically revert to the default log levels after 4 hours unless you check 'Lock log levels' in Vera's Advanced, Log page.&lt;br /&gt;
&lt;br /&gt;
To make sense of what's in the logs it's best to use grep and 'regular expressions'.  If you're a true uber geek this is the greatest joy.  If you're a mere mortal, it's best to just stick to some examples.  In regular expressions the symbol ^ means 'show me lines that start with' and the symbol \| means 'or'.  So here are some samples:&lt;br /&gt;
&lt;br /&gt;
Show me everything in the log that is a 'critical error':&lt;br /&gt;
&lt;br /&gt;
  ''grep '^01' LuaUPnP.log''&lt;br /&gt;
&lt;br /&gt;
I enabled Verbose logging, so incoming/outgoing data is logged, show me that plus any normal log messages (0-9) plus any log messages in my Lua code: &lt;br /&gt;
&lt;br /&gt;
  ''grep '^0\|^4\|^5' LuaUPnP.log'' &lt;br /&gt;
&lt;br /&gt;
(meaning any line that starts with 0, which 0-9, or 4, which is 40 and 41, or 5, which is 50.&lt;br /&gt;
&lt;br /&gt;
I want the same data, but I want to follow the logs in real time with the same filter:&lt;br /&gt;
&lt;br /&gt;
  ''tail -f LuaUPnP.log | grep '^0\|^4\|^5' ''&lt;br /&gt;
&lt;br /&gt;
You can also put in the 'grep' strings that you want to match.  Let's say you see in the logs that every time a job status changes it logs using log level 10 (status) some line that includes the string: 'Job::m_eJobStatus'.  You want to follow the logs and show just Lua logs, critical errors, and job status changes:&lt;br /&gt;
&lt;br /&gt;
  ''tail -f LuaUPnP.log | grep '^5\|^01\|Job::m_eJobStatus' ''&lt;br /&gt;
&lt;br /&gt;
When you are writing your Lua code, include copious logging with &amp;lt;tt&amp;gt;luup.log&amp;lt;/tt&amp;gt; (see [[Luup_Lua_extensions#function:_log|Luup_Lua_extensions log function]]) to see what's happening in your Lua code.&lt;br /&gt;
&lt;br /&gt;
==Debug in small chunks without restarting each time==&lt;br /&gt;
&lt;br /&gt;
If you are adding code for an action, it takes time to upload your files and initiate the action.  So it's best to debug the Lua code in tiny bite sized pieces first to be sure the syntax and basic operation is ok.&lt;br /&gt;
&lt;br /&gt;
In Vera's web ui choose Devices, Luup plugins and click 'Test Lua UPnP code'.  For the device number put in the number of the device you are debugging, which is shown when you click the + button next to the device.  Or, if your Lua code isn't going to be calling any of the functions and variables you created in that device, you can just put in a device number of 0, which means this snippet of code runs by itself.  If you put in a valid device number for a Luup plugin, it runs in the context of that device meaning it can call the other functions and variables in the plugin.&lt;br /&gt;
&lt;br /&gt;
Put your small chunk of code in the input box and click 'go' to run it.  Be sure the code outputs something to the log with &amp;lt;tt&amp;gt;luup.log&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
&lt;br /&gt;
In another console or putty window you can be following the logs with:&lt;br /&gt;
&lt;br /&gt;
  ''tail -f LuaUPnP.log | grep '^01\|^5' ''&lt;br /&gt;
&lt;br /&gt;
Always log critical errors, &amp;lt;tt&amp;gt;01&amp;lt;/tt&amp;gt;, because that way if your Lua code won't run due to a syntax error you will see the log entry.&lt;br /&gt;
&lt;br /&gt;
In the real implementation your Lua code will probably be passed variables.  For example, if the Lua code being run is in response to an action, it will be passed as a variable the arguments to the UPnP action.  To test your small blocks of code with this you can simply add the same variable names and hardcode some test variables.  The list of variables that are passed to your Lua code are documents here: [[Luup_Declarations]].  You can also see the complete Lua code that the Luup engine has generated including the function declarations with the &amp;lt;tt&amp;gt;lu_lua&amp;lt;/tt&amp;gt; (See [[Luup_Requests#lu_lua|Luup_Requests lu_lua]]) request on the URL.&lt;br /&gt;
&lt;br /&gt;
For example, I will view the complete Lua code for device #8: &lt;br /&gt;
&lt;br /&gt;
  http://vera_ip:49451/data_request?id=lu_lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
and I can see that the Lua code I put in my 'run' XML tag in the implementation file for the &amp;lt;tt&amp;gt;SetTarget&amp;lt;/tt&amp;gt; action looks like this is within this function declaration:&lt;br /&gt;
&lt;br /&gt;
  ''function SetTarget_run(lul_device,lul_settings)''&lt;br /&gt;
&lt;br /&gt;
As explained in [[Luup_Declarations]] the &amp;lt;tt&amp;gt;lul_device&amp;lt;/tt&amp;gt; will the device number that is receiving the command.  So if I want to test some Lua code that I will put inside a 'run' tag for the &amp;lt;tt&amp;gt;SetTarget&amp;lt;/tt&amp;gt; action, which logs the device that received the UPnP Action (we'll use 10) and the argument &amp;lt;tt&amp;gt;newTargetValue&amp;lt;/tt&amp;gt; which indicates if the device is being turned on or off, then I would put in the test code:&lt;br /&gt;
&lt;br /&gt;
  lul_device=10&lt;br /&gt;
  lul_settings['newTargetValue']=1&lt;br /&gt;
  luup.log(&amp;quot;Got a SetTarget action for device &amp;quot; .. lul_device .. &amp;quot; to turn on/off: &amp;quot; .. lul_settings['newTargetValue'])&lt;br /&gt;
&lt;br /&gt;
now when you click 'go' see what goes in the Log.  If your log entry is ok, copy the &amp;lt;tt&amp;gt;luup.log&amp;lt;/tt&amp;gt; line from this test code, without the &amp;lt;tt&amp;gt;lul_device=&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;lul_settings=&amp;lt;/tt&amp;gt; lines, into the actual implementation and you know that it will work when the real UPnP action is called and the Luup engine passes the actual &amp;lt;tt&amp;gt;lul_device&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;lul_settings&amp;lt;/tt&amp;gt; to your Lua code.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Loglevels</id>
		<title>Luup Loglevels</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Loglevels"/>
				<updated>2010-12-19T02:50:09Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Clarify the logging levels a little.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
Vera records different types of log entries, in it's log files, according to logging levels.  By default only log levels 1-10 will make it to &amp;lt;tt&amp;gt;/var/log/cmh/LuaUPnP.log&amp;lt;/tt&amp;gt; and all other types of messages are discarded.  &lt;br /&gt;
&lt;br /&gt;
To add more log levels edit the file &amp;lt;tt&amp;gt;/etc/cmh/cmh.conf&amp;lt;/tt&amp;gt;.  To see all log entries check the verbose option on Advanced/Logs, or put a comment character (&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;) in front of the &amp;lt;tt&amp;gt;LogLevels=&amp;lt;/tt&amp;gt; line in &amp;lt;tt&amp;gt;/etc/cmh/cmh.conf&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  #LogLevels = 1,2,3,4,5,6,7,8,9,50,40&lt;br /&gt;
&lt;br /&gt;
You can use &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; to see only certain types of log entries. &lt;br /&gt;
&lt;br /&gt;
For example, to watch the log and see only critical errors and Z-Wave serial API traffic, use:&lt;br /&gt;
&lt;br /&gt;
  tail -f /var/log/cmh/LuaUPnP.log | grep '^01\|^41\|^42'&lt;br /&gt;
&lt;br /&gt;
or to view the list of all devices in the system use: &lt;br /&gt;
&lt;br /&gt;
  grep '^09' /var/log/cmh/LuaUPnP.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here's a full list of the log types that Vera supports:&lt;br /&gt;
&lt;br /&gt;
  LV_CRITICAL   1&lt;br /&gt;
  LV_WARNING    2&lt;br /&gt;
  LV_STARTSTOP  3&lt;br /&gt;
  LV_JOB     4&lt;br /&gt;
  LV_HA     5&lt;br /&gt;
  LV_VARIABLE    6&lt;br /&gt;
  LV_EVENT    7&lt;br /&gt;
  LV_ACTION    8&lt;br /&gt;
  LV_ENUMERATION  9&lt;br /&gt;
  LV_STATUS    10&lt;br /&gt;
  LV_CHILD_DEVICES 11&lt;br /&gt;
  LV_LOCKING   20&lt;br /&gt;
  LV_IR    28&lt;br /&gt;
  LV_ALARM   31&lt;br /&gt;
  LV_SOCKET   32&lt;br /&gt;
  LV_DEBUG   35&lt;br /&gt;
  LV_PROFILER   37&lt;br /&gt;
  LV_PROCESSUTILS  38&lt;br /&gt;
&lt;br /&gt;
 // Z-Wave starts with 4&lt;br /&gt;
  LV_ZWAVE   40&lt;br /&gt;
  LV_SEND_ZWAVE  41&lt;br /&gt;
  LV_RECEIVE_ZWAVE 42&lt;br /&gt;
&lt;br /&gt;
 // Lua starts with 5&lt;br /&gt;
  LV_LUA    50&lt;br /&gt;
  LV_SEND_LUA   51&lt;br /&gt;
  LV_RECEIVE_LUA  52&lt;br /&gt;
&lt;br /&gt;
 // Insteon starts with 6&lt;br /&gt;
  LV_INSTEON   60&lt;br /&gt;
  LV_SEND_INSTEON  61&lt;br /&gt;
  LV_RECEIVE_INSTEON 62&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Variables</id>
		<title>Luup Variables</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Variables"/>
				<updated>2010-12-01T20:17:00Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Made WeatherPlugin example directly hyperlinkable.  Mods to make it a little more consistent with the prior examples presented.  Will now hyperlink this from code.mios.com page for the Weather Plugin.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
The &amp;quot;Variables&amp;quot; for a device tell you it's current state, such as if it's on or off, what temperature it has, and so on.  Variables are given a name and a service ID, which is defined by the UPnP forum.  You can use this service ID/variable name pair to get the state of a device in the Luup engine by using the function luup.variable_get, as documented in [[Luup_Lua_extensions]].  You can also see the current value of a device's variables by going into Vera's setup page, click 'Devices', click + next to the device, then click 'Advanced'.  The name of every variable for the device is shown along with the current value, and if you move your mouse over the variable name, you will the corresponding service ID in a popup window.&lt;br /&gt;
&lt;br /&gt;
==On/Off Switch==&lt;br /&gt;
&lt;br /&gt;
Device category: 3, UPnP device id: urn:schemas-upnp-org:device:BinaryLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:SwitchPower1''  Variable name: ''Status''&lt;br /&gt;
&lt;br /&gt;
If the device is on, the value is 1, otherwise it's 0.&lt;br /&gt;
&lt;br /&gt;
==Dimmable Light==&lt;br /&gt;
&lt;br /&gt;
Device category: 2, UPnP device id: urn:schemas-upnp-org:device:DimmableLight:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Dimmable lights contain the same variable of an On/Off Switch to indicate the current on/off value, and, if it's on, LoadLevelStatus indicates the dim level.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:Dimming1''  Variable name: ''LoadLevelStatus''&lt;br /&gt;
&lt;br /&gt;
If the device is off (see On/Off switch) this value indicates the last known dim level, if it's on, this value is the actual dim level.  The value is a number from 0-100 indicating a percentage of brightness.&lt;br /&gt;
&lt;br /&gt;
==Thermostat==&lt;br /&gt;
&lt;br /&gt;
Device category: 5, UPnP device id: urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1&lt;br /&gt;
&lt;br /&gt;
Variables:&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:HVAC_UserOperatingMode1''  Variable name: ''ModeStatus''&lt;br /&gt;
&lt;br /&gt;
This indicates the current operating mode and will be one of the following basic values: Off, HeatOn, CoolOn, AutoChangeOver.  In addition to the basic modes, some thermostats may also support the following modes: InDeadBand, AuxHeatOn, EconomyHeatOn, EmergencyHeatOn, AuxCoolOn, EconomyCoolOn, BuildingProtection, EnergySavingsHeating, EnergySavingsCooling&lt;br /&gt;
 &lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Heat''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSetpoint1_Cool''  Variable name: ''CurrentSetpoint''&lt;br /&gt;
&lt;br /&gt;
These indicate the current heat/cool set points.&lt;br /&gt;
&lt;br /&gt;
Service: ''urn:upnp-org:serviceId:TemperatureSensor1''  Variable name: ''CurrentTemperature''&lt;br /&gt;
&lt;br /&gt;
This indicates the current ambient temperature.&lt;br /&gt;
&lt;br /&gt;
==Other Devices or Services==&lt;br /&gt;
You can find other variables by looking at code.  For example, looking at the code for the LUUP Weather plugin, we can see where the &amp;quot;serviceID&amp;quot; for Current Conditions is ''urn:micasaverde-com:serviceId:Weather1'' (taken from the XML file):&lt;br /&gt;
&lt;br /&gt;
 -- Store the current Condition (eg. &amp;quot;Sunny&amp;quot;)&lt;br /&gt;
 luup.variable_set(&amp;quot;urn:micasaverde-com:serviceId:Weather1&amp;quot;, &amp;quot;Condition&amp;quot;,&lt;br /&gt;
                   condition, PARENT_DEVICE)&lt;br /&gt;
&lt;br /&gt;
From this we can get the Current Weather Condition using&amp;lt;br&amp;gt;&lt;br /&gt;
Service: ''urn:micasaverde-com:serviceId:Weather1'' Variable name: ''Condition''&lt;br /&gt;
&lt;br /&gt;
All we have to add is the device ID that Vera creates. In my case #''37''&lt;br /&gt;
&lt;br /&gt;
=== Weather Plugin ===&lt;br /&gt;
For my testing, I wanted to create a Luup scene that will turn on a light when the ''Condition'' is ''Showers''.  So I create a new Scene and add the following to the Luup Scene:&lt;br /&gt;
&lt;br /&gt;
 local lul_tmp = luup.variable_get(&amp;quot;urn:micasaverde-com:serviceId:Weather1&amp;quot;,&amp;quot;Condition&amp;quot;,37)&lt;br /&gt;
 if (lul_tmp==&amp;quot;Showers&amp;quot;) then&lt;br /&gt;
   luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;50&amp;quot; },19)&lt;br /&gt;
 else&lt;br /&gt;
   luup.call_action(&amp;quot;urn:upnp-org:serviceId:Dimming1&amp;quot;,&amp;quot;SetLoadLevelTarget&amp;quot;,{ newLoadlevelTarget=&amp;quot;0&amp;quot; },19)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To break this down, line 1 gets the variable ''Condition'' from the ''serviceID'' ''urn:micasaverde-com:serviceId:Weather1'' on Device #''37''&lt;br /&gt;
Line 2 compares the returned variable to ''Showers''&lt;br /&gt;
If the condition is true then it calls line 3 which turns on the lamp (Device #''19'' at ''50%'' level)&lt;br /&gt;
Otherwise, it turns the lamp Off&lt;br /&gt;
&lt;br /&gt;
What good is this?  Nothing past testing but it would be a good method to close the garage door if it is raining.&lt;br /&gt;
&lt;br /&gt;
*Be sure to set a timer to poll this scene ever xx minutes or hours.  Please edit if you know of a way to have it automatically poll.&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Insteon_Debugging</id>
		<title>Insteon Debugging</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Insteon_Debugging"/>
				<updated>2010-10-19T16:16:13Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Undo revision 2595 by Bubujin (Talk) Spammer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Hardware]]&lt;br /&gt;
turn light off by sending full frame&lt;br /&gt;
&lt;br /&gt;
http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;output_format=xml&amp;amp;DeviceNum=31&amp;amp;serviceId=urn:micasaverde-com:serviceId:InsteonNetwork1&amp;amp;action=SendData&amp;amp;Data=0x62-0x11-0x58-0x6c-0x5-0x11-0x0&lt;br /&gt;
&lt;br /&gt;
turn light on by specifying the node&lt;br /&gt;
&lt;br /&gt;
http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;output_format=xml&amp;amp;DeviceNum=31&amp;amp;serviceId=urn:micasaverde-com:serviceId:InsteonNetwork1&amp;amp;action=SendData&amp;amp;Node=11586c&amp;amp;Data=0x11-0xFF&lt;br /&gt;
&lt;br /&gt;
Receive device category info from 11586c:&lt;br /&gt;
&lt;br /&gt;
http://127.0.0.1:49451/data_request?id=lu_action&amp;amp;output_format=xml&amp;amp;DeviceNum=31&amp;amp;serviceId=urn:micasaverde-com:serviceId:InsteonNetwork1&amp;amp;action=SendData&amp;amp;Data=R0x50-0x11-0x58-0x6c-0x2-0x9-0x32-0x8b-0x1-0x0&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Clone_Dongle</id>
		<title>Clone Dongle</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Clone_Dongle"/>
				<updated>2010-10-15T17:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Undo revision 2590 by Bettytaylor23 (Talk) SPAM Removal...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
The Z-Wave chip inside the black dongle maintains the master list of all the other Z-Wave devices that you have included into your Z-Wave network. Vera also maintains its own database with a list of devices, and Vera's database has a lot more detail, such as the name of the device, the room that it's in and so on. Vera continually syncs its database with the master list of devices in the Z-Wave dongle. This is why you can remove the dongle, carry it around to pair and unpair devices devices, and when you reconnect the dongle to Vera, Vera will show any new or removed devices. If you insert a new dongle in Vera, then all your devices will disappear since the new dongle doesn't have any devices paired to it and so Vera deletes the ones in its database. &lt;br /&gt;
&lt;br /&gt;
Starting with Luup version 1.0.880 and higher, Vera is able to backup not only Vera's database, but also the data stored in the dongle.&amp;amp;nbsp; Vera also has the ability to restore, or clone, this backup into another dongle. &lt;br /&gt;
&lt;br /&gt;
For example, if you receive a replacement dongle, you can restore a backup of your old dongle's data to the new dongle so you don't have to rebuild your network. &lt;br /&gt;
&lt;br /&gt;
To do this follow these steps: &lt;br /&gt;
&lt;br /&gt;
#Be sure that you have not made any changes to Vera within the past 2 hours.&amp;lt;br&amp;gt;Vera will backup the dongle's configuration whenever the list of devices in the dongle changes. The backup process is slow, so Vera does it in small increments when there is no activity on the Z-Wave network. In Vera's setup page, go to Devices, Z-Wave, More Z-Wave options, and look at the value for '''Last Dongle Backup'''. This will show the date &amp;amp;amp; time that Vera last completed a successful backup of the dongle. Be sure that this is not empty of &amp;quot;''N/A''&amp;quot;. If it is, leave Vera alone for a couple hours, refresh the Vera setup page, and check again. &lt;br /&gt;
#Once you've confirmed that Vera has a backup of your dongle, go to ''Advanced'', ''Backup'' and choose '''Create backup'''.&amp;lt;br&amp;gt;Your browser will prompt you to save a file. Save it to your computer somewhere, such as on the Desktop. Be sure to wait until your browser has finished downloading.&amp;amp;nbsp; That backup file contains both Vera's database as well as the dongle's. &lt;br /&gt;
#Insert your new dongle.&amp;lt;br&amp;gt;Wait a minute to be sure that it's recognized. You should see all your Z-Wave devices have disappeared. &lt;br /&gt;
#Go to Advanced, Backup and in the restore section, click 'choose file' and locate the backup file.&amp;lt;br&amp;gt;Check the box 'Restore Dongle Firmware'. Then click Restore. &lt;br /&gt;
#Leave Vera alone for 15 minutes.&amp;lt;br&amp;gt;Vera will restore its database, which has all the detailed information on the device, and will also restore the dongle's data from the backup file, which takes several minutes. &lt;br /&gt;
#Confirm your new dongle is working and that you have a complete list of devices.&lt;br /&gt;
&lt;br /&gt;
'''NOTE ''' In case you forgot to backup your existing settings and you have the findvera.com service activated from Findvera.com tab, your Vera will backup your data once per day. So, go to https://findvera.com and click Settings and you will see there the backups. Select the last one and restore it to your Vera unit. Read here about the restore process: [[Advanced#Backup.2FRestore|Backup / Restore]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Paradox_Alarm_Plugin</id>
		<title>Paradox Alarm Plugin</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Paradox_Alarm_Plugin"/>
				<updated>2010-10-08T22:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Correct case of &amp;quot;MiOS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
[[Category:3rd Party]]&lt;br /&gt;
This page has moved to the MiOS Code Respository:&lt;br /&gt;
&lt;br /&gt;
    http://code.mios.com/trac/mios_paradox-alarm&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Weather_Plugin</id>
		<title>Weather Plugin</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Weather_Plugin"/>
				<updated>2010-10-08T22:01:11Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Correct case of &amp;quot;MiOS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Plugins]]&lt;br /&gt;
[[Category:3rd Party]]&lt;br /&gt;
This page has moved to the MiOS Code Respository:&lt;br /&gt;
&lt;br /&gt;
    http://code.mios.com/trac/mios_weather/wiki&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/IP_Cameras</id>
		<title>IP Cameras</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/IP_Cameras"/>
				<updated>2010-10-08T21:59:46Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Undo revision 2583 by Morcheeeba (Talk) Remove SPAM by this user...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you buy an IP camera from Mi Casa Verde, we will pre-configure it to work with Vera right out of the box. If you get the camera yourself, and it's a model that is 'Plug and Play' compatible with Vera (see 'Supported Cameras' below), then you should be sure the camera is configured to get an IP address automatically, and that the username is set to: '''dceadmin''' and the password is set to: '''dcepass'''. Vera will add the camera automatically and fill in the settings. (Specific info for users of [[Panasonic IP Cameras|Panasonic IP Cameras]])&amp;amp;nbsp; When adding a camera that is not on the supported list, see the section ''''Manually adding a camera'''' below. &lt;br /&gt;
&lt;br /&gt;
=== '''Supported Cameras'''  ===&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Manufacturer &lt;br /&gt;
! Device Type &lt;br /&gt;
! Model no. &lt;br /&gt;
! Version &lt;br /&gt;
! Date Purchased &lt;br /&gt;
! Location (indoor/outdoor) &lt;br /&gt;
! Specs &lt;br /&gt;
! Product Review &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic &lt;br /&gt;
| IP Camera &lt;br /&gt;
| BL-C131/BL-C30 &lt;br /&gt;
| all &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Indoor &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| The Panasonic IP cameras work well with Vera. However, for unknown reasons, the Panasonic camera will not get an IP address on your LAN until you run the Windows software supplied with it. You do not need to install the software; just insert the CD and tell the camera to get an IP address automatically (DHCP). If you buy the camera from the Mi Casa Verde web shop we do this before we ship it so the camera will work out of the box. Mac/Linux users who buy the camera elsewhere will need a Windows PC to 'activate' the camera. Set the default username/password on the camera to: dceadmin and dcepass for Vera to detect the camera automatically, or, if you use your own username/password, add the camera to Vera manually and provide Vera your username/password to access the camera.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Cameras that work'''  ===&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Manufacturer &lt;br /&gt;
! Device Type &lt;br /&gt;
! Model no. &lt;br /&gt;
! Version &lt;br /&gt;
! Date Purchased &lt;br /&gt;
! Location (indoor/outdoor) &lt;br /&gt;
! Path for JPEG image &lt;br /&gt;
! Product Review &lt;br /&gt;
! Added by&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Foscam [http://www.foscam.us/] [http://www.foscam.com/]&lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.foscam.com/Products_List.asp?id=128 FI8908/FI8908W]&lt;br /&gt;
| firmware 11.14.1.46 / 2.4.8.12 &lt;br /&gt;
| 2010&lt;br /&gt;
| Indoor &lt;br /&gt;
| /snapshot.cgi &lt;br /&gt;
| [http://www.amazon.com/Wireless-Windows-compatible-Installation-Included/product-reviews/B0030FR08W/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1 Customer reviews] &lt;br /&gt;
| Ap15e&lt;br /&gt;
| Use the Foscam IP Camera Tool for initial setup, then copy IP address and path into Vera setup fields.&amp;lt;BR&amp;gt;For Pan, Tilt, Patrol support see: [http://forum.micasaverde.com/index.php?topic=3720.0 DIY instructions]&lt;br /&gt;
|-&lt;br /&gt;
| Linksys &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://homesupport.cisco.com/en-us/wireless/lbc/WVC54GCA/download WVC54GCA]&lt;br /&gt;
| all &lt;br /&gt;
| 2009 &lt;br /&gt;
| Indoor &lt;br /&gt;
| img/snapshot.cgi &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| An inexpensive camera with moderate image quality. Use the Linksys setup wizard for initial setup, then copy IP address and path into Vera setup fields. Use a static IP address.&lt;br /&gt;
|-&lt;br /&gt;
| Linksys &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.cisco.com/en/US/products/ps9948/index.html WVC210]&lt;br /&gt;
| all &lt;br /&gt;
| 2009 &lt;br /&gt;
| Indoor &lt;br /&gt;
| img/snapshot.cgi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| A more expensive camera with good image quality and pan/tilt ability. Use the Linksys setup wizard for initial setup, then copy IP address and path into Vera setup fields. Use a static IP address. Pan/tilt controls will not work with Vera.&lt;br /&gt;
|-&lt;br /&gt;
| Linksys &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://homesupport.cisco.com/en-us/wireless/lbc/WVC80N?referrer=www.linksysbycisco.com WVC80N]&lt;br /&gt;
| all &lt;br /&gt;
| 2009 &lt;br /&gt;
| Indoor &lt;br /&gt;
| img/snapshot.cgi?size=2&amp;amp;amp;quality=1 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| A more expensive camera with good image quality and wireless N. Use the Linksys setup wizard for initial setup, then copy IP address and path into Vera setup fields. Use a static IP address. Pan/tilt controls will not work with Vera. &lt;br /&gt;
Size can be (160 x 120 = 1,320 x 240 = 2,640 x 480 = 3) and Quality can be (Very High= 1,High= 2,Normal= 3,Low= 4,Very Low= 5) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| iCamView &lt;br /&gt;
| IP Camera Server &lt;br /&gt;
| [http://icamview.com/icv22.htm iCV-22], [http://icamview.com/icv32.htm iCV-32]&lt;br /&gt;
| all &lt;br /&gt;
| 2009&amp;lt;br&amp;gt; &lt;br /&gt;
| Indoor/Outdoor &lt;br /&gt;
| pda.cgi?user=admin&amp;amp;amp;password=1234&amp;amp;amp;page=image&amp;amp;amp;cam=1&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;pda.cgi?user=admin&amp;amp;amp;password=1234&amp;amp;amp;page=image&amp;amp;amp;cam=2&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Feature-rich IP camera server, suports up to two compatible USB cameras, optional WiFi support, USB storage, USB hubs, motion; works with range of cameras, see icamview.co.uk. Excellent modular solution. They do ship to North America.&lt;br /&gt;
|-&lt;br /&gt;
| SmartHome.com.au &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.smarthome.com.au/zseries/wirelesssecuritycamera.php Z~Series Wireless Camera]&lt;br /&gt;
| all &lt;br /&gt;
| 2009&amp;lt;br&amp;gt; &lt;br /&gt;
| Indoor &lt;br /&gt;
| tmpfs/auto.jpg &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Inexpensive IP security camera designed for the Australian and New Zealand Z-Wave users, but shipping world wide.&lt;br /&gt;
|-&lt;br /&gt;
| [http://global.level1.com LevelOne] &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://global.level1.com/product_d.php?id=54 WCS-2030]&lt;br /&gt;
| all &lt;br /&gt;
| 2010 &lt;br /&gt;
| Indoor &lt;br /&gt;
| cgi-bin/video.jpg &lt;br /&gt;
| [http://reviews.cnet.com/search-results/levelone-camcon-wcs-2030/1707-5_7-31972011.html CNET review] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| An inexpensive IP camera with good image quality. Can be connected wired or wirelessly. Most LevelOne cameras use the same path for the JPEG image, so most of their line (both low and high end) should be compatible. Video and audio also stream over RTSP, which can be customized through the camera's web interface.&lt;br /&gt;
|-&lt;br /&gt;
| Asante &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.asante.com/products/SecureNetCam/Voyager1.asp Voyager I]&lt;br /&gt;
| firmware 2.02 and above &lt;br /&gt;
| 2010 &lt;br /&gt;
| Indoor &lt;br /&gt;
| image.cgi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| An inexpensive&amp;amp;nbsp;IP&amp;amp;nbsp;camera that is very feature rich, has good image quality, night vision capabilities, motion detection, two-way audio, video streaming over TCP, UDP, or HTTP, and other configurable features. In firmware version 2.02, Asante added the capability to retrieve an image via a URL (however, it is delayed by 3 seconds). Offers a full-featured web interface in IE using an ActiveX plug-in (limited capabilites in other browsers).&lt;br /&gt;
|-&lt;br /&gt;
| TrendNet &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.trendnet.com/products/proddetail.asp?prod=155_TV-IP512WN&amp;amp;cat=149 TV-IP512WN] &lt;br /&gt;
| all &lt;br /&gt;
| 2009&lt;br /&gt;
| Indoor &lt;br /&gt;
| /image/jpeg.cgi &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Feature-rich inexpensive IP camera with good image quality, features 802.11n, GPIO ports, not bad optics&lt;br /&gt;
|-&lt;br /&gt;
| D-Link &lt;br /&gt;
| IP Camera &lt;br /&gt;
| [http://www.dlink.com/products/?pid=DCS-950G DCS-950G]&lt;br /&gt;
| firmware 1.07 &lt;br /&gt;
| &amp;amp;nbsp;? &lt;br /&gt;
| Indoor &lt;br /&gt;
| /_gCVimage.jpg &lt;br /&gt;
| [http://www.amazon.com/D-Link-Securicam-DCS-950G-Wireless-Internet/product-reviews/B0006GDCD0/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;amp;showViewpoints=1 Customer reviews]&lt;br /&gt;
| Ap15e &lt;br /&gt;
| It takes about 9(!) seconds to get the jpg file from the camera, but Vera's generic Luup IP camera plugin times out after 5 seconds by default.  Starting with Ui4 a timeout option was added to the device settings for the camera, which you can increase to 10.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Cameras that don't work'''  ===&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Manufacturer &lt;br /&gt;
! Device Type &lt;br /&gt;
! Model no. &lt;br /&gt;
! Version &lt;br /&gt;
! Date Purchased &lt;br /&gt;
! Location (indoor/outdoor) &lt;br /&gt;
! Path for JPEG image &lt;br /&gt;
! Product Review &lt;br /&gt;
! Added by &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Trendnet &lt;br /&gt;
| IP Camera &lt;br /&gt;
| TV-IP100W &lt;br /&gt;
| all &lt;br /&gt;
| 2007&amp;lt;br&amp;gt; &lt;br /&gt;
| Indoor &lt;br /&gt;
| none&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| This camera can only serve images using DirectX or Java. The workaround is complex: &amp;quot;using a PC you can use MPlayer to strip out a JPG image from the video stream (asf). You can then store the JPG snapshot on a PC, then run a web server and vera can then &amp;quot;fetch&amp;quot; the image from the PC instead of the camera.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Schlage &lt;br /&gt;
| IP Camera &lt;br /&gt;
| WCW100 &lt;br /&gt;
| all &lt;br /&gt;
| 2010 &lt;br /&gt;
| Indoor &lt;br /&gt;
| none &lt;br /&gt;
| &lt;br /&gt;
| Ray &lt;br /&gt;
| This camera does not give an IP address out of the box. In order for it work, it needs to be activated using the Schlage LiNK system. Without paying for the Schlage LiNK membership, this camera cannot be used with Vera unless there's a way of forcing the activation.&lt;br /&gt;
|-&lt;br /&gt;
| Asante &lt;br /&gt;
| IP Camera &lt;br /&gt;
| Voyager I &lt;br /&gt;
| firmware 2.00 &lt;br /&gt;
| 2010 &lt;br /&gt;
| Indoor &lt;br /&gt;
| none &lt;br /&gt;
| &lt;br /&gt;
| Ray &lt;br /&gt;
| This camera is inexpensive, very feature rich, has very good image quality, and has night vision capabilities. However, there is no publicly accessible URL to grab a live JPG from the camera. The web interface requires an ActiveX plug-in to view the live video feed and there is a snapshot button that will deliver a JPG. Asante is reportedly making changes to their camera in the next version of the firmware that should resolve some of these issues.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== '''Manually adding a camera'''  ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Camera1.jpg|thumb|center|512px]] [[Image:Camera2.jpg|thumb|center|512px|Manually adding a camera]] &lt;br /&gt;
&lt;br /&gt;
In Vera's setup page click Devices, Luup plugins, Install/uninstall plugins, and click 'install' next to either the 'Generic IP Camera' plugin, or, if you see a plugin for your particular camera, such as 'Panasonic IP Camera with Pan/Tilt/Zoom' use that instead. &lt;br /&gt;
&lt;br /&gt;
If you have more than one camera, you can click &amp;quot;install another&amp;quot; to have multiple instances of the plugin. &lt;br /&gt;
&lt;br /&gt;
In most cases, IP cameras have a URL method for obtaining a SNAPSHOT or JPG image from the camera. If your camera supports this method, you can then use it with Vera and the FindVera.com service can archive these snapshots over time for security purposes. Most IP/Network cameras made in the past few years will have a JPG Snapshot mode. Some examples from Linksys are WVC54GCA, WVC200/WVC210.&amp;amp;nbsp; D-link, Trend-Net, and many others make similar cameras. &lt;br /&gt;
&lt;br /&gt;
If your camera is not a 'Plug and Play' model or not on the supported list, you need to specify the settings for the camera by going to the 'Devices' tab on Vera's setup page, adding the camera if it's not already there, and clicking the '+' icon to edit the camera's settings. &lt;br /&gt;
&lt;br /&gt;
You will need to specify: &lt;br /&gt;
&lt;br /&gt;
1. the IP address or domain name of the camera&amp;lt;br&amp;gt; 2. the URL or path to retrieve the current image from the camera as a JPEG file&amp;lt;br&amp;gt; 3. any username and password to retrieve the JPEG file &lt;br /&gt;
&lt;br /&gt;
The URL (your camera's manual may denote this as &amp;quot;path&amp;quot; or &amp;quot;snapshot address&amp;quot;) needs to retrieve the actual JPEG file, not just an HTML page that has the JPEG file somewhere on it. For example, if you can view a JPEG file from your camera with this URL: '''http://192.168.81.5/Snapshot.JPG?Quality=Standard''', then put in these settings: &lt;br /&gt;
&lt;br /&gt;
IP Address: '''192.168.81.5'''&amp;lt;br&amp;gt; Path: '''Snapshot.JPG?Quality=Standard''' &lt;br /&gt;
&lt;br /&gt;
and be sure to provide the username/password if one is needed. After you specify this information, click the red 'Save' button, and then you can see the camera by clicking the 'View Camera' option. &lt;br /&gt;
&lt;br /&gt;
=== '''Configuring the Panasonic IP camera to connect wirelessly to Vera'''  ===&lt;br /&gt;
&lt;br /&gt;
The Panasonic IP Cameras have a switch on the bottom: WIRED/WIRELESS. In order to connect your camera wirelessly to Vera, you'll need to follow these steps: &lt;br /&gt;
&lt;br /&gt;
    - set the switch to WIRED&lt;br /&gt;
    - connect your camera to Vera's LAN port using an Ethernet cable&lt;br /&gt;
    - turn the camera on, confirm Vera's LAN LED turns orange, and wait for the IP Cam LED to turn green&lt;br /&gt;
    - wait for the camera to be detected in Devices -&amp;amp;gt; Unassigned Device&lt;br /&gt;
   - assign the camera to a 'Room' and click 'Save'&lt;br /&gt;
 (for the camera to be detected it should have the default username/password: dceadmin/dcepass and listen on port 80)&lt;br /&gt;
    - confirm that you can see images from the camera&lt;br /&gt;
    - click on the &amp;quot;+&amp;quot; sign near your camera and note its IP address (e.g. 192.168.81.200)&lt;br /&gt;
&lt;br /&gt;
    - connect your computer to the same network as your camera&lt;br /&gt;
    - open your web browser and type in: http://camera1_ip (in this example, http://192.168.81.200)&lt;br /&gt;
    - login with the default camera username: dceadmin and password: dcepass&lt;br /&gt;
    - go to Setup -&amp;amp;gt; Wireless and set SSID, Cipher and Password to Vera's wireless settings&lt;br /&gt;
 which can be found an the bottom of Vera. (default Cipher is WPA2-PSK)&lt;br /&gt;
    - click 'Save Settings'&lt;br /&gt;
   - turn the camera's bottom switch to WIRELESS and reboot your camera by cycling its power&lt;br /&gt;
&lt;br /&gt;
Your camera should now connect wirelessly to Vera. If you change your Vera's wireless settings you'll have first to update them on your cameras, so you won't lose connection to them. &lt;br /&gt;
&lt;br /&gt;
=== Example of using a Linksys WVC54GCA or WVC210 camera with Vera  ===&lt;br /&gt;
&lt;br /&gt;
For example, if you can view a JPEG file from your camera with this URL: http://192.168.81.5/img/snapshot.cgi, then put in these settings: &amp;lt;br&amp;gt;Domain or IP: 192.168.81.5 (or ''YourDomain.MyLinksysCam.com'' if remote access is enabled)&amp;lt;br&amp;gt; Path: img/snapshot.cgi&amp;lt;br&amp;gt;A username and password must be used unless all users are allowed in the USERS section.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*If you have more than one camera, you will be using the PORT as part of the URL. If your second camera is on PORT 1024 and the IP is 192.168.81.6, you would use 192.168.81.6:1024 or YourDomain.MyLinksysCam.com:1024&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== iCAMView and some Lorex network cameras  ===&lt;br /&gt;
&lt;br /&gt;
For [http://www.icamview.co.uk iCAMView] based cameras, including a few Lorex-branded ones, the path would be: &amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;showimg_pda.cgi?cam=1 for the first camera&amp;lt;/tt&amp;gt; &amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;showimg_pda.cgi?cam=2 for the second camera&amp;lt;/tt&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Older models may require slightly different path: &amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;pda.cgi?cam=1 for the first camera&amp;lt;/tt&amp;gt; &amp;lt;br&amp;gt; &amp;lt;tt&amp;gt;pda.cgi?cam=2 for the second camera&amp;lt;/tt&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Other parameters would be the same as above. &lt;br /&gt;
&lt;br /&gt;
=== Axis IP Cameras  ===&lt;br /&gt;
&lt;br /&gt;
Path: axis-cgi/jpg/image.cgi (or ''lastshot.jpg'' depending of the model) &amp;lt;br&amp;gt; More information here: &amp;lt;br&amp;gt; [http://www.axis.com/techsup/cam_servers/tech_notes/live_snapshots.htm Axis live_snapshots] &amp;lt;br&amp;gt; [http://www.axis.com/techsup/cam_servers/cam_200p/techoverview.htm Axis techoverview] &lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:Supported_Devices_Table]]&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/MiOS:Current_events</id>
		<title>MiOS:Current events</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/MiOS:Current_events"/>
				<updated>2010-09-18T14:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Guessed: Remove spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Guessed</name></author>	</entry>

	</feed>